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
- takedownExamples
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.
Updated 3 days ago
