Deezer Music Catalog API Scraper
Deezer Music Catalog API Scraper
Search and retrieve music catalog data from Deezer's public API — tracks, artists, albums, and playlists — without any authentication. Exposes ISRC and UPC join keys, BPM, gain, and popularity rank fields unavailable in most competing actors.
What it does
- Searches Deezer's catalog by keyword across any entity type:
track,artist,album,playlist, orchart - Handles offset-based pagination automatically, respecting Deezer's 50 req/5s rate limit
- Optionally fetches full track detail records (BPM, gain, ISRC, track position, disk number) via
fetchDetails: true - Supports comma-separated batch queries for multi-keyword runs in a single execution
- Chart mode (
entityType: chart) returns trending tracks for any Deezer genre without a keyword
Why use this
Deezer is the last major streaming catalog with a public, auth-free API. Spotify now requires OAuth; Apple Music requires an enterprise token. Deezer's API returns 90M+ tracks with cross-platform join fields:
- ISRC — standard track identifier; joins to MusicBrainz, Discogs, Apple Music
- UPC — album barcode; joins to Discogs, Amazon, Bandcamp
- BPM / gain — audio features for music-analysis workflows
Input
| Field | Type | Description |
|---|---|---|
query |
string | Search keyword(s). Comma-separate for batch: "radiohead, jazz". Required unless entityType is "chart". |
entityType |
string | One of: track (default), artist, album, playlist, chart |
genreId |
integer | Genre ID for chart mode. 0 = global top. Examples: 85 = Alternative, 132 = Pop, 116 = Rap/Hip-Hop, 106 = Electronic, 152 = Jazz |
fetchDetails |
boolean | When true and entityType is track, fetches detail pages for BPM, gain, ISRC, track position, and disk number. Slower but richer data. Default: false |
maxItems |
integer | Maximum records to return. Deezer caps searches at 2000 per query. Default: 50 |
Output
Each record contains:
| Field | Description |
|---|---|
id |
Deezer entity ID |
type |
track, artist, album, or playlist |
title |
Track/album title, or artist name |
artist_id, artist_name, artist_picture |
Artist info |
album_id, album_title, album_cover |
Album info (tracks/albums) |
duration |
Track length in seconds |
isrc |
International Standard Recording Code (tracks) |
upc |
Universal Product Code / album barcode (albums) |
rank |
Deezer popularity rank |
explicit_lyrics |
Explicit content flag |
bpm |
Beats per minute (requires fetchDetails: true) |
gain |
Loudness gain in dB (requires fetchDetails: true) |
release_date |
Release date (YYYY-MM-DD) |
nb_tracks |
Track count (albums, playlists) |
nb_fan |
Artist follower count |
preview_url |
30-second preview MP3 URL |
deezer_url |
Canonical Deezer URL |
Example inputs
Search tracks by an artist:
{
"query": "radiohead",
"entityType": "track",
"maxItems": 100
}
Get album catalog with UPC join keys:
{
"query": "ok computer",
"entityType": "album",
"maxItems": 20
}
Get global top chart:
{
"entityType": "chart",
"genreId": 0,
"maxItems": 50
}
Rich track data with BPM and ISRC:
{
"query": "jazz",
"entityType": "track",
"fetchDetails": true,
"maxItems": 25
}
Rate limits
Deezer's public API allows approximately 50 requests per 5 seconds. This actor throttles to 5 requests per second (200ms delay between pages) and handles paginated results automatically. No proxy or authentication is required.
Notes
- Deezer caps search results at index 2000 — queries matching millions of tracks will be capped there
track_position,disk_number,bpm,gain, andrelease_dateare only populated on track records whenfetchDetails: true- Chart mode returns top tracks only; to get top artists or albums, search directly by genre keyword