Published on August 1, 2026

The Deezer API is a REST interface that exposes Deezer's music catalog, user data, and playback features to third-party applications. Developers use it to search tracks, read and create playlists, access user libraries, and retrieve detailed metadata for artists, albums, and tracks.
Deezer's API covers most of the same capabilities you find in other streaming service APIs: OAuth-based user authentication, JSON responses for catalog queries, and CRUD operations on playlists. What sets it apart is Deezer's catalog coverage in markets where other services have thinner libraries, and its straightforward REST design that avoids the SDK complexity you see with some other platforms.
MusicAPI wraps Deezer alongside 11 other streaming services into a single unified API. If your app needs Deezer support, you can either build directly against Deezer's endpoints or connect through MusicAPI and get Deezer plus every other supported service in one integration.
Deezer holds a 56-million-track catalog and operates in over 180 countries. For developers building music-powered apps, Deezer fills coverage gaps that matter: strong presence in France, Germany, Brazil, and across Africa and the Middle East. If your user base extends beyond North America, Deezer is not optional.
Most developers start with the largest streaming platforms. That covers North America and parts of Western Europe well. But user data tells a different story when your app reaches Latin America, Francophone Africa, or the Middle East.
Deezer holds significant market share in these regions. In France, it competes directly with the biggest players. In Brazil, it has deep catalog partnerships with local labels. Across West Africa, Deezer's presence exceeds most international competitors.
For apps with global user bases, skipping Deezer means leaving a meaningful segment of users without their preferred music service. Every user who cannot connect their streaming account is a user who gets less value from your app.
Beyond raw track count, Deezer offers features that developers can leverage:
The Deezer API exposes a standard set of music service operations: search, metadata retrieval, playlist management, and user library access. All endpoints return JSON over HTTPS. Authentication uses OAuth 2.0 for user-scoped operations and API keys for public catalog queries.
Searching for tracks is the most common starting point. A search query returns track objects with title, artist, album, duration, preview URL, and cover art.
Here is a track search through MusicAPI, which normalizes the Deezer response into the same format used for every other supported service:
curl -X GET "https://api.musicapi.com/api/search?query=Stromae%20Papaoutai&type=track&service=deezer" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
The response returns normalized track objects:
{
"tracks": [
{
"id": "track_dz_67238735",
"service": "deezer",
"title": "Papaoutai",
"artist": "Stromae",
"album": "Racine Carree",
"duration_ms": 233000,
"album_art_url": "https://api.deezer.com/album/6575789/image",
"isrc": "BEA1113000340"
}
]
}
Deezer's direct API returns the same data but in Deezer's own schema (nested under data[] with fields like title_short, artist.name, album.cover_xl). With MusicAPI, you get a consistent format regardless of the source service.
Playlist operations let your app read a user's existing Deezer playlists, create new ones, and add or remove tracks. These are user-scoped operations that require OAuth authentication.
Fetching a user's playlists through MusicAPI:
curl -X GET "https://api.musicapi.com/api/playlists?service=deezer" \
-H "Authorization: Bearer USER_ACCESS_TOKEN"
The response lists each playlist with its name, track count, cover image, and playlist ID. You can then fetch individual playlist tracks or create a new playlist:
curl -X POST "https://api.musicapi.com/api/playlists" \
-H "Authorization: Bearer USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"service": "deezer", "name": "Workout Mix", "description": "High-energy tracks for the gym"}'
Playlist creation returns the new playlist ID, which you can immediately use to add tracks.
User profile data includes the Deezer username, avatar, country, and account type (free or premium). Library data covers favorite tracks, albums, and artists.
Retrieving a user's Deezer profile:
curl -X GET "https://api.musicapi.com/api/user/profile?service=deezer" \
-H "Authorization: Bearer USER_ACCESS_TOKEN"
Fetching favorite tracks:
curl -X GET "https://api.musicapi.com/api/user/favorites?service=deezer&type=tracks" \
-H "Authorization: Bearer USER_ACCESS_TOKEN"
Both return normalized JSON that matches the response shape for every other service MusicAPI supports.
You have two paths to Deezer integration. Build directly against Deezer's REST API, or connect through MusicAPI and get Deezer plus every other supported service in one integration. The right choice depends on whether Deezer is your only target or one of several.
| Factor | Direct Deezer API | Via MusicAPI |
|---|---|---|
| Services covered | Deezer only | Deezer + 11 other services |
| Auth implementation | Deezer OAuth 2.0 | Single unified auth flow |
| Response format | Deezer-specific JSON schema | Normalized across all services |
| Rate limit handling | Manual (50 req/s) | Managed by MusicAPI |
| Playlist operations | Deezer endpoints only | One endpoint for all services |
| Adding another service | New integration from scratch | Already included |
| Development time | 2 to 3 weeks | 1 to 2 days |
| Maintenance burden | Track Deezer API changes | MusicAPI handles updates |
| Cost | Free (Deezer API is free) | Free tier available at musicapi.com/pricing |
If your app only needs Deezer and will never add another service, building directly is a reasonable choice. Deezer's API is well-designed and the documentation is decent. But most apps eventually need to support multiple services. Starting with a unified API means you never have to rebuild when that day comes.
Deezer uses a standard OAuth 2.0 authorization code flow. You register your app on the Deezer developer portal, redirect users to Deezer's consent screen, receive an authorization code, and exchange it for an access token.
The catch: Deezer access tokens do not expire automatically (unlike most other services), but they can be revoked by the user at any time. Your app needs to handle token revocation gracefully and prompt re-authentication when a previously valid token stops working.
With MusicAPI, Deezer authentication works through the same unified flow used for every other service:
curl -X POST "https://api.musicapi.com/api/auth/init" \
-H "Authorization: Bearer YOUR_APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"service": "deezer", "callback_url": "https://yourapp.com/callback"}'
MusicAPI handles the Deezer-specific OAuth details, token storage, and revocation detection. You get back a unified token that works the same way regardless of which service the user connected.
Here is a practical walkthrough: adding a "Browse Your Deezer Library" feature to an existing app using MusicAPI.
Start by sending the user through the authentication flow. Your backend calls the auth initialization endpoint, receives an authorization URL, and redirects the user:
# Initialize Deezer auth
curl -X POST "https://api.musicapi.com/api/auth/init" \
-H "Authorization: Bearer YOUR_APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"service": "deezer", "callback_url": "https://yourapp.com/auth/callback"}'
Response:
{
"auth_url": "https://connect.deezer.com/oauth/auth.php?app_id=...",
"session_id": "sess_abc123"
}
Redirect the user to auth_url. After they approve, Deezer redirects back to your callback_url. Your backend calls the callback endpoint to complete the exchange and receive a user access token.
With the user authenticated, fetch their playlists:
curl -X GET "https://api.musicapi.com/api/playlists?service=deezer" \
-H "Authorization: Bearer USER_ACCESS_TOKEN"
Response:
{
"playlists": [
{
"id": "pl_dz_908622995",
"service": "deezer",
"name": "Chill Vibes",
"track_count": 47,
"cover_url": "https://api.deezer.com/playlist/908622995/image",
"owner": "user_dz_2529"
},
{
"id": "pl_dz_1045889221",
"service": "deezer",
"name": "Running Tracks",
"track_count": 23,
"cover_url": "https://api.deezer.com/playlist/1045889221/image",
"owner": "user_dz_2529"
}
]
}
Render these in your UI. Each playlist object contains everything you need for a list view: name, track count, and cover image.
When a user selects a playlist, fetch its tracks:
curl -X GET "https://api.musicapi.com/api/playlists/pl_dz_908622995/tracks" \
-H "Authorization: Bearer USER_ACCESS_TOKEN"
Response:
{
"tracks": [
{
"id": "track_dz_3135556",
"title": "Harder, Better, Faster, Stronger",
"artist": "Daft Punk",
"album": "Discovery",
"duration_ms": 224000,
"album_art_url": "https://api.deezer.com/album/302127/image"
}
],
"pagination": {
"total": 47,
"limit": 25,
"offset": 0
}
}
The response uses the same normalized schema as every other service. If you later add support for other streaming platforms, your frontend rendering code does not change.
Deezer enforces a rate limit of approximately 50 requests per second per application. This is more generous than most streaming services, but you still need to handle it.
Best practices for Deezer integrations:
total field and implement "load more" rather than fetching everything in one call.When using MusicAPI, rate limiting is handled at the API layer. MusicAPI tracks per-service limits, handles backoff automatically, and returns consistent 429 responses with retry guidance. You do not need to implement per-service rate tracking yourself.
Ready to skip months of OAuth and SDK work? Start your free MusicAPI trial and connect 10+ streaming services with one unified API.
Yes. Deezer's API is free for developers. There are no API access fees or per-request charges. You register your app on the Deezer developer portal, get credentials, and start making requests. The rate limit (approximately 50 requests per second) is the main constraint. For production apps that need higher throughput or access to multiple services, MusicAPI offers free and paid tiers that include Deezer alongside 11 other streaming services.
The Deezer API provides access to track search and metadata (title, artist, album, duration, ISRC, cover art), user playlists (read, create, update), user favorites (tracks, albums, artists), user profile information, album and artist details, editorial playlists, radio stations, and podcast content. User-scoped data requires OAuth authentication. Public catalog data (search, track metadata) can be accessed with just an API key.
Yes. The Deezer API supports full playlist CRUD: create, read, update, and delete. You can create a new playlist, add tracks to it, remove tracks, and update the playlist name and description. Through MusicAPI, you use the same create playlist endpoint for Deezer as for every other supported service. The request body is identical; only the service parameter changes.
MusicAPI tracks Deezer's rate limits (approximately 50 requests per second) at the API layer. When your requests approach the limit, MusicAPI queues them and applies automatic backoff. If the limit is hit, you receive a standard 429 response with a Retry-After header telling you exactly how long to wait. This is consistent across all services. You do not need separate rate limit tracking for Deezer, separate tracking for other platforms, and separate backoff logic for each. One rate limiting strategy covers everything.
With MusicAPI, yes. A single search request can return results from Deezer and every other connected service simultaneously. The response includes results from all services the user has authenticated, each tagged with the source service. Playlist and library operations are per-service (you specify which service to query), but the request format and response schema are identical across services. Your code writes one parser, one error handler, and one authentication flow that works for all supported services.
Deezer offers a JavaScript Widget for browser-based playback and 30-second preview URLs for all tracks through its REST API. Full playback requires the Deezer Widget, which embeds an iframe player in your web application. For mobile apps, Deezer's SDK options are more limited compared to some other services. Through MusicAPI, playback control is normalized across services, so the same commands that control playback on one service work identically for Deezer.