Skip to content

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

{
  "jsonapi": {
    "version": "1.0"
  },
  "errors": [
    {
      "status": "404",
      "title": "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

{
  "jsonapi": {
    "version": "1.0"
  },
  "errors": [
    {
      "status": "404",
      "title": "Not Found"
    }
  ]
}