Albums
The central entity for music distribution. Albums contain tracks and are associated with artists, labels, and distribution metadata.
Resource Overview
Albums are the core resource in the music distribution system. They represent a collection of tracks that can be distributed to various Digital Service Providers (DSPs).
/albums
albums
Owner-restricted
Schema
Atributos Requeridos
| Field | Type | Description | Validations | Editable |
|---|---|---|---|---|
| title | string | Album title | Up to 255 characters | ✓ |
| artwork | string | Artwork file path | Up to 500 characters | ✓ |
| is-explicit | boolean | Explicit content flag | - | ✓ |
| original-release-date | date | Original release date | format: YYYY-MM-DD | ✓ |
| digital-release-date | date | Digital release date | format: YYYY-MM-DD | ✓ |
| rights-owner-year | integer | Rights owner year | Between 1900 and next year | ✓ |
| rights-owner-name | string | Rights owner name | Up to 255 characters | ✓ |
Optional Attributes
| Field | Type | Description | Validations | Editable |
|---|---|---|---|---|
| id | string | Unique identifier | auto-generated | |
| description | string | Album description | - | ✓ |
| version-description | string | Version as free text (e.g., "Deluxe Edition"). Takes priority over version relationship — if set, version_id is cleared automatically. | Optional · up to 200 characters | ✓ |
| is-published | boolean | Publication status | read-only | |
| upc-code | string | UPC Code (Universal Product Code) | Up to 20 characters · unique | ✓ |
| copyright | string | Copyright information | auto-generated | |
| publishing | string | Publishing information | auto-generated | |
| grid | string | GRID identifier | Up to 50 characters | ✓ |
| catalogue-number | string | Catalogue number | Up to 50 characters | ✓ |
| created-at | datetime | Creation date | automatic | |
| updated-at | datetime | Last update date | automatic | |
| label-name | string | Label name (computed from label relationship) | read-only | |
| tracks-count | integer | Number of tracks in album | computed | |
| format-name | string | Format name (computed from format relationship) | read-only | |
| last-status | string | Current album status | read-only | |
| origin | string | Album creation origin (api, wizard, etc.) | automatic |
Required Relationships
Important: These relationships are mandatory for album creation.
| Relationship | Resource | Description | Editable |
|---|---|---|---|
| label | labels | Record label | ✓ |
| primary-genre | genres | Primary music genre | ✓ |
| language | languages | Album language | ✓ |
| format | album-formats | Album format (Album, LP, Single, etc.) | ✓ |
Optional Relationships
| Relationship | Resource | Description | Editable |
|---|---|---|---|
| user | users | Album owner (automatically assigned) | |
| secondary-genre | genres | Secondary music genre | ✓ |
| version | versions | Album version (from predefined list). Alternative to version-description attribute. |
✓ |
Version: two ways to set it
- • Free text: Use the
version-descriptionattribute to enter any version text (e.g., "Deluxe Edition", "Remastered 2024"). - • Predefined: Use the
versionrelationship to select from the predefined versions list. - • If both are sent in the same request, free text takes priority and the version relationship is cleared automatically.
- • If only the relationship is sent, the version text is auto-populated from the selected version name.
Collection Relationships (Read-only)
| Relationship | Resource | Description |
|---|---|---|
| album-tracks | album-tracks | Track-album relationships with order metadata |
| album-artists | album-artists | Artist-album relationships with roles and order |
| status-changes | album-status-changes | Status change history |
| distribution-requests | distribution-requests | Distribution requests |
| deliveries | deliveries | Deliveries to DSPs |
Related Endpoints
| Endpoint | Method | Description | Documentation |
|---|---|---|---|
| /albums/{id}/trends | GET | Get performance trends for an album (plays by date, DSP, country) | View Trends → |
Many-to-Many Relationships (Editable)
Note: These relationships can be managed directly in album creation/updates.
| Relationship | Resource | Description |
|---|---|---|
| tracks | tracks | Tracks that compose the album |
| artists | artists | Artists associated with the album |
| countries | countries | Distribution countries |
| dsps | dsps | Digital service platforms |
List Albums
/albums
GET /albums
Authorization: Bearer {token}
Accept: application/vnd.api+json
Query Parameters
Filtering
- •
filter[title]- Filter by album title (partial match) - •
filter[last-status]- Filter by album status (draft, in_review, approved, delivered, online, etc.) - •
filter[label]- Filter by label ID - •
filter[is-explicit]- Filter by explicit content flag (true/false) - •
filter[user]- Filter by user ID (admin only) - •
filter[user-name]- Filter by user name (partial match) - •
filter[label-name]- Filter by label name (partial match) - •
filter[upc-code]- Filter by UPC code (exact match) - •
filter[has-tracks]- Filter albums that have at least one track (true/false) - •
filter[has-artists]- Filter albums that have at least one artist assigned (true/false) - •
filter[has-album-tracks]- Filter albums with track relationships configured (true/false) - •
filter[has-distribution-requests]- Filter albums that have distribution requests (true/false) - •
filter[has-deliveries]- Filter albums that have been delivered to DSPs (true/false) - •
filter[created-at-gte]- Filter albums created on or after date (YYYY-MM-DD) - •
filter[created-at-lte]- Filter albums created on or before date (YYYY-MM-DD)
Other Parameters
- •
include- Include related resources
Available: user, label, primary-genre, secondary-genre, language, format, version, tracks, artists, album-tracks, album-artists, dsps, countries - •
sort- Sort by field (prefix with - for desc)
Available: title, created-at, updated-at, digital-release-date, original-release-date - •
page[number]- Page number (default: 1) - •
page[size]- Results per page (default: 15, max: 100)
Example Request
GET /albums?include=user,label,primary-genre&filter[is-explicit]=false&sort=-created-at&page[size]=5
Authorization: Bearer {token}
Accept: application/vnd.api+json
Success Response
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 7,
"perPage": 5,
"to": 5,
"total": 33
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://domain.com/api/v1/albums?include=user,label,primary-genre&page[number]=1&page[size]=5",
"last": "https://domain.com/api/v1/albums?include=user,label,primary-genre&page[number]=7&page[size]=5",
"next": "https://domain.com/api/v1/albums?include=user,label,primary-genre&page[number]=2&page[size]=5"
},
"data": [
{
"type": "albums",
"id": "1234",
"attributes": {
"title": "Midnight Dreams",
"version-description": "Deluxe Edition",
"description": "A collection of atmospheric tracks exploring themes of night and dreams",
"label-name": "Indie Records",
"tracks-count": 8,
"format-name": "Album",
"last-status": "draft",
"is-explicit": false,
"is-published": false,
"upc-code": "123456789012",
"original-release-date": "2024-03-15T00:00:00.000000Z",
"digital-release-date": "2024-03-15T00:00:00.000000Z",
"rights-owner-year": 2024,
"rights-owner-name": "Dream Music Publishing",
"copyright": "2024 Dream Music Publishing",
"publishing": "2024 Dream Music Publishing",
"artwork": "https://example.com/artwork/midnight-dreams.jpg",
"origin": "api",
"created-at": "2024-03-10T10:00:00.000000Z",
"updated-at": "2024-03-15T14:30:00.000000Z"
},
"relationships": {
"user": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/user",
"self": "https://domain.com/api/v1/albums/1234/relationships/user"
},
"data": {
"type": "users",
"id": "456"
}
},
"label": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/label",
"self": "https://domain.com/api/v1/albums/1234/relationships/label"
},
"data": {
"type": "labels",
"id": "789"
}
},
"primary-genre": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/primary-genre",
"self": "https://domain.com/api/v1/albums/1234/relationships/primary-genre"
},
"data": {
"type": "genres",
"id": "12"
}
}
},
"links": {
"self": "https://domain.com/api/v1/albums/1234"
}
}
],
"included": [
{
"type": "users",
"id": "456",
"attributes": {
"name": "John Artist",
"email": "john@example.com",
"created-at": "2024-01-15T08:30:00.000000Z",
"updated-at": "2024-03-10T12:00:00.000000Z"
},
"links": {
"self": "https://domain.com/api/v1/users/456"
}
},
{
"type": "labels",
"id": "789",
"attributes": {
"name": "Indie Records",
"description": "Independent music label focusing on emerging artists",
"created-at": "2023-06-01T10:00:00.000000Z",
"updated-at": "2024-02-20T16:45:00.000000Z"
},
"relationships": {
"albums": {
"links": {
"related": "https://domain.com/api/v1/labels/789/albums",
"self": "https://domain.com/api/v1/labels/789/relationships/albums"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/789"
}
},
{
"type": "genres",
"id": "12",
"attributes": {
"name": "Ambient"
},
"links": {
"self": "https://domain.com/api/v1/genres/12"
}
}
]
}
Get Single Album
/albums/{id}
GET /albums/1234?include=user,label,primary-genre,tracks
Authorization: Bearer {token}
Accept: application/vnd.api+json
Success Response
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/albums/1234"
},
"data": {
"type": "albums",
"id": "1234",
"attributes": {
"title": "Midnight Dreams",
"version-description": "Deluxe Edition",
"version-id": 2,
"description": "A collection of atmospheric tracks exploring themes of night and dreams",
"label-name": "Indie Records",
"tracks-count": 8,
"format-name": "Album",
"last-status": "draft",
"is-explicit": false,
"is-published": false,
"upc-code": "123456789012",
"original-release-date": "2024-03-15T00:00:00.000000Z",
"digital-release-date": "2024-03-15T00:00:00.000000Z",
"rights-owner-year": 2024,
"rights-owner-name": "Dream Music Publishing",
"copyright": "2024 Dream Music Publishing",
"publishing": "2024 Dream Music Publishing",
"artwork": "https://example.com/artwork/midnight-dreams.jpg",
"origin": "api",
"created-at": "2024-03-10T10:00:00.000000Z",
"updated-at": "2024-03-15T14:30:00.000000Z"
},
"relationships": {
"user": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/user",
"self": "https://domain.com/api/v1/albums/1234/relationships/user"
},
"data": {
"type": "users",
"id": "456"
}
},
"label": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/label",
"self": "https://domain.com/api/v1/albums/1234/relationships/label"
},
"data": {
"type": "labels",
"id": "789"
}
},
"primary-genre": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/primary-genre",
"self": "https://domain.com/api/v1/albums/1234/relationships/primary-genre"
},
"data": {
"type": "genres",
"id": "12"
}
},
"tracks": {
"links": {
"related": "https://domain.com/api/v1/albums/1234/tracks",
"self": "https://domain.com/api/v1/albums/1234/relationships/tracks"
},
"data": [
{
"type": "tracks",
"id": "5678"
},
{
"type": "tracks",
"id": "5679"
}
]
}
},
"links": {
"self": "https://domain.com/api/v1/albums/1234"
}
},
"included": [
{
"type": "users",
"id": "456",
"attributes": {
"name": "John Artist",
"email": "john@example.com",
"created-at": "2024-01-15T08:30:00.000000Z",
"updated-at": "2024-03-10T12:00:00.000000Z"
},
"links": {
"self": "https://domain.com/api/v1/users/456"
}
},
{
"type": "labels",
"id": "789",
"attributes": {
"name": "Indie Records",
"description": "Independent music label focusing on emerging artists",
"created-at": "2023-06-01T10:00:00.000000Z",
"updated-at": "2024-02-20T16:45:00.000000Z"
},
"relationships": {
"albums": {
"links": {
"related": "https://domain.com/api/v1/labels/789/albums",
"self": "https://domain.com/api/v1/labels/789/relationships/albums"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/789"
}
},
{
"type": "genres",
"id": "12",
"attributes": {
"name": "Ambient"
},
"links": {
"self": "https://domain.com/api/v1/genres/12"
}
},
{
"type": "tracks",
"id": "5678",
"attributes": {
"title": "Lucid Dreaming",
"is-explicit": false,
"rights-owner-year": 2024,
"rights-owner-name": "Dream Music Publishing",
"order": 1,
"isrc-code": "USRC17607839",
"notes": "Opening track with ethereal vocals",
"full-audiofile-url": "https://cdn.example.com/tracks/lucid-dreaming.wav",
"length": "00:04:23",
"lyrics": "Floating through the midnight sky...",
"preview-start": 30,
"publishing": "2024 Dream Music Publishing",
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"created-at": "2024-03-08T14:20:00.000000Z",
"updated-at": "2024-03-12T09:15:00.000000Z"
},
"relationships": {
"albums": {
"links": {
"related": "https://domain.com/api/v1/tracks/5678/albums",
"self": "https://domain.com/api/v1/tracks/5678/relationships/albums"
}
},
"artists": {
"links": {
"related": "https://domain.com/api/v1/tracks/5678/artists",
"self": "https://domain.com/api/v1/tracks/5678/relationships/artists"
}
}
},
"links": {
"self": "https://domain.com/api/v1/tracks/5678"
}
},
{
"type": "tracks",
"id": "5679",
"attributes": {
"title": "Nocturnal Waves",
"is-explicit": false,
"rights-owner-year": 2024,
"rights-owner-name": "Dream Music Publishing",
"order": 2,
"isrc-code": "USRC17607840",
"notes": "Instrumental piece with ocean sounds",
"full-audiofile-url": "https://cdn.example.com/tracks/nocturnal-waves.wav",
"length": "00:05:17",
"lyrics": null,
"preview-start": 45,
"publishing": "2024 Dream Music Publishing",
"md5": "e99a18c428cb38d5f260853678922e03",
"created-at": "2024-03-09T11:30:00.000000Z",
"updated-at": "2024-03-12T16:45:00.000000Z"
},
"links": {
"self": "https://domain.com/api/v1/tracks/5679"
}
}
]
}
Create Album
/albums
{
"data": {
"type": "albums",
"attributes": {
"title": "Sunset Boulevard",
"artwork": "https://example.com/artwork/sunset-boulevard.jpg"
"is-explicit": false,
"original-release-date": "2024-06-01T00:00:00Z",
"digital-release-date": "2024-06-01T00:00:00Z",
"rights-owner-year": 2024,
"rights-owner-name": "Sunset Music Group",
},
"relationships": {
"label": {
"data": { "type": "labels", "id": "123" }
},
"primary-genre": {
"data": { "type": "genres", "id": "5" }
},
"language": {
"data": { "type": "languages", "id": "1" }
},
"format": {
"data": { "type": "album-formats", "id": "2" }
}
}
}
}
Required Relationships
Important
The following relationships are required when creating an album:
- • label - Must reference an existing label
- • primary-genre - Must reference an existing genre
- • language - Must reference an existing language
Success Response
Update Album
/albums/{id}
{
"data": {
"type": "albums",
"id": "1234",
"attributes": {
"title": "Midnight Dreams - Special Edition",
"description": "Updated description with bonus tracks and remastered audio",
"is-explicit": true
}
}
}
Partial Updates
You can update specific fields without affecting others:
{
"data": {
"type": "albums",
"id": "1234",
"attributes": {
"title": "Ocean Waves - Acoustic Version"
}
}
}
Video Releases
An album whose format is the Video album format is a video release.
Working with one requires the video feature on your account. These refusals carry their reason in the
error's code:
| Status | code | When |
|---|---|---|
| 403 | video_not_allowed | Creating an album, or editing one, with the video format when your account does not have the video feature. |
| 403 | video_read_only | Any change to a video release (update, delete, its countries, its tracks or its DSPs) when your account does not have the video feature. You can still read it. |
| 422 | video_format_new_albums_only | Editing an existing album to the video format when it was not created as one. The video format can only be chosen when the album is created. |
| 422 | dsp_does_not_accept_video | Sending dsps with a DSP that does not accept video for an album whose tracks are all videos. The whole request is refused and the detail names the rejected DSPs, also listed in the error's meta.dsps. |
A release whose only track is a music video must use the video format. A one-track release of any other format whose track is a video is not complete, and a distribution request for it is refused with an error asking for the Video format. Takedown requests are not affected.
Delete Album
/albums/{id}
DELETE /albums/1234
Authorization: Bearer {token}
Success Response
Usage Examples
Complete Album Creation Flow
POST /albums
POST /album-artists
POST /tracks
POST /distribution-requests
Search and Filter
GET /albums?filter[title]=Dreams
GET /albums?sort=-created-at&page[size]=10
GET /albums?filter[is-published]=true
GET /albums?filter[last-status]=draft
GET /albums?filter[user-name]=kahnwald
GET /albums?filter[label-name]=nielsen