7digital Logging API

Stream / preview / subscription play reporting required for licensor royalty calculations.

Documentation

Specifications

Code Examples

Schemas & Data

Other Resources

OpenAPI Specification

7digital-logging-api-openapi.yml Raw ↑
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).