Spotontrack API documentation
The Spotontrack API provides developers with programmatic access to music streaming analytics across multiple platforms. With our REST API, you can integrate real-time music data directly into your applications, dashboards, and tools.
Introduction
Our Spotontrack API is designed to help you integrate valuable music streaming analytics directly into your own tools and reports. We've built this API with flexibility and easy data access in mind, allowing you to harness music streaming insights across multiple platforms in the ways that best serve your specific needs.
Currently, our API focuses primarily on track-level data, providing robust analytics about chart positions, playlist inclusions, streaming counts, and more. However, we're continuously expanding our offerings, with plans to add additional endpoints covering other aspects of the music streaming ecosystem in the future.
We maintain a detailed changelog where you can stay informed about newly added features, improvements, and bug fixes. The changelog is available at the end of this documentation.
Pricing
Our API pricing structure is designed to be transparent and scalable based on your usage patterns. All pricing details are available directly in your account under the Billing section, where you can subscribe to the plan that best fits your needs, upgrade or downgrade your plan at any time, cancel your subscription when needed.
We offer multiple pricing tiers to accommodate various usage levels. Our pricing model is based on the number of unique entities for which you collect data each calendar month.
An entity represents a single trackable item such as a track, artist, or playlist. Here's how entity counting works:
- If you request current chart positions for Track X, you've used one entity.
- If you later request playlist data for the same Track X within the same calendar month, this still counts as the same entity.
- If you request playlist data for the same Track X every hour to get the latest updates, this still counts as the same entity.
- However, if you request current chart positions for Track Y, this would count as a second entity.
Entities reset at the beginning of each calendar month, giving you flexibility to manage your API usage effectively. Your entities usage for the current month is displayed in your account settings.
Authorization
All requests to the Spotontrack API require authentication using an API key, which you can generate from the API section in your user settings after subscribing to one of our API plans.
The API key should be sent as a Bearer authorization token for all requests:
Authorization: Bearer API_KEY
Store your API key securely as it provides access to your account's API quota. Never expose your key in client-side code or public repositories. If you believe your API key has been compromised, you can delete the compromised key and generate a new key from your account settings at any time.
Rate limits
The Spotontrack API implements rate limiting to ensure a consistent and reliable experience for all users.
In addition to the monthly entity limits associated with your subscription plan, there are also limits on the number of requests you can make per minute. The specific rate limit threshold varies based on your subscription tier.
If you exceed your rate limit, the API will respond with HTTP status code 429 (Too Many Requests). When this occurs, you should pause your requests and retry after the number of seconds seen in the header retry-after. The header x-ratelimit-remaining gives you the remaining requests available before hitting the rate limit.
Tracks
The tracks endpoints provide detailed analytics and information about specific tracks across multiple streaming platforms. All tracks in the Spotontrack API are identified by their ISRC (International Standard Recording Code).
For billing purposes, each unique ISRC code you query counts as one entity toward your monthly quota. Multiple requests for different data about the same track (identified by the same ISRC) within a calendar month will only count as one entity.
Track search
GET https://www.spotontrack.com/api/v1/tracks?query=XXXX
This endpoint will be useful if you do not know the isrc code of the track for which you want to fetch data.
This endpoint requires only one query param, called query. This param may contain keywords, or for more efficiency, Spotify/Apple/Deezer/Shazam links.
Requests on this endpoint do not affect your entity quota, and are only subject to the rate limits.
Example response
[
{
"name": "No Fear",
"release_date": "2025-01-31",
"artwork": "https://i.scdn.co/image/ab67616d0000b27323ce1e12cad9ed43495859fb",
"isrc": "DEY472570338"
}
]
Track metadata
GET https://www.spotontrack.com/api/v1/tracks/{isrc}
This endpoint provides some metadata about the track.
Example response
{
"name": "EVIL J0RDAN",
"release_date": "2025-03-14",
"artwork": "https://i.scdn.co/image/ab67616d0000b2734738d40fd634c7d08419b1e4",
"isrc": "USUM72414866",
"artists": [
{
"id": 39854,
"name": "Playboi Carti",
"image": "https://i.scdn.co/image/ab6761610000e5eb73d4facbd619ae025b5588c7"
}
],
"links": {
"spotify": [
"https://open.spotify.com/track/6iycYUk3oB0NPMdaDUrN1w"
],
"apple": [
"https://music.apple.com/us/album/music/1802175271"
],
"deezer": [
"https://www.deezer.com/track/3278625201"
],
"shazam": [
"https://www.shazam.com/song/1802175276"
]
}
}
Output
Field | Description |
---|---|
name | The track name. |
release_date | The earliest release date for this track on all platforms. |
artwork | Artwork of the track. In case the track is part of multiple releases with different artworks, we do our best to display the best candidate (usually the single version). |
isrc | ISRC of the track, that you can use on the track endpoints to get more data about this track. |
artists | List of artists for this track. Each artist has a name, and an image. Our internal id for the artist is also provided, which can be used on our artist endpoints to get more data about the artist. |
links | Links to the track on Spotify, Apple Music, Deezer and Shazam. If the track has been released multiple times on a platform, the list may contain more than one link. |
Spotify
Spotify stream count
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/spotify/streams
This endpoint provides stream count data for tracks on Spotify, giving you both the cumulative total streams and daily streaming activity.
Total Streams is collected directly from Spotify, representing overall stream count.
Daily Streams is computed based on differences between consecutive total counts.
Due to Spotify's update patterns, data may be identical for two consecutive days, resulting in the next daily value showing an increase over a two-day period.
The date indicates when the data was recorded (UTC). To match the day as displayed in Spotify for Artists or on Spotontrack, subtract 2 days from this timestamp.
Example response
[
{
"date": "2025-03-08",
"total": 497226101,
"daily": 4773682
},
{
"date": "2025-03-07",
"total": 492452419,
"daily": 4824812
},
{
"date": "2025-03-06",
"total": 487627607,
"daily": 9313385
},
{
"date": "2025-03-05",
"total": 478314222,
"daily": 0
},
{
"date": "2025-03-04",
"total": 478314222,
"daily": 4739320
}
]
Spotify current playlists
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/spotify/playlists/current
This endpoint lists the Spotify playlists that currently contain the track. While not real-time data, our platform provides fast playlist update detection with most important playlists checked hourly for changes, making Spotontrack one of the quickest platforms for tracking playlist additions.
Example response
[
{
"position": 1,
"added_at": "2025-01-14",
"playlist": {
"spotify_id": "3oBf7jbb5tokVOYQVGIUAg",
"name": "Latino Hits 2025 – latin reggaeton hits",
"artwork": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da8441812d472b2d0256b3ef5bea",
"followers": 99257
}
},
{
"position": 1,
"added_at": "2025-01-23",
"playlist": {
"spotify_id": "6Qg4AmYAl2G6RtTnbB3dI2",
"name": "DIRTY LATIN ",
"artwork": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da8457163fd4795069bc2c4feef1",
"followers": 3584
}
}
]
Output
Field | Description |
---|---|
position | The current position of the track in the playlist. |
added_at | Date at which the track was added to the playlist. |
playlist.spotify_id | Spotify ID of the playlist. |
playlist.name | Name of the playlist. |
playlist.artwork | Image URL of the playlist. |
playlist.followers | Total followers count of the playlist as of the last check. |
Spotify current charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/spotify/charts/current
This endpoint returns all current Spotify chart positions for the track.
Example response
[
{
"country_code": "US",
"position": 21,
"previous_position": 20,
"type": "streams",
"frequency": "daily",
"date": "2025-03-09",
"streams": 805836
},
{
"country_code": "GLOBAL",
"position": 6,
"previous_position": 6,
"type": "streams",
"frequency": "weekly",
"date": "2025-03-06",
"streams": 34165800
}
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Current position in the chart. |
previous_position | Position in the previous chart (previous day or week depending on frequency). null if the track was not in the previous chart. |
type | Type of chart: streams or viral. |
frequency | daily or weekly. Weekly charts are always on Thursdays. |
date | Date of the chart. On Day D, charts related to D-1 should be available, usually starting 2PM for stream charts and 5PM for viral charts. |
streams | For stream-type charts, the number of streams the track received during that period (day or week) in that market (country or worldwide). |
Spotify peak charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/spotify/charts/peak
This endpoint returns peak positions in the Spotify charts for the track.
Example response
[
{
"country_code": "US",
"position": 21,
"type": "streams",
"frequency": "daily",
"date": "2025-03-09",
"streams": 805836
},
{
"country_code": "GLOBAL",
"position": 6,
"type": "streams",
"frequency": "weekly",
"date": "2025-03-06",
"streams": 34165800
}
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Peak position in the chart. |
type | Type of chart: streams or viral. |
frequency | daily or weekly. Weekly charts are always on Thursdays. |
date | Date at which this peak position has been reached for the first time. |
streams | For stream-type charts, the number of streams the track received during that period (day or week) in that market (country or worldwide). |
Apple Music
Apple current playlists
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/apple/playlists/current
This endpoint lists the Apple Music playlists that currently contain the track. While not real-time data, our platform provides fast playlist update detection with most important playlists checked hourly for changes, making Spotontrack one of the quickest platforms for tracking playlist additions. As playlist content depends on the country, this endpoint returns a detailed list of countries, each one with the associated position and added date.
Example response
[
{
"playlist": {
"apple_id": "pl.63fbca98535342e48aa6220698180f11",
"name": "LATINO MIX 2025 🥵🏄 SUMMER LATINO PLAYLIST / REGGAETON HITS ÉTÉ 2025",
"artwork": "https://is1-ssl.mzstatic.com/image/thumb/hgajkYdqzECeBChUbL02tQ/500x500bb.jpg"
},
"countries": [
{
"added_at": "2025-02-07",
"position": 15,
"country_code": "US"
},
{
"added_at": "2025-02-07",
"position": 14,
"country_code": "DZ"
}
]
}
]
Output
Field | Description |
---|---|
playlist.apple_id | Apple Music ID of the playlist. |
playlist.name | Name of the playlist. |
playlist.artwork | Image URL of the playlist. |
countries | List of countries for which the track appears in the playlist. For each country object, the position is the current position in the playlist, and added_at is the date at which the track was added to the playlist. |
Apple current charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/apple/charts/current
This endpoint returns all current Apple Music chart positions for the track.
Example response
[
{
"country_code": "US",
"position": 66,
"previous_position": 67,
"genre": "All genres",
"date": "2025-03-17"
},
{
"country_code": "EC",
"position": 12,
"previous_position": 56,
"genre": "Dance",
"date": "2025-03-17"
},
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. |
position | Current position in the chart. |
previous_position | Position in the previous chart. null if the track was not in the previous chart. |
genre | Genre of the chart. The value is "All genres" for the main chart. |
date | Date of the chart. |
Apple peak charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/apple/charts/peak
This endpoint returns peak positions in the Apple music charts for the track.
Example response
[
{
"country_code": "US",
"position": 66,
"genre": "All genres",
"date": "2025-03-17"
},
{
"country_code": "EC",
"position": 12,
"genre": "Dance",
"date": "2025-03-17"
},
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. |
position | Peak position in the chart. |
genre | Genre of the chart. The value is "All genres" for the main chart. |
date | Date at which this peak position has been reached for the first time. |
Deezer
Deezer current playlists
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/deezer/playlists/current
This endpoint lists the Deezer playlists that currently contain the track. While not real-time data, our platform provides fast playlist update detection with most important playlists checked hourly for changes, making Spotontrack one of the quickest platforms for tracking playlist additions.
Example response
[
{
"position": 1,
"added_at": "2025-01-10",
"playlist": {
"deezer_id": "1362512715",
"name": "Top Morocco",
"artwork": "https://cdn-images.dzcdn.net/images/playlist/cc44527968861072c527fea000c5a068/500x500-000000-80-0-0.jpg",
"followers": 124067
}
},
{
"position": 1,
"added_at": "2025-01-21",
"playlist": {
"deezer_id": "3803398766",
"name": "Chill Reggaeton",
"artwork": "https://cdn-images.dzcdn.net/images/playlist/1e4966b5abd8ba3b5ba3f2c07cf9e0ce/500x500-000000-80-0-0.jpg",
"followers": 222177
}
}
]
Output
Field | Description |
---|---|
position | The current position of the track in the playlist. |
added_at | Date at which the track was added to the playlist. |
playlist.deezer_id | Deezer ID of the playlist. |
playlist.name | Name of the playlist. |
playlist.artwork | Image URL of the playlist. |
playlist.followers | Total followers count of the playlist as of the last check. |
Deezer current charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/deezer/charts/current
This endpoint returns all current Deezer chart positions for the track.
Example response
[
{
"country_code": "CL",
"position": 2,
"previous_position": 5,
"date": "2025-03-17"
},
{
"country_code": "GLOBAL",
"position": 2,
"previous_position": 2,
"date": "2025-03-17"
}
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Current position in the chart. |
previous_position | Position in the previous chart. null if the track was not in the previous chart. |
date | Date of the chart. |
Deezer peak charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/deezer/charts/peak
This endpoint returns peak positions in the Deezer charts for the track.
Example response
[
{
"country_code": "GLOBAL",
"position": 1,
"date": "2025-01-12"
},
{
"country_code": "BO",
"position": 1,
"date": "2025-01-10"
},
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Peak position in the chart. |
date | Date at which this peak position has been reached for the first time. |
Playlists
The playlists endpoints provide detailed analytics and information about specific playlists across multiple streaming platforms.
For billing purposes, each unique playlist ID you query counts as one entity toward your monthly quota. Multiple requests for different data about the same playlist (identified by the same ID) within a calendar month will only count as one entity.
Shazams count
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/shazam/shazams
This endpoint provides the shazam count data for tracks on Shazam, giving you both the cumulative total shazams and daily shazams activity.
The shazams total count is recorded once a day for each track, but the exact timing will vary for each track.
Daily checks for a specific track are done at the same time every day, to make sure the computed daily value makes sense.
Example response
[
{
"date": "2025-03-16",
"total": 2133207,
"daily": 15616
},
{
"date": "2025-03-15",
"total": 2117591,
"daily": 16755
},
{
"date": "2025-03-14",
"total": 2100836,
"daily": null
},
]
Shazam current charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/shazam/charts/current
This endpoint returns all current Shazam chart positions for the track.
Example response
[
{
"country_code": "PT",
"type": "shazams",
"position": 4,
"previous_position": 4,
"date": "2025-03-17",
"genre": null,
"city": "Lisbon"
},
{
"country_code": "PT",
"type": "shazams",
"position": 5,
"previous_position": 5,
"date": "2025-03-17",
"genre": null,
"city": null
},
{
"country_code": "GLOBAL",
"type": "shazams",
"position": 5,
"previous_position": 2,
"date": "2025-03-17",
"genre": "Latin",
"city": null
}
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Current position in the chart. |
previous_position | Position in the previous chart (previous day or week depending on frequency). null if the track was not in the previous chart. |
type | Type of chart: shazams or discovery. |
date | Date of the chart. |
genre | Genre of the chart if applicable, null otherwise. |
city | City of the chart if applicable, null otherwise. |
Shazam peak charts
GET https://www.spotontrack.com/api/v1/tracks/{isrc}/shazam/charts/peak
This endpoint returns peak positions in the Shazam charts for the track.
Example response
[
{
"country_code": "AR",
"type": "shazams",
"position": 1,
"date": "2025-01-14",
"genre": null,
"city": null
},
{
"country_code": "BR",
"type": "discovery",
"position": 1,
"date": "2025-02-11",
"genre": null,
"city": null
}
]
Output
Field | Description |
---|---|
country_code | 2-letter code of the country to which the chart is related. "GLOBAL" for global/worldwide charts. |
position | Peak position in the chart. |
type | Type of chart: shazams or discovery. |
date | Date at which this peak position has been reached for the first time. |
genre | Genre of the chart if applicable, null otherwise. |
city | City of the chart if applicable, null otherwise. |
Shazam
Spotify
Spotify playlist followers
GET https://www.spotontrack.com/api/v1/playists/spotify/{spotify_id}/followers
The endpoint returns all available historical followers data for the playlist, with a maximum of one datapoint per day. Data availability varies based on playlist size: larger, more popular playlists typically have daily datapoints while smaller playlists may have less frequent data collection. There may be occasional gaps in the data where datapoints are missing.
Example response
[
{
"date": "2017-03-28",
"followers": 195056
},
{
"date": "2017-03-29",
"followers": 195077
}
]
Changelog
2025-03-17
- Added track search endpoint
- Added track metadata endpoint
- Added track metadata endpoint
- Added spotify stream count endpoint
- Added spotify current charts endpoint
- Added spotify peak charts endpoint
- Added spotify current playlists endpoint
- Added apple current charts endpoint
- Added apple peak charts endpoint
- Added apple current playlists endpoint
- Added deezer current charts endpoint
- Added deezer peak charts endpoint
- Added deezer current playlists endpoint
- Added shazam count endpoint
- Added shazam current charts endpoint
- Added shazam peak charts endpoint
- Added spotify playlist followers endpoint