Label¶
A label is the releasing entity for music products. Every label belongs to a company and carries usage-rights metadata that governs how its catalog may be exploited across DSPs.
Lists Labels¶
GET https://domain.com/api/v1/labels
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Response — 200 OK
{
"data": [
{
"type": "labels",
"id": "<ID>",
"attributes": {
"name": "label name",
"usage": {
"download": true,
"copy_scan": true,
"on_demand_stream": true,
"non_interactive_stream": true
},
"description": "label description",
"created-at": "2023-08-11T20:44:59.000000Z",
"updated-at": "2023-08-11T20:44:59.000000Z"
},
"relationships": {
"company": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/company",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
}
},
"products": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/products",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/<ID>"
}
}
],
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 20,
"to": 1,
"total": 1
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://domain.com/api/v1/labels?page[number]=1&page[size]=20",
"last": "https://domain.com/api/v1/labels?page[number]=1&page[size]=20"
}
}
Filters¶
| Filter | Example |
|---|---|
| Name | /labels?filter[name]=Label name |
| ID | /labels?filter[id]=1 |
| Label IDs | /labels?filter[label-ids]=1,2,3 |
| Products | /labels?filter[products][name]=product name · /labels?filter[products][status]=draft |
| Has Products | /labels?filter[has-products]=true |
| Has Company | /labels?filter[has-company]=true |
Get Label¶
GET https://domain.com/api/v1/labels/:id
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | Label ID |
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Response — 200 OK
{
"data": {
"type": "labels",
"id": "<ID>",
"attributes": {
"name": "label name",
"usage": {
"download": true,
"copy_scan": true,
"on_demand_stream": true,
"non_interactive_stream": true
},
"description": "label description",
"created-at": "2023-08-11T20:44:59.000000Z",
"updated-at": "2023-08-11T20:44:59.000000Z"
},
"relationships": {
"company": {
"links": {
"related": "https://domain.com/api/v1/labels/1/company",
"self": "https://domain.com/api/v1/labels/1/relationships/company"
}
},
"products": {
"links": {
"related": "https://domain.com/api/v1/labels/1/products",
"self": "https://domain.com/api/v1/labels/1/relationships/products"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/1"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/labels/1"
}
}
Create Label¶
POST https://domain.com/api/v1/labels
A label must be associated with a company. If usage is omitted, it defaults to all four flags set to true.
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Request Body¶
| Name | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Label name |
| company | Object | Yes | Company resource (relationship) |
| description | String | No | Label description |
| usage | Object | No | { "download": true, "copy_scan": true, "on_demand_stream": true, "non_interactive_stream": true } — defaults to all four flags true if omitted |
Response — 201 Created
{
"data": {
"type": "labels",
"id": "<ID>",
"attributes": {
"name": "label name 3",
"usage": {
"download": true,
"copy_scan": true,
"on_demand_stream": true,
"non_interactive_stream": true
},
"description": "label 3 description",
"created-at": "2023-08-12T14:49:21.000000Z",
"updated-at": "2023-08-12T14:49:21.000000Z"
},
"relationships": {
"company": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/company",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
}
},
"products": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/products",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/<ID>"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/labels/<ID>"
}
}
Update Label¶
PATCH https://domain.com/api/v1/labels/:id
All fields are optional; send only the attributes you want to change.
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | Label ID |
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Request Body¶
| Name | Type | Required | Description |
|---|---|---|---|
| name | String | No | Label name |
| description | String | No | Label description |
| usage | Object | No | { "download": true, "copy_scan": true, "on_demand_stream": true, "non_interactive_stream": true } |
| company | Object | No | Company resource (relationship) — can be reassigned |
Response — 200 OK
{
"data": {
"type": "labels",
"id": "<ID>",
"attributes": {
"name": "label name 3",
"usage": {
"download": true,
"copy_scan": true,
"on_demand_stream": true,
"non_interactive_stream": true
},
"description": "label 3 description",
"created-at": "2023-08-12T14:49:21.000000Z",
"updated-at": "2023-08-12T14:49:21.000000Z"
},
"relationships": {
"company": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/company",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
}
},
"products": {
"links": {
"related": "https://domain.com/api/v1/labels/<ID>/products",
"self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
}
}
},
"links": {
"self": "https://domain.com/api/v1/labels/<ID>"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/labels/<ID>"
}
}
Delete Label¶
DELETE https://domain.com/api/v1/labels/:id
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | Label ID |
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Response — 204 No Content (delete OK, empty body)
Response — 404 Not Found