ArtistDspIdentification¶
An artist DSP identification maps an artist to their platform-specific ID and profile URL on a given DSP. These IDs are embedded in DDEX deliveries so the DSP matches the existing artist profile. Each record belongs to one artist and one dsp-upload-identification. This resource supports full CRUD.
Lists ArtistDspIdentifications¶
GET https://domain.com/api/v1/artist-dsp-identifications
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Response — 200 OK
{
"data": [
{
"type": "artist-dsp-identifications",
"id": "<ID>",
"attributes": {
"dsp-artist-id": "4q3ewBCX7sLwd24euuV69X",
"dsp-artist-url": "https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X",
"created-at": "2025-12-15T10:35:00.000000Z",
"updated-at": "2025-12-15T10:35:00.000000Z"
},
"relationships": {
"artist": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/artist",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/artist"
}
},
"dspUploadIdentification": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/dsp-upload-identification",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/dsp-upload-identification"
}
}
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<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/artist-dsp-identifications?page[number]=1&page[size]=20",
"last": "https://domain.com/api/v1/artist-dsp-identifications?page[number]=1&page[size]=20"
}
}
Filters¶
| Filter | Example |
|---|---|
| ID | /artist-dsp-identifications?filter[id]=1,2,3 |
| Artist ID | /artist-dsp-identifications?filter[artist-id]=15 |
| DSP upload identification | /artist-dsp-identifications?filter[dsp-upload-identification-id]=1990 |
Get ArtistDspIdentification¶
GET https://domain.com/api/v1/artist-dsp-identifications/:id
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | ArtistDspIdentification ID |
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Response — 200 OK
{
"data": {
"type": "artist-dsp-identifications",
"id": "<ID>",
"attributes": {
"dsp-artist-id": "4q3ewBCX7sLwd24euuV69X",
"dsp-artist-url": "https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X",
"created-at": "2025-12-29T07:38:27.000000Z",
"updated-at": "2025-12-29T07:38:27.000000Z"
},
"relationships": {
"artist": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/artist",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/artist"
}
},
"dspUploadIdentification": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/dsp-upload-identification",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/dsp-upload-identification"
}
}
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
}
Response — 404 Not Found
Create ArtistDspIdentification¶
POST https://domain.com/api/v1/artist-dsp-identifications
dsp-artist-id, artist and dspUploadIdentification are all effectively required on create.
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Request Body¶
| Name | Required | Type | Description |
|---|---|---|---|
| dsp-artist-id | Yes | String | Artist ID on the DSP platform |
| artist | Yes | Object | Artist resource (relationship) |
| dspUploadIdentification | Yes | Object | DspUploadIdentification resource (relationship) |
| dsp-artist-url | No | String | Artist profile URL on the DSP (must be a valid URL) |
Response — 201 Created
{
"data": {
"type": "artist-dsp-identifications",
"id": "<ID>",
"attributes": {
"dsp-artist-id": "4q3ewBCX7sLwd24euuV69X",
"dsp-artist-url": "https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV69X",
"created-at": "2025-12-29T07:38:27.000000Z",
"updated-at": "2025-12-29T07:38:27.000000Z"
},
"relationships": {
"artist": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/artist",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/artist"
}
},
"dspUploadIdentification": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/dsp-upload-identification",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/dsp-upload-identification"
}
}
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
}
Response — 422 Unprocessable Entity
{
"jsonapi": {
"version": "1.0"
},
"errors": [
{
"detail": "The dsp-artist-url must be a valid URL.",
"source": {
"pointer": "/data/attributes/dsp-artist-url"
},
"status": "422",
"title": "Unprocessable Entity"
}
]
}
Update ArtistDspIdentification¶
PATCH https://domain.com/api/v1/artist-dsp-identifications/:id
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | ArtistDspIdentification ID |
Headers¶
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer \ |
| Content-Type* | String | application/vnd.api+json |
Request Body¶
All fields are optional on PATCH; omitted attributes keep their current values.
| Name | Required | Type | Description |
|---|---|---|---|
| dsp-artist-id | No | String | Artist ID on the DSP platform |
| dsp-artist-url | No | String | Artist profile URL on the DSP |
Response — 200 OK
{
"data": {
"type": "artist-dsp-identifications",
"id": "<ID>",
"attributes": {
"dsp-artist-id": "4q3ewBCX7sLwd24euuV693",
"dsp-artist-url": "https://open.spotify.com/artist/4q3ewBCX7sLwd24euuV693",
"created-at": "2025-12-29T07:38:27.000000Z",
"updated-at": "2025-12-29T08:00:00.000000Z"
},
"relationships": {
"artist": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/artist",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/artist"
}
},
"dspUploadIdentification": {
"links": {
"related": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/dsp-upload-identification",
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>/relationships/dsp-upload-identification"
}
}
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://domain.com/api/v1/artist-dsp-identifications/<ID>"
}
}
Delete ArtistDspIdentification¶
DELETE https://domain.com/api/v1/artist-dsp-identifications/:id
Path Parameters¶
| Name | Type | Description |
|---|---|---|
| id* | Number | ArtistDspIdentification 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