Developer Reference
Programmatic access to the mysetlist.ai Artist Node Registry for labels, distributors, PROs, broadcasters, sync houses, and DSPs.
https://mysetlist.ai
All endpoints are served over HTTPS. There is no versioned subdomain — versioning is in the path (/api/v1/).
The Artist Node lookup endpoint supports two access modes:
Any client can look up a single artist node by UUID. No key required. Suitable for artist dashboards and one-off integrations.
GET /api/v1/artist/{uuid}
# No Authorization header required
Automated or bulk access requires a carrier API key. Pass it as a Bearer token. All carrier requests are logged.
GET /api/v1/artist/{uuid}
Authorization: Bearer ck_live_{your-48-char-hex-key}
Carrier keys are issued after approval. Key format: ck_live_{48 hex chars}. Keys are never returned after initial issuance — store them securely.
| Parameter | In | Type | Description |
|---|---|---|---|
| uuid required | path | string (UUID v4) | The UUID portion of the artist's Node ID. Not the full msl:artist:… string — just the UUID. |
{
"nodeId": "msl:artist:radiohead:550e8400-e29b-41d4-a716-446655440000",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"artistName": "Radiohead",
"isni": "0000000121707484",
"isrc": "GBBRL9300135",
"platforms": ["spotify", "tidal", "apple_music"],
"reviewStatus": "approved",
"submittedAt": "2026-05-25T14:30:00.000Z"
}
| Field | Type | Description |
|---|---|---|
| nodeId | string | Full Artist Node identifier in msl:artist:{slug}:{uuid} format. |
| uuid | string | UUID v4 — the primary lookup key. |
| artistName | string | Registered artist or act name. |
| isni | string | null | International Standard Name Identifier if provided at registration. |
| isrc | string | null | International Standard Recording Code if provided at registration. |
| platforms | string[] | Carrier distribution preferences. Values: spotify, apple_music, youtube_music, tidal, amazon_music, deezer, soundcloud, beatport, bandcamp. |
| reviewStatus | string | pending — awaiting review. approved — node is active. rejected — not admitted. |
| submittedAt | string (ISO 8601) | UTC timestamp of registration. |
The API deliberately omits: email address, email hash, IP hash, submission pitch, Cloudflare ray ID, and country of origin. These fields exist in the internal record but are never exposed via any public endpoint.
Rate limits are enforced per carrier key. Exceeding the limit returns 429 Too Many Requests. Public (unauthenticated) requests share a global IP-based limit.
If your integration requires higher volume, note it in your carrier access application.
All errors return JSON with an error string field.
| Status | Meaning |
|---|---|
| 201 | Created — submission accepted. |
| 400 | Bad request — invalid UUID format or missing required field. |
| 401 | Unauthorized — carrier key missing, malformed, or not recognised. |
| 403 | Forbidden — carrier key is suspended. |
| 404 | Not found — no Artist Node exists for the given UUID. |
| 405 | Method not allowed. |
| 413 | Payload too large. |
| 429 | Rate limit exceeded. |
| 500 | Server error — try again shortly. |
curl -s \
-H "Authorization: Bearer ck_live_{your-key}" \
"https://mysetlist.ai/api/v1/artist/550e8400-e29b-41d4-a716-446655440000"
// Node.js / browser / CF Worker
const res = await fetch(
`https://mysetlist.ai/api/v1/artist/${uuid}`,
{ headers: { Authorization: `Bearer ${CARRIER_KEY}` } }
);
if (!res.ok) throw new Error(`MSL API ${res.status}`);
const node = await res.json();
console.log(node.artistName, node.isni, node.platforms);
import requests
CARRIER_KEY = "ck_live_{your-key}"
UUID = "550e8400-e29b-41d4-a716-446655440000"
r = requests.get(
f"https://mysetlist.ai/api/v1/artist/{UUID}",
headers={"Authorization": f"Bearer {CARRIER_KEY}"},
timeout=5,
)
r.raise_for_status()
node = r.json()
print(node["artistName"], node["isni"], node["platforms"])
Every registered artist receives a Node ID in the following format:
msl:artist:{slug}:{uuid-v4}
# Example
msl:artist:radiohead:550e8400-e29b-41d4-a716-446655440000
slug — URL-safe lowercase version of the artist name. Cosmetic only; not unique.
uuid-v4 — The primary identifier. Cryptographically random. This is what you use for API lookups.
The format follows the W3C Decentralised Identifier (DID) naming convention and is forward-compatible with a future did:msl: method registration.
Carrier access applications are reviewed manually. Typical turnaround is 3–5 business days. To apply:
ck_live_ key via email.