GET /analytics/leaderboards

Top artists, tracks or albums by streams

type=artists|tracks|albums returns one list; type=all returns all three ({artists, tracks, albums}) built in ONE request and cached as ONE entry, so the set cannot be stitched from different cache epochs. Rows are ordered by summed streams descending with a deterministic name tiebreak. limit defaults to 10 and may not exceed 50.

filter[release_id], filter[isrc], filter[upc] and filter[artist_names][] narrow the ranking to that entity's tracks, so type=tracks scoped to a release ranks that release's tracks — by name, so recordings sharing a title and artist combine into one row. For an exact per-ISRC breakdown call GET /analytics/summary with metrics[]=track-streams-daily or metrics[]=track-listeners-daily.

Track rows carry isrc, the recording the row's streams belong to. It is returned whenever the row is one recording beyond doubt — including when the same recording is reported by several platforms under a different identifier on each, which is the usual case for a track available on more than one service. isrc and identifier answer different questions: identifier is the one platform track id when the row has exactly one, while isrc is the recording when the whole row is one recording. A row carrying an isrc with a null identifier is normal.

isrc is null on unfiltered reads, on rows narrowed by filter[artist_names][] alone, and on any row that cannot be shown to be a single recording — for example a title and artist shared by two different recordings. A null means the row cannot be attributed to one ISRC, never that the recording has none; use the per-ISRC summary metrics above when every row must carry one. Both identifier and isrc are null on a row whose platform track ids cannot be established for the requested window, so read each as optional rather than as a property of the recording.

Parameters

Responses