Skip to main content

Deezer API for Developers: How to Build Music Features with Deezer in 2026

Published on August 1, 2026

Deezer API for Developers: How to Build Music Features with Deezer in 2026

Table of Contents

What Is the Deezer API?

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.

Why Developers Target Deezer

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.

Global Reach Beyond the Usual Suspects

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.

Catalog Strengths: Tracks, Podcasts, and Flow

Beyond raw track count, Deezer offers features that developers can leverage:

  • Flow: Deezer's personalized recommendation algorithm generates an infinite, personalized stream of tracks for each user. Apps that surface Flow give users a "lean back" listening experience without requiring playlist selection.
  • Editorial playlists: Deezer maintains curated playlists by mood, genre, activity, and region. These are accessible through the API and useful for apps that want pre-built content without manual curation.
  • Podcast catalog: Deezer's podcast integration means the same API that handles music also handles spoken-word content. For apps combining music and podcasts, this avoids a separate podcast API integration.
  • Lyrics: Deezer provides synchronized lyrics for a large portion of its catalog, accessible through the API.

Deezer API Capabilities for Developers

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.

Track Search and Metadata

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 Access and Management

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 and Library Data

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.

Integrating Deezer Through MusicAPI vs Direct API

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.

Comparison Table: Direct Deezer vs MusicAPI

FactorDirect Deezer APIVia MusicAPI
Services coveredDeezer onlyDeezer + 11 other services
Auth implementationDeezer OAuth 2.0Single unified auth flow
Response formatDeezer-specific JSON schemaNormalized across all services
Rate limit handlingManual (50 req/s)Managed by MusicAPI
Playlist operationsDeezer endpoints onlyOne endpoint for all services
Adding another serviceNew integration from scratchAlready included
Development time2 to 3 weeks1 to 2 days
Maintenance burdenTrack Deezer API changesMusicAPI handles updates
CostFree (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.

Authentication Differences

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.

Building a Deezer-Powered Feature: Step by Step

Here is a practical walkthrough: adding a "Browse Your Deezer Library" feature to an existing app using MusicAPI.

Step 1: Authenticate the User

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.

Step 2: Fetch the User's Deezer Playlists

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.

Step 3: Display Playlist Tracks

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.

Rate Limiting and Best Practices for Deezer Integrations

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:

  • Cache metadata aggressively. Track metadata (title, artist, album art) changes rarely. Cache it for at least 24 hours. Playlist contents change more often but can be cached for 5 to 15 minutes.
  • Batch where possible. When loading a playlist view, fetch the playlist list first, then fetch tracks for the selected playlist only. Do not preload all tracks for all playlists.
  • Handle 429 responses. When you hit the rate limit, Deezer returns a 429 status. Back off with exponential delay and retry. Do not hammer the endpoint.
  • Watch for token revocation. Deezer tokens can be revoked at any time. When you get a 401, prompt the user to re-authenticate instead of retrying with the same token.
  • Use pagination. Deezer endpoints return paginated results. Always check the 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.

FAQ

Is the Deezer API free to use?

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.

What data can I access through the Deezer API?

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.

Can I create playlists on Deezer through an API?

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.

How does MusicAPI handle Deezer rate limits?

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.

Can I access Deezer alongside other streaming services in the same API call?

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.

Does Deezer support playback through its API?

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.