Standard Metadata Event Schema

Changes to the Schema

Should the schema change, notice will be given and sent out via MassiveMusic maintenance page here. We recommend not mapping to the schema to avoid any potential changes being breaking.

OpenAPI Schema

All dates and times are provided in ISO 8601 format.

openapi: '3.0.2'
info:
  title: Catalogue Events
  version: '1.0'
paths: {}
components:
  schemas:
    event:
      type: array
      minItems: 1
      items:
        anyOf:
          - $ref: '#/components/schemas/release'
          - $ref: '#/components/schemas/takedown'
    release:
      type: object
      description: Release
      properties:
        version:
          type: integer
          format: int64
          description: integer representation of the current version
        id:
          type: integer
          format: int32
          description: the release ID
        upc:
          type: string
        title:
          type: string
        subtitle:
          type: string
          nullable: true
        genres:
          type: array
          minItems: 0
          items:
            type: string
        gRid:
          type: string
          nullable: true
        cLine:
          type: string
          nullable: true
        pLine:
          type: string
          nullable: true
        courtesyLine:
          type: string
          nullable: true
        type:
          type: string
        explicitContent:
          type: boolean
        releaseDate:
          type: string
          format: date-time
        duration:
          type: integer
          format: int32
          description: Duration in seconds
        artist:
          type: object
          properties:
            id:
              type: integer
              format: int32
            name:
              type: string
            normalisedName:
              type: string
          required:
            - id
            - name
            - normalisedName
        label:
          type: object
          properties:
            id:
              type: integer
              format: int32
            name:
              type: string
            licensor:
              type: object
              properties:
                id:
                  type: integer
                  format: int32
                name:
                  type: string
              required:
                - id
                - name
          required:
            - id
            - name
            - licensor
        pdfBooklet:
          type: object
          properties:
            id:
              type: integer
              format: int32
            name:
              type: string
          required:
            - id
            - name
        downloadAvailability:
          type: array
          minItems: 0
          items:
            type: object
            properties:
              start:
                type: string
                format: date-time
              end:
                type: string
                format: date-time
                nullable: true
              territories:
                type: array
                minItems: 1
                items:
                  type: string
                  format: ISO 3166-1 alpha-2
              currencyCode:
                type: string
                format: ISO 4217
              priceCode:
                type: string
              packages:
                type: array
                minItems: 1
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: int32
                    rrp:
                      type: number
                      format: float
                  required:
                    - id
                    - rrp
            required:
              - start
              - end
              - territories
              - currencyCode
              - priceCode
              - packages
        tracks:
          type: array
          minItems: 1
          items:
            type: object
            properties:
              id:
                type: integer
                format: int32
              title:
                type: string
              subtitle:
                type: string
                nullable: true
              isrc:
                type: string
              explicitContent:
                type: boolean
              discNumber:
                type: integer
                format: int32
              trackNumber:
                type: integer
                format: int32
                description: Number of the track on the respective disc
              trackOrder:
                type: integer
                format: int32
                description: Number of the track on the release (always increasing across multiple discs)
              duration:
                type: integer
                format: int32
                description: Duration in seconds
              clipStartPoint:
                type: integer
                format: int32
                nullable: true
                description: Clip start point in seconds
              genres:
                type: array
                minItems: 0
                items:
                  type: string
              type:
                type: string
              pLine:
                type: string
                nullable: true
              courtesyLine:
                type: string
                nullable: true
              artist:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                  name:
                    type: string
                  normalisedName:
                    type: string
                required:
                  - id
                  - name
                  - normalisedName
              sourceFormats:
                type: array
                minItems: 0
                items:
                  type: integer
                  format: int32
                  description: 'See documentation on formats: https://docs.7digital.com/docs/supported-formats'
              streamingAvailability:
                type: array
                minItems: 0
                items:
                  type: object
                  properties:
                    start:
                      type: string
                      format: date-time
                    end:
                      type: string
                      format: date-time
                      nullable: true
                    territories:
                      type: array
                      minItems: 1
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                    usageTypes:
                      type: array
                      minItems: 1
                      items:
                        type: string
                        description: 'See documentation on usage types: https://docs.7digital.com/reference/usage-type-information'
                  required:
                    - start
                    - territories
                    - usageTypes
              downloadAvailability:
                type: array
                minItems: 0
                items:
                  type: object
                  properties:
                    start:
                      type: string
                      format: date-time
                    end:
                      type: string
                      format: date-time
                      nullable: true
                    territories:
                      type: array
                      minItems: 1
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                    currencyCode:
                      type: string
                      format: ISO 4217
                    priceCode:
                      type: string
                    packages:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                            format: int32
                          rrp:
                            type: number
                            format: float
                        required:
                          - id
                          - rrp
                  required:
                    - start
                    - end
                    - territories
                    - currencyCode
                    - priceCode
                    - packages
            required:
              - id
              - title
              - subtitle
              - isrc
              - explicitContent
              - discNumber
              - trackNumber
              - trackOrder
              - duration
              - clipStartPoint
              - genres
              - type
              - pLine
              - courtesyLine
              - artist
              - sourceFormats
              - streamingAvailability
              - downloadAvailability
      required:
        - version
        - id
        - upc
        - title
        - subtitle
        - genres
        - gRid
        - cLine
        - pLine
        - courtesyLine
        - type
        - explicitContent
        - releaseDate
        - duration
        - artist
        - label
        - downloadAvailability
        - tracks
    takedown:
      type: object
      properties:
        id:
          type: integer
          format: int32
        version:
          type: integer
          format: int64
        takedown:
          type: boolean
      required:
        - id
        - version
        - takedown

Examples

Regular

This example contains the full event schema.

[
  {
    "version": 638048211230000000,
    "id": 12134,
    "upc": "0724358215557",
    "title": "The Pop Hits",
    "subtitle": "",
    "genres": [
      "pop",
      "rock"
    ],
    "gRid": "A10306F0000000KB53",
    "cLine": "© 2023 cline",
    "pLine": "℗ 2019 pline",
    "courtesyLine": "Some courtesy line",
    "type": "Album",
    "explicitContent": false,
    "releaseDate": "2023-07-17T11:38:10Z",
    "duration": 1005,
    "artist": {
      "id": 10474,
      "name": "Nat King Cole Trio",
      "normalisedName": "Nat King Cole"
    },
    "label": {
      "id": 226994,
      "name": "Parlophone Sweden",
      "licensor": {
        "id": 18,
        "name": "Warner"
      }
    },
    "pdfBooklet": {
      "id": 425,
      "name": "the best booklet in the world"
    },
    "downloadAvailability": [
      {
        "start": "2002-05-31T23:00:00Z",
        "end": "2050-09-30T23:00:00Z",
        "territories": ["GB"],
        "currencyCode": "GBP",
        "priceCode": "STAP",
        "packages": [
          {
            "id": 2,
            "rrp": 3.99
          }
        ]
      },
      {
        "start": "2002-05-31T23:00:00Z",
        "end": "2050-09-30T23:00:00Z",
        "territories": ["JP"],
        "currencyCode": "USD",
        "priceCode": "STAP",
        "packages": [
          {
            "id": 2,
            "rrp": 5.99
          }
        ]
      }
    ],
    "tracks": [
      {
        "id": 12345,
        "title": "Sleeping In My Car",
        "subtitle": "Single Version",
        "isrc": "SEAMA9301032",
        "explicitContent": false,
        "trackNumber": 9,
        "trackOrder": 1,
        "duration": 214,
        "clipStartPoint": 30,
        "discNumber": 1,
        "genres": [
          "sleepy",
          "pop"
        ],
        "type": "Audio",
        "pLine": "℗ 2019 pline",
        "courtesyLine": "Some courtesy line",
        "artist": {
          "id": 10474,
          "name": "Nat King Cole Trio",
          "normalisedName": "Nat King Cole"
        },
        "sourceFormats": [57, 62],
        "streamingAvailability": [
          {
            "start": "2003-05-31T23:00:00Z",
            "end": "2095-09-30T23:00:00Z",
            "territories": [
              "GB",
              "FR",
              "CA"
            ],
            "usageTypes": [
              "subscriptionStreaming"
            ]
          },
          {
            "start": "2004-01-31T23:00:00Z",
            "end": "2095-09-30T23:00:00Z",
            "territories": [
              "NZ",
              "AU",
              "US"
            ],
            "usageTypes": [
              "adSupportedStreaming",
              "subscriptionStreaming"
            ]
          }
        ],
        "downloadAvailability": [
          {
            "start": "2002-05-31T23:00:00Z",
            "end": "2050-09-30T23:00:00Z",
            "territories": ["GB"],
            "currencyCode": "GBP",
            "priceCode": "STAP",
            "packages": [
              {
                "id": 2,
                "rrp": 1.99
              }
            ]
          },
          {
            "start": "2002-05-31T23:00:00Z",
            "end": "2050-09-30T23:00:00Z",
            "territories": ["JP"],
            "currencyCode": "USD",
            "priceCode": "STAP",
            "packages": [
              {
                "id": 2,
                "rrp": 2.99
              }
            ]
          }
        ]
      }
    ]
  }
]

Takedown

This example is for an explicit takedown at the release level.

[
  {
    "version": 1689593591852,
    "id": 1234,
    "takedown": true
  }
]
  • For takedowns at a track level, the track will be removed from the release, and a new event will be sent to you for processing with the track/s removed.
  • For takedowns at an availability level, the streaming or downloading availability will be removed from the release, and a new event with all relevant fields and remaining availability will be sent to you.
    • If the remaining availability is not applicable to your service, i.e., you are looking for download availability and there is only streaming availability in the event, you can disregard it.