MassiveMusic Streaming Platform API

Modern MassiveMusic Streaming Platform API. Covers catalogue with batch lookup, Interactive Radio (DMCA / GVL ruleset listening sessions), Logging (catalogue / preview / subscriber stream reporting required for licensor royalty), HLS and HTTP Progressive streaming (preview, catalogue, locker, subscriber, offline), Offline Device authorisation, Download Purchases (single + ZIP), Playlists, Sales (credit / refund / locker), Subscriptions, User Management, and Content Delivery / bulk media transfer. OAuth 1.0 signed; partner consumer key required.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-catalogue.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-interactive-radio.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-logging.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-streaming.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-offline-devices.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-download-purchases.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-playlists.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-sales.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-subscriptions.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-user-management.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/capabilities/streaming-platform-content-delivery.yaml
🔗
PostmanCollection
https://docs.massivemusic.com/docs/postman-sample-requests

OpenAPI Specification

7digital-streaming-platform-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: 7digital / MassiveMusic Streaming Platform API
  description: >-
    The modern 7digital (now branded MassiveMusic) Streaming Platform API
    covering Catalogue, Streaming (HLS + HTTP Progressive), Interactive Radio,
    Logging, Playlists, Sales/Subscriptions, User Management and offline device
    authorisation. All operations are signed with OAuth 1.0 against a partner
    consumer key issued under a commercial agreement.
  version: '2026.05'
  contact:
    name: 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://docs.massivemusic.com/llms.txt
servers:
  - url: https://api.7digital.com
    description: 7digital / MassiveMusic Streaming Platform API (production)
tags:
  - name: Catalogue
    description: Catalogue browse, search, batch lookup, download metadata, and usage type information.
  - name: Interactive Radio
    description: Lean-back, ruleset-governed (DMCA, GVL) radio listening sessions.
  - name: Logging
    description: Stream / preview / subscription play reporting required for licensor royalty calculations.
  - name: Streaming
    description: HLS and HTTP Progressive streaming for previews, catalogue, locker and subscriber playback.
  - name: Offline Devices
    description: Authorise, list, and inspect devices registered for offline subscription playback.
  - name: Download Purchases
    description: Download a previously purchased track or release (ZIP or single-file).
  - name: Playlists
    description: Partner-level playlist management — create, list, update and add tracks.
  - name: Sales
    description: Log sales, log refunds, and manage a user's locker of purchased content.
  - name: Subscriptions
    description: Notify the platform of subscription state — required for royalty + entitlement.
  - name: User Management
    description: Create and manage user accounts on the partner's behalf.
  - name: Content Delivery
    description: Bulk media transfer for content delivery / catalogue ingestion partners.
security:
  - oauth1: []
paths:
  /artists/browse:
    get:
      operationId: browseArtistsByName
      summary: 7digital Browse Artists By Name
      description: Get a list of artists from the catalogue whose names match the start letter(s) supplied.
      tags: [Catalogue]
      parameters:
        - name: letter
          in: query
          required: true
          description: One or more starting letters to filter artists by.
          schema:
            type: string
          example: 'B'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of artists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtistListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /artists/{artistId}/details:
    get:
      operationId: getArtistDetails
      summary: 7digital Get Artist Details
      description: Get all available artist details.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/ArtistIdPath'
      responses:
        '200':
          description: The artist record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artist'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /artists/{artistId}/releases:
    get:
      operationId: getArtistReleases
      summary: 7digital Get Artist Releases
      description: Get a list of releases by a given artist. Releases can be filtered by type.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/ArtistIdPath'
        - $ref: '#/components/parameters/ReleaseType'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of releases.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /artists/search:
    get:
      operationId: searchArtists
      summary: 7digital Search Artists
      description: Search the catalogue for artists matching the search query. Responses are weighted by popularity based on platform usage.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of matching artists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtistListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /releases/details/batch:
    post:
      operationId: getReleasesBatchDetails
      summary: 7digital Get Releases Batch Details
      description: Get details of multiple releases in one request. Invalid releases are omitted unless `showErrors` is true.
      tags: [Catalogue]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchReleaseRequest'
      responses:
        '200':
          description: A batch of release records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchReleaseResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /releases/{releaseId}/details:
    get:
      operationId: getReleaseDetails
      summary: 7digital Get Release Details
      description: Get all available details for a given release.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/ReleaseIdPath'
      responses:
        '200':
          description: The release record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Release'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /releases/{releaseId}/tracks:
    get:
      operationId: getReleaseTrackListing
      summary: 7digital Get Release Track Listing
      description: Get a list of all tracks constituting the release.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/ReleaseIdPath'
      responses:
        '200':
          description: A track listing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /releases/search:
    get:
      operationId: searchReleases
      summary: 7digital Search Releases
      description: Search the catalogue for releases matching the search query. Responses are weighted by popularity based on platform usage.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of matching releases.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tracks/search:
    get:
      operationId: searchTracks
      summary: 7digital Search Tracks
      description: Search the catalogue for tracks matching the search query. Responses are weighted by popularity based on platform usage.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of matching tracks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tracks/details/batch:
    post:
      operationId: getTracksBatchDetails
      summary: 7digital Get Tracks Batch Details
      description: Get details of multiple tracks in one request. Invalid tracks are omitted unless `showErrors` is true.
      tags: [Catalogue]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchTrackRequest'
      responses:
        '200':
          description: A batch of track records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchTrackResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tracks/{trackId}/details:
    get:
      operationId: getTrackDetails
      summary: 7digital Get Track Details
      description: Get all available details for a given track.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: The track record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Track'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tracks/{trackId}/download:
    get:
      operationId: downloadTrack
      summary: 7digital Download Track
      description: Get a signed URL or stream of the track's media file.
      tags: [Catalogue]
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: A signed download URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadUrl'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /usage-types:
    get:
      operationId: getUsageTypeInformation
      summary: 7digital Get Usage Type Information
      description: List usage types available for content in the catalogue (licensing scopes).
      tags: [Catalogue]
      responses:
        '200':
          description: A list of usage types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageTypeListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /interactive-radio/sessions:
    post:
      operationId: createInteractiveRadioSession
      summary: 7digital Create Interactive Radio Session
      description: >-
        Create an Interactive Radio listening session from one or more playlists.
        A listening session is required per user, each time they launch a station.
        It governs which tracks can be played and tracks the skip budget within
        the configured ruleset (e.g. DMCA, GVL).
      tags: [Interactive Radio]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRadioSessionRequest'
      responses:
        '201':
          description: A listening session.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSession'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /interactive-radio/sessions/{sessionId}:
    delete:
      operationId: deleteInteractiveRadioSession
      summary: 7digital Delete Interactive Radio Session
      description: Delete an active listening session.
      tags: [Interactive Radio]
      parameters:
        - $ref: '#/components/parameters/SessionIdPath'
      responses:
        '204':
          description: Session deleted.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /interactive-radio/sessions/{sessionId}/next-track:
    get:
      operationId: getInteractiveRadioNextTrack
      summary: 7digital Get Interactive Radio Next Track
      description: Get the next playable track within the listening session, governed by the ruleset configured for your service.
      tags: [Interactive Radio]
      parameters:
        - $ref: '#/components/parameters/SessionIdPath'
      responses:
        '200':
          description: The next track to play.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioTrack'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /interactive-radio/sessions/{sessionId}/events:
    post:
      operationId: postInteractiveRadioPlaybackEvents
      summary: 7digital Post Interactive Radio Playback Events
      description: Send the user's playback events. These events influence which tracks are allowed to be played and skipped in the current listening session.
      tags: [Interactive Radio]
      parameters:
        - $ref: '#/components/parameters/SessionIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaybackEventBatch'
      responses:
        '202':
          description: Events accepted for processing.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /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
  /streaming/preview/{trackId}:
    get:
      operationId: streamPreviewClip
      summary: 7digital Stream Preview Clip
      description: Stream a track preview clip (HTTP Progressive). All preview clip plays must be reported via the preview logging endpoint.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
        - $ref: '#/components/parameters/StreamFormat'
      responses:
        '200':
          description: Audio stream bytes (preview clip).
          content:
            audio/mpeg: {}
            audio/aac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/catalogue/{trackId}/hls:
    get:
      operationId: streamCatalogueTrackHls
      summary: 7digital Stream Catalogue Track Hls
      description: >-
        Stream any catalogue track available in the user's region (HLS). Designed
        for non-subscription radio-style plays. Tracks can be cached in an
        encrypted format and all plays must be reported via the catalogue logging
        endpoint.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: HLS manifest (m3u8).
          content:
            application/vnd.apple.mpegurl: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/catalogue/{trackId}/progressive:
    get:
      operationId: streamCatalogueTrackProgressive
      summary: 7digital Stream Catalogue Track Progressive
      description: HTTP Progressive variant of catalogue streaming. Same usage rules as the HLS variant.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: Audio stream bytes.
          content:
            audio/mpeg: {}
            audio/aac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/locker/{trackId}/hls:
    get:
      operationId: streamLockerTrackHls
      summary: 7digital Stream Locker Track Hls
      description: Stream a previously purchased track from a user's locker (HLS). Supports online plays and offline caching.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: HLS manifest (m3u8).
          content:
            application/vnd.apple.mpegurl: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/locker/{trackId}/progressive:
    get:
      operationId: streamLockerTrackProgressive
      summary: 7digital Stream Locker Track Progressive
      description: HTTP Progressive variant of locker streaming.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: Audio stream bytes.
          content:
            audio/mpeg: {}
            audio/aac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/subscription/{trackId}/hls:
    get:
      operationId: streamSubscriptionTrackHls
      summary: 7digital Stream Subscription Track Hls
      description: >-
        Stream a track to a valid subscriber (HLS). Requires an active
        subscription in the user's region. When a clientId is supplied,
        concurrent multi-device playback is blocked.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
        - name: clientId
          in: query
          description: Identifier of the device requesting playback (used for concurrency control).
          schema:
            type: string
          example: 'device-789012'
      responses:
        '200':
          description: HLS manifest (m3u8).
          content:
            application/vnd.apple.mpegurl: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/subscription/{trackId}/progressive:
    get:
      operationId: streamSubscriptionTrackProgressive
      summary: 7digital Stream Subscription Track Progressive
      description: HTTP Progressive variant of subscription streaming.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: Audio stream bytes.
          content:
            audio/mpeg: {}
            audio/aac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/subscription/{trackId}/offline/hls:
    get:
      operationId: streamSubscriptionTrackOfflineHls
      summary: 7digital Stream Subscription Track Offline Hls
      description: >-
        Bulk-cache a subscription track for offline playback (HLS). Requires the
        device to be pre-authorised via the offline streaming endpoint. All
        offline plays must be reported when connectivity is restored.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: HLS manifest (m3u8).
          content:
            application/vnd.apple.mpegurl: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /streaming/subscription/{trackId}/offline/progressive:
    get:
      operationId: streamSubscriptionTrackOfflineProgressive
      summary: 7digital Stream Subscription Track Offline Progressive
      description: HTTP Progressive variant of offline subscription streaming.
      tags: [Streaming]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: Audio stream bytes.
          content:
            audio/mpeg: {}
            audio/aac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/unlimitedStreaming/offline:
    post:
      operationId: authorizeOfflineDevice
      summary: 7digital Authorize Offline Device
      description: Authorise a device for offline subscription streaming. POST body can be JSON or XML.
      tags: [Offline Devices]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceAuthorisationRequest'
      responses:
        '200':
          description: Device authorisation record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceAuthorisation'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/unlimitedStreaming/offline/{deviceId}:
    get:
      operationId: getOfflineDeviceStatus
      summary: 7digital Get Offline Device Status
      description: Get the offline status of a specified device.
      tags: [Offline Devices]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
        - $ref: '#/components/parameters/DeviceIdPath'
      responses:
        '200':
          description: Device authorisation status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceAuthorisation'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/unlimitedStreaming/devices:
    get:
      operationId: listOfflineDevices
      summary: 7digital List Offline Devices
      description: Get a list of all of the user's registered devices.
      tags: [Offline Devices]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
      responses:
        '200':
          description: A list of devices.
          content:
            application/json:
              schema:
                type: object
                properties:
                  devices:
                    type: array
                    items:
                      $ref: '#/components/schemas/DeviceAuthorisation'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/downloads/purchases/{purchaseId}:
    get:
      operationId: downloadPurchaseZip
      summary: 7digital Download Purchase Zip
      description: Download all tracks purchased in a transaction as a single ZIP file. Highest available quality is used.
      tags: [Download Purchases]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
        - name: purchaseId
          in: path
          required: true
          description: 7digital purchase id.
          schema:
            type: string
          example: 'purchase-789012'
      responses:
        '200':
          description: ZIP file containing the purchased tracks.
          content:
            application/zip: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/downloads/releases/{releaseId}:
    get:
      operationId: downloadPurchasedReleaseZip
      summary: 7digital Download Purchased Release Zip
      description: Download all tracks in a purchased release as a single ZIP file.
      tags: [Download Purchases]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
        - $ref: '#/components/parameters/ReleaseIdPath'
      responses:
        '200':
          description: ZIP file containing the release tracks.
          content:
            application/zip: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/downloads/tracks/{trackId}:
    get:
      operationId: downloadPurchasedTrack
      summary: 7digital Download Purchased Track
      description: Download a purchased track.
      tags: [Download Purchases]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
        - $ref: '#/components/parameters/TrackIdPath'
      responses:
        '200':
          description: Audio file bytes.
          content:
            audio/mpeg: {}
            audio/flac: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{userId}/locker:
    get:
      operationId: getUserLocker
      summary: 7digital Get User Locker
      description: Get a paged list of releases and tracks in a user's locker.
      tags: [Sales]
      security:
        - oauth1_three_legged: []
      parameters:
        - $ref: '#/components/parameters/UserIdPath'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: The user's locker.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Locker'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sales/credit-item:
    post:
      operationId: creditSalesItem
      summary: 7digital Credit Sales Item
      description: >-
        Log a sale of a track or release for the specified user and add it to
        their locker. Currency must match the one provided for the content
        (typically USD). Returns XML responses only.
      tags: [Sales]
      security:
        - oauth1_three_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreditItemRequest'
      responses:
        '200':
          description: Sale logged.
          content:
            application/xml: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sales/refund/release:
    post:
      operationId: reportReleaseRefund
      summary: 7digital Report Release Refund
      description: Remove a purchase of a release from the sales report when the purchase has been refunded.
      tags: [Sales]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
      responses:
        '200':
          description: Refund reported.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sales/refund/track:
    post:
      operationId: reportTrackRefund
      summary: 7digital Report Track Refund
      description: Remove a purchase of a track from the sales report when the purchase has been refunded.
      tags: [Sales]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
      responses:
        '200':
          description: Refund reported.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /playlists:
    get:
      operationId: listPlaylists
      summary: 7digital List Playlists
      description: Get a list of the partner's playlists.
      tags: [Playlists]
      parameters:
        - name: userId
          in: query
          description: Filter playlists by user.
          schema:
            type: string
          example: '500123'
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A paged list of playlists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaylistListResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createPlaylist
      summary: 7digital Create Playlist
      description: >-
        Create a new playlist tied to your partner consumer key. Can optionally
        be associated with a user. Initial tracks may be supplied or the playlist
        can be created empty.
      tags: [Playlists]
      parameters:
        - name: userId
          in: query
          description: User to associate the playlist with.
          schema:
            type: string
          example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlaylistRequest'
      responses:
        '201':
          description: The newly created playlist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /playlists/{playlistId}:
    put:
      operationId: updatePlaylistDetails
      summary: 7digital Update Playlist Details
      description: >-
        Update a playlist's details. Does not affect playlist tracks. Use to,
        e.g., change visibility from private to public. Descriptions are
        truncated to 500 characters.
      tags: [Playlists]
      parameters:
        - $ref: '#/components/parameters/PlaylistIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlaylistRequest'
      responses:
        '200':
          description: The updated playlist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /playlists/{playlistId}/tracks:
    post:
      operationId: addTracksToPlaylist
      summary: 7digital Add Tracks To Playlist
      description: >-
        Add tracks to the playlist. All metadata must be provided in the call.
        The `source` and `audioUrl` properties are optional and may indicate an
        alternative source for the physical file.
      tags: [Playlists]
      parameters:
        - $ref: '#/components/parameters/PlaylistIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTracksRequest'
      responses:
        '200':
          description: The updated playlist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pl

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/7digital/refs/heads/main/openapi/7digital-streaming-platform-openapi.yml