7digital Catalogue API

Resolve catalogue entities (artist, release) from 7digital web URLs.

Documentation

Specifications

Code Examples

Schemas & Data

Other Resources

OpenAPI Specification

7digital-catalogue-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: 7digital Artists Catalogue 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: Catalogue
  description: Resolve catalogue entities (artist, release) from 7digital web URLs.
paths:
  /catalogue/artist-byurl:
    get:
      operationId: getArtistIdByUrl
      summary: 7digital Get Artist Id By Url
      description: Resolve a 7digital artist id from a 7digital web URL.
      tags:
      - Catalogue
      parameters:
      - name: url
        in: query
        required: true
        description: A 7digital artist web URL.
        schema:
          type: string
          format: uri
        example: https://uk.7digital.com/artist/the-beatles
      responses:
        '200':
          description: The resolved artist id.
          content:
            application/json:
              schema:
                type: object
                properties:
                  artistId:
                    type: string
                    description: The 7digital artist id.
                    example: '12345'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /catalogue/release-byurl:
    get:
      operationId: getReleaseIdByUrl
      summary: 7digital Get Release Id By Url
      description: Resolve a 7digital release id from a 7digital web URL.
      tags:
      - Catalogue
      parameters:
      - name: url
        in: query
        required: true
        description: A 7digital release web URL.
        schema:
          type: string
          format: uri
        example: https://uk.7digital.com/artist/the-beatles/release/abbey-road-11700062
      responses:
        '200':
          description: The resolved release id.
          content:
            application/json:
              schema:
                type: object
                properties:
                  releaseId:
                    type: string
                    description: The 7digital release id.
                    example: '11700062'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /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
components:
  parameters:
    TrackIdPath:
      name: trackId
      in: path
      required: true
      description: 7digital track id.
      schema:
        type: string
      example: '123456'
    ReleaseType:
      name: type
      in: query
      description: Release type filter.
      schema:
        type: string
        enum:
        - album
        - single
        - ep
        - compilation
      example: album
    ReleaseIdPath:
      name: releaseId
      in: path
      required: true
      description: 7digital release id.
      schema:
        type: string
      example: '11700062'
    Page:
      name: page
      in: query
      description: 1-based page number.
      schema:
        type: integer
        minimum: 1
        default: 1
      example: 1
    Query:
      name: q
      in: query
      required: true
      description: Free-text search query.
      schema:
        type: string
      example: beatles
    ArtistIdPath:
      name: artistId
      in: path
      required: true
      description: 7digital artist id.
      schema:
        type: string
      example: '12345'
    PageSize:
      name: pageSize
      in: query
      description: Number of items per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
      example: 20
  schemas:
    Release:
      type: object
      properties:
        id:
          type: string
          example: '11700062'
        title:
          type: string
          example: Abbey Road
        type:
          type: string
          enum:
          - album
          - single
          - ep
          - compilation
          example: album
        artist:
          $ref: '#/components/schemas/Artist'
        url:
          type: string
          format: uri
          example: https://uk.7digital.com/artist/the-beatles/release/abbey-road-11700062
        image:
          type: string
          format: uri
          example: https://artwork-cdn.7static.com/static/img/sleeveart/00/117/000/0011700062_350.jpg
        releaseDate:
          type: string
          format: date
          example: '1969-09-26'
        label:
          type: string
          example: Apple Records
        upc:
          type: string
          example: 00602445912025
        explicit:
          type: boolean
          example: false
    BatchTrackRequest:
      type: object
      properties:
        trackIds:
          type: array
          items:
            type: string
          example:
          - '123456'
          - '123457'
        showErrors:
          type: boolean
          example: true
      required:
      - trackIds
    Track:
      type: object
      properties:
        id:
          type: string
          example: '123456'
        title:
          type: string
          example: Come Together
        version:
          type: string
          example: Remastered 2019
        artist:
          $ref: '#/components/schemas/Artist'
        release:
          $ref: '#/components/schemas/Release'
        trackNumber:
          type: integer
          example: 1
        duration:
          type: integer
          description: Duration in seconds.
          example: 259
        explicit:
          type: boolean
          example: false
        isrc:
          type: string
          example: GBAYE6900477
        previewUrl:
          type: string
          format: uri
          example: https://previews.7digital.com/clip/123456
    BatchReleaseResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        releases:
          type: array
          items:
            $ref: '#/components/schemas/Release'
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: integer
                example: 2001
              message:
                type: string
                example: Release not found
              index:
                type: integer
                example: 1
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          example: error
        error:
          type: object
          properties:
            code:
              type: integer
              example: 2001
            message:
              type: string
              example: Resource not found
    BatchReleaseRequest:
      type: object
      properties:
        releaseIds:
          type: array
          items:
            type: string
          example:
          - '11700062'
          - '11700063'
        showErrors:
          type: boolean
          example: true
      required:
      - releaseIds
    UsageTypeListResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        usageTypes:
          type: array
          items:
            $ref: '#/components/schemas/UsageType'
    ReleaseListResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        page:
          type: integer
          example: 1
        pageSize:
          type: integer
          example: 20
        totalItems:
          type: integer
          example: 42
        releases:
          type: array
          items:
            $ref: '#/components/schemas/Release'
    Artist:
      type: object
      properties:
        id:
          type: string
          example: '12345'
        name:
          type: string
          example: The Beatles
        url:
          type: string
          format: uri
          example: https://uk.7digital.com/artist/the-beatles
        image:
          type: string
          format: uri
          example: https://artwork-cdn.7static.com/static/img/artistimages/00/000/012/0000001234_350.jpg
        sortName:
          type: string
          example: Beatles, The
    TrackListResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        page:
          type: integer
          example: 1
        pageSize:
          type: integer
          example: 20
        totalItems:
          type: integer
          example: 13
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/Track'
    ArtistListResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        page:
          type: integer
          example: 1
        pageSize:
          type: integer
          example: 20
        totalItems:
          type: integer
          example: 42
        artists:
          type: array
          items:
            $ref: '#/components/schemas/Artist'
    DownloadUrl:
      type: object
      properties:
        url:
          type: string
          format: uri
          example: https://download.7digital.com/abc123
        expiresAt:
          type: string
          format: date-time
          example: '2026-05-28T16:30:00Z'
    BatchTrackResponse:
      type: object
      properties:
        status:
          type: string
          example: ok
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/Track'
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: integer
                example: 2001
              message:
                type: string
                example: Track not found
              index:
                type: integer
                example: 1
    UsageType:
      type: object
      properties:
        id:
          type: string
          example: subscription-streaming
        name:
          type: string
          example: Subscription Streaming
        description:
          type: string
          example: Streaming to subscribers in interactive playback.
  responses:
    NotFoundError:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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).