7digital User API

Per-user account operations — locker, purchases, payment cards, subscriptions, signup.

Documentation

Specifications

Code Examples

Schemas & Data

Other Resources

OpenAPI Specification

7digital-user-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: 7digital Artists User 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: User
  description: Per-user account operations — locker, purchases, payment cards, subscriptions, signup.
paths:
  /user/unlimitedStreaming:
    get:
      operationId: getUserUnlimitedStreaming
      summary: 7digital Get User Unlimited Streaming
      description: Get the status of the unlimited streaming subscription for the authenticated user.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      responses:
        '200':
          description: Unlimited streaming subscription details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionStatus'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: updateUserUnlimitedStreaming
      summary: 7digital Update User Unlimited Streaming
      description: Create or update the unlimited streaming subscription for a user (partner-scoped).
      tags:
      - User
      security:
      - oauth1_two_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The user id whose subscription is being updated.
                  example: '500123'
                status:
                  type: string
                  description: New subscription status.
                  enum:
                  - active
                  - cancelled
                  - expired
                  example: active
              required:
              - userId
              - status
      responses:
        '200':
          description: The updated subscription status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionStatus'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/locker:
    get:
      operationId: getUserLocker
      summary: 7digital Get User Locker
      description: Get the locker (all purchased tracks and releases) for the authenticated user.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: The user's locker contents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Locker'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/purchase/item:
    get:
      operationId: purchaseUserItem
      summary: 7digital Purchase User Item
      description: Purchase a single track or release for the authenticated user using their default payment method.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - name: releaseId
        in: query
        description: Release id to purchase.
        schema:
          type: string
        example: '11700062'
      - name: trackId
        in: query
        description: Track id to purchase.
        schema:
          type: string
        example: '123456'
      responses:
        '200':
          description: The completed purchase.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/purchase/rrpitem:
    get:
      operationId: purchaseUserRrpItem
      summary: 7digital Purchase User Rrp Item
      description: Purchase an item at RRP for the authenticated user.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - name: releaseId
        in: query
        description: Release id to purchase.
        schema:
          type: string
        example: '11700062'
      responses:
        '200':
          description: The completed purchase.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/purchase/basket:
    get:
      operationId: purchaseUserBasket
      summary: 7digital Purchase User Basket
      description: Purchase the entire contents of the user's basket.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - $ref: '#/components/parameters/BasketId'
      responses:
        '200':
          description: The completed purchase.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/purchase/priceditem:
    get:
      operationId: purchaseUserPricedItem
      summary: 7digital Purchase User Priced Item
      description: Purchase an item at a partner-supplied price.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - name: releaseId
        in: query
        description: Release id to purchase.
        schema:
          type: string
        example: '11700062'
      - name: price
        in: query
        required: true
        description: Partner-supplied price (in minor units).
        schema:
          type: number
        example: 999
      responses:
        '200':
          description: The completed purchase.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/payment/card:
    get:
      operationId: listUserPaymentCards
      summary: 7digital List User Payment Cards
      description: List the payment cards registered to the authenticated user.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      responses:
        '200':
          description: A list of payment cards.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cards:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentCard'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/payment/card/select:
    post:
      operationId: selectUserPaymentCard
      summary: 7digital Select User Payment Card
      description: Set a registered payment card as the user's default card.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                cardId:
                  type: string
                  description: The card id to mark as default.
                  example: card-789012
              required:
              - cardId
      responses:
        '200':
          description: Card selected.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/payment/card/delete:
    post:
      operationId: deleteUserPaymentCard
      summary: 7digital Delete User Payment Card
      description: Delete a payment card from the authenticated user.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                cardId:
                  type: string
                  description: The card id to delete.
                  example: card-789012
              required:
              - cardId
      responses:
        '200':
          description: Card deleted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/payment/cardregistration:
    post:
      operationId: registerUserPaymentCard
      summary: 7digital Register User Payment Card
      description: Start the registration flow for a new payment card.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CardRegistrationRequest'
      responses:
        '200':
          description: A card registration handle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardRegistration'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/payment/cardregistration/{id}:
    get:
      operationId: getUserCardRegistration
      summary: 7digital Get User Card Registration
      description: Poll the status of a pending card registration.
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - name: id
        in: path
        required: true
        description: Card registration id.
        schema:
          type: string
        example: cardreg-789012
      responses:
        '200':
          description: The card registration record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardRegistration'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/deliveritem:
    get:
      operationId: deliverUserItem
      summary: 7digital Deliver User Item
      description: Get a delivery URL for a purchased item (download or stream link).
      tags:
      - User
      security:
      - oauth1_three_legged: []
      parameters:
      - name: releaseId
        in: query
        description: Purchased release to deliver.
        schema:
          type: string
        example: '11700062'
      - name: trackId
        in: query
        description: Purchased track to deliver.
        schema:
          type: string
        example: '123456'
      responses:
        '200':
          description: A delivery URL.
          content:
            application/json:
              schema:
                type: object
                properties:
                  deliveryUrl:
                    type: string
                    format: uri
                    description: The signed delivery URL.
                    example: https://download.7digital.com/abc123
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/signup:
    post:
      operationId: signupUser
      summary: 7digital Signup User
      description: Sign up a new user with a 7digital account.
      tags:
      - User
      security:
      - oauth1_two_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserSignupRequest'
      responses:
        '200':
          description: The newly created user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/create:
    get:
      operationId: createUser
      summary: 7digital Create User
      description: Create a new user partner-side (typically as part of an integrated signup flow).
      tags:
      - User
      security:
      - oauth1_two_legged: []
      parameters:
      - name: email
        in: query
        required: true
        description: Email address of the new user.
        schema:
          type: string
          format: email
        example: jane.smith@example.com
      responses:
        '200':
          description: The newly created user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/details:
    get:
      operationId: getUserDetails
      summary: 7digital Get User Details
      description: Get the profile of a user (partner-scoped lookup).
      tags:
      - User
      security:
      - oauth1_two_legged: []
      parameters:
      - name: userId
        in: query
        required: true
        description: The user id to look up.
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: The user profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/authenticate:
    post:
      operationId: authenticateUser
      summary: 7digital Authenticate User
      description: Authenticate a user by email and password and return a partner-scoped access token.
      tags:
      - User
      security:
      - oauth1_two_legged: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  description: User email.
                  example: jane.smith@example.com
                password:
                  type: string
                  format: password
                  description: User password.
                  example: P@ssw0rd123!
              required:
              - email
              - password
      responses:
        '200':
          description: An authenticated user payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    CardRegistration:
      type: object
      properties:
        registrationId:
          type: string
          example: cardreg-789012
        status:
          type: string
          enum:
          - pending
          - registered
          - failed
          example: registered
        cardId:
          type: string
          nullable: true
          example: card-789012
    Locker:
      type: object
      description: A user's locker of purchased tracks and releases.
      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'
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/Track'
    BasketItem:
      type: object
      properties:
        itemId:
          type: string
          example: item-789012
        releaseId:
          type: string
          nullable: true
          example: '11700062'
        trackId:
          type: string
          nullable: true
          example: '123456'
        price:
          $ref: '#/components/schemas/Price'
    SubscriptionStatus:
      type: object
      properties:
        userId:
          type: string
          example: '500123'
        status:
          type: string
          enum:
          - active
          - cancelled
          - expired
          example: active
        startDate:
          type: string
          format: date
          example: '2026-01-01'
        endDate:
          type: string
          format: date
          example: '2026-02-01'
        productId:
          type: string
          example: unlimited-streaming
    Purchase:
      type: object
      properties:
        purchaseId:
          type: string
          example: purchase-789012
        status:
          type: string
          enum:
          - completed
          - pending
          - failed
          example: completed
        total:
          $ref: '#/components/schemas/Price'
        items:
          type: array
          items:
            $ref: '#/components/schemas/BasketItem'
        receiptUrl:
          type: string
          format: uri
          example: https://www.7digital.com/receipts/purchase-789012
    Track:
      type: object
      description: A 7digital track.
      properties:
        id:
          type: string
          description: 7digital track id.
          example: '123456'
        title:
          type: string
          description: Track title.
          example: Come Together
        version:
          type: string
          description: Track version (e.g. `Remastered 2019`).
          example: Remastered 2019
        artist:
          $ref: '#/components/schemas/Artist'
        release:
          $ref: '#/components/schemas/Release'
        trackNumber:
          type: integer
          description: Track number on the release.
          example: 1
        duration:
          type: integer
          description: Duration in seconds.
          example: 259
        explicit:
          type: boolean
          example: false
        isrc:
          type: string
          description: International Standard Recording Code.
          example: GBAYE6900477
        previewUrl:
          type: string
          format: uri
          description: URL for the 30-second preview clip.
          example: https://previews.7digital.com/clip/123456
        price:
          $ref: '#/components/schemas/Price'
    UserSignupRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          example: jane.smith@example.com
        password:
          type: string
          format: password
          example: P@ssw0rd123!
        firstName:
          type: string
          example: Jane
        lastName:
          type: string
          example: Smith
        country:
          type: string
          example: GB
      required:
      - email
      - password
      - country
    CardRegistrationRequest:
      type: object
      properties:
        cardNumber:
          type: string
          example: '4242424242424242'
        expiryMonth:
          type: integer
          example: 12
        expiryYear:
          type: integer
          example: 2028
        cvv:
          type: string
          example: '123'
        cardholderName:
          type: string
          example: Jane Smith
      required:
      - cardNumber
      - expiryMonth
      - expiryYear
      - cvv
    User:
      type: object
      properties:
        id:
          type: string
          example: '500123'
        email:
          type: string
          format: email
          example: jane.smith@example.com
        firstName:
          type: string
          example: Jane
        lastName:
          type: string
          example: Smith
        country:
          type: string
          example: GB
        accessToken:
          type: string
          description: Partner-scoped user access token (returned on signup / authenticate).
          example: tok-a1b2c3d4
        accessTokenSecret:
          type: string
          description: Partner-scoped user access token secret.
          example: sec-a1b2c3d4
    Price:
      type: object
      description: A price quoted in the requested territory's currency.
      properties:
        formattedPrice:
          type: string
          example: £9.99
        amount:
          type: number
          description: Numeric price value.
          example: 9.99
        currency:
          type: string
          description: ISO 4217 currency code.
          example: GBP
    Artist:
      type: object
      description: A 7digital artist.
      properties:
        id:
          type: string
          description: 7digital artist id.
          example: '12345'
        name:
          type: string
          description: Artist name.
          example: The Beatles
        url:
          type: string
          format: uri
          description: Artist page URL on 7digital.
          example: https://uk.7digital.com/artist/the-beatles
        image:
          type: string
          format: uri
          description: Artist image URL.
          example: https://artwork-cdn.7static.com/static/img/artistimages/00/000/012/0000001234_350.jpg
        sortName:
          type: string
          description: Sort form of the artist name.
          example: Beatles, The
        appearsAs:
          type: string
          description: Alternative spellings under which the artist appears.
          example: Beatles, The
    Release:
      type: object
      description: A 7digital release (album, single, EP, compilation).
      properties:
        id:
          type: string
          description: 7digital release id.
          example: '11700062'
        title:
          type: string
          description: Release title.
          example: Abbey Road
        version:
          type: string
          description: Release version (e.g. `Remastered`).
          example: Remastered
        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
        explicit:
          type: boolean
          example: false
        upc:
          type: string
          description: Universal Product Code (UPC/EAN).
          example: 00602445912025
        price:
          $ref: '#/components/schemas/Price'
    PaymentCard:
      type: object
      properties:
        cardId:
          type: string
          example: card-789012
        last4:
          type: string
          example: '4242'
        brand:
          type: string
          enum:
          - visa
          - mastercard
          - amex
          - discover
          example: visa
        expiryMonth:
          type: integer
          example: 12
        expiryYear:
          type: integer
          example: 2028
        isDefault:
          type: boolean
          example: true
  parameters:
    BasketId:
      name: basketId
      in: query
      required: true
      description: 7digital basket id.
      schema:
        type: string
        format: uuid
      example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    Page:
      name: page
      in: query
      description: 1-based page number for paged endpoints.
      schema:
        type: integer
        minimum: 1
        default: 1
      example: 1
    PageSize:
      name: pageSize
      in: query
      description: Number of items per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
      example: 20
  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).