openapi: 3.0.3 info: title: 7digital Artists Logging API description: The classic 7digital REST API (v1.2) provides access to the 7digital music catalogue (artists, releases, tracks, tags), user lockers, basket/checkout, payment, editorial, territories and IP-lookup. All operations are signed with OAuth 1.0 and scoped by a consumer key issued under a commercial agreement. version: '1.2' contact: name: 7digital / MassiveMusic Client Success url: https://docs.massivemusic.com/docs/support license: name: Commercial — 7digital / MassiveMusic url: https://docs.massivemusic.com/docs/sla x-last-validated: '2026-05-28' x-generated-from: documentation x-source-url: https://github.com/7digital/7digital-api/blob/master/assets/7digital-api-schema.json servers: - url: https://api.7digital.com/1.2 description: 7digital Public API v1.2 (production) security: - oauth1: [] tags: - name: Logging description: Stream / preview / subscription play reporting required for licensor royalty calculations. paths: /logging/catalogue: post: operationId: reportCatalogueStream summary: 7digital Report Catalogue Stream description: Report a track that has been streamed to a user listening in a radio-style playback. Streams should be logged in near real time, or the same day in batch. tags: - Logging security: - oauth1_three_legged: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamLogBatch' responses: '202': description: Stream logs accepted. x-microcks-operation: delay: 0 dispatcher: FALLBACK /logging/preview: post: operationId: reportPreviewStream summary: 7digital Report Preview Stream description: Report a preview clip that has been played. Acceptable usage is 5 POST requests per second with batches of up to 500 logs per request. tags: - Logging requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamLogBatch' responses: '202': description: Preview logs accepted. x-microcks-operation: delay: 0 dispatcher: FALLBACK /logging/subscriber: post: operationId: reportSubscriberStream summary: 7digital Report Subscriber Stream description: Report a track that has been streamed by a subscriber. Logs should be sent in near real-time, or the same day in batches of 10–20 logs per request. tags: - Logging security: - oauth1_three_legged: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamLogBatch' responses: '202': description: Subscriber stream logs accepted. x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: StreamLog: type: object properties: trackId: type: string example: '123456' userId: type: string example: '500123' clientId: type: string example: device-789012 timestamp: type: string format: date-time example: '2026-05-28T14:30:45Z' durationPlayed: type: integer description: Seconds streamed. example: 259 country: type: string example: GB required: - trackId - timestamp StreamLogBatch: type: object properties: logs: type: array items: $ref: '#/components/schemas/StreamLog' required: - logs securitySchemes: oauth1: type: apiKey in: query name: oauth_consumer_key description: 7digital uses OAuth 1.0 signing. Every request MUST include `oauth_consumer_key` as either a query parameter or in the Authorization header. Sensitive operations require a 2-legged or 3-legged signature with a user access token. oauth1_two_legged: type: apiKey in: query name: oauth_consumer_key description: 2-legged OAuth 1.0 (partner-scoped — consumer key + secret only). oauth1_three_legged: type: apiKey in: query name: oauth_consumer_key description: 3-legged OAuth 1.0 (consumer key + secret plus a user access token + secret).