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