Music — entry 006 of 32
Deezer
Deezer's REST API serves the catalog metadata behind the streaming app: tracks, albums, artists, playlists, charts, and full-text search. Unusually for a major streaming service its read endpoints are fully keyless — a plain GET against api.deezer.com returns real track data with no App ID, key, or token at all — while OAuth is reserved for endpoints that act on a user's own account, such as favorites or the activity feed. Responses can be requested as either JSON or XML via an output query parameter, and the API is free to use within Deezer's terms.
Deezer's REST API serves catalog reads — artists, tracks, albums, search — with no App ID, key, or token at all. A live GET to `/artist/27` (Daft Punk) returned a 200 with real catalog data and no auth header sent, and the response never carries an `access-control-allow-origin` header on this run's probes, confirming the stored `cors: "no"`.
GreatAPIs Score
Auth quickstart
- No App ID, key, or OAuth token needed for public catalog reads — this run's own probe against `/artist/27` returned real catalog data with zero credentials sent.
- OAuth is reserved for endpoints that act on a user's own account (favorites, the activity feed) — separate from the keyless read path this quickstart covers.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Look up an artist by ID
GEThttps://api.deezer.com/artist/27
{"id":27,"name":"Daft Punk","link":"https:\/\/www.deezer.com\/artist\/27","share":"https:\/\/www.deezer.com\/artist\/27?utm_source=deezer&utm_content=artist-27&utm_term=0_1785133748&utm_medium=web","picture":"https:\/\/api.deezer.com\/artist\/27\/image","picture_small":"https:\/\/cdn-images.dzcdn.net\/images\/artist\/638e69b9caaf9f9f3f8826febea7b543\/56x56-000000-80-0-0.jpg","picture_medium":"https:\/\/cdn-images.dzcdn.net\/images\/artist\/638e69b9caaf9f9f3f8826febea7b543\/250x250-000000-80-0-0.jpg","picture_big":"https:\/\/cdn-images.dzcdn.net\/images\/artist\/638e69b9caaf9f9f3f8826febea7b543\/500x500-000000-80-0-0.jpg","picture_xl":"https:\/\/cdn-images.dzcdn.net\/images\/artist\/638e69b9caaf9f9f3f8826febea7b543\/1000x1000-000000-80-0-0.jpg","nb_album":38,"nb_fan":5179193,"radio":true,"tracklist":"https:\/\/api.deezer.com\/artist\/27\/top?limit=50","type":"artist"}`nb_fan` and the `share` URL's tracking params are live and will differ on a later request — the shape (id, name, picture URLs, nb_album, nb_fan, tracklist) is what's stable, not the exact numbers.
Developer reference
https://api.deezer.comGotchas & limits
- Errors do not use HTTP error status codes: a live GET to `/artist/999999999999` (a nonexistent id) returned HTTP 200 with an error payload in the body, `{"error":{"type":"DataException","message":"no data","code":800}}` — a client that only checks the status code will treat this as success.
- No `access-control-allow-origin` header is sent on any response this run, plain GET or CORS preflight: an `OPTIONS` request carrying `Origin` and `Access-Control-Request-Method` still came back with `access-control-allow-methods`/`-headers`/`-credentials` but never `-allow-origin` — a browser calling `api.deezer.com` directly is blocked by CORS either way.
- Responses can be requested as XML instead of JSON via `?output=xml` — a live GET to `/artist/27?output=xml` returned HTTP 200 with `content-type: application/xml; charset=utf-8` in place of the default `application/json; charset=utf-8`, same underlying data.
- `/search/track` matches on plain free text but not always on field-scoped syntax: a live GET to `/search/track?q=one+more+time+daft+punk&limit=1` correctly matched the track via free text, while other field-scoped query shapes can return `{"data":[],"total":0}` even for a real track — worth testing the plain-text form first.