ガイド

Spotify再生回数API:IDまたはISRCで任意の曲の累計再生回数を取得

Spotify Web APIは、曲が何回再生されたかを返しません。最も近いのは人気度(popularity)で、これは0〜100のスコアです。Spotify自身のリファレンスでは、主に総再生回数に基づくと説明され、非推奨とされています。これらのエンドポイントは、再生回数そのものを返します。SpotifyのIDまたはISRCで1曲、または最大50曲を1回の呼び出しで取得できます。

Eduardo Airaudo(APIのメンテナー)・2026年10月22日更新

公式のトラックオブジェクトにないもの

Spotify Web APIのGET /v1/tracks/{id}は、アルバム、アーティスト、duration_ms、explicit、external_ids、名前、popularityなどを返します。再生回数を数えるものは一つもありません。最も近いのは人気度(popularity)で、Spotifyのリファレンスでは0〜100の値で、主に曲の再生回数とその新しさから計算されると説明され、非推奨とされています。2026年2月のSpotifyの変更により、2026年2月11日以降に作成された開発モードのアプリでは削除されました。

スコアは、回数の代わりにはなりません。相対的な値のため、アルバムやカタログ全体で合計できず、最近の再生を優遇します。同じリファレンスにも、今よく再生されている曲は、過去によく再生された曲よりスコアが高くなると書かれています。そのため、その曲がこれまでに何回再生されたかは分かりません。

仕様書の表現では、このAPIのPartnerグループは「Spotify's internal (pathfinder) data, including play counts」です。 /partner/track/countは1曲の累計再生回数を、/partner/tracks/countは最大50曲の累計再生回数をまとめて返し、/partner/trackは曲の完全なレコードの中にそれを含めて返します。

返ってくるもの

仕様書のレスポンススキーマの定義に沿って、フィールドごとに説明します。1曲の呼び出しでは再生回数をstreamsと呼び、一括の呼び出しではplaycountと呼びます。

1曲

GET /partner/track/count

streams
累計再生回数(整数、int64)。仕様上はnull許容で、再生回数が1,000回未満の曲では0です。
spotify_track_id
曲のSpotify ID。
isrc
曲のISRC。仕様上はnull許容です。
result
successまたはerror。短いmessageが付きます。

一括

GET /partner/tracks/count

tracks[]
リクエストしたIDごとに1件、リクエストした順に並びます。
tracks[].playcount
累計再生回数(int64、null許容)。1,000回未満の曲は0。
tracks[].status
ok、not_found、errorのいずれかで、errorの場合はerrorのテキストが付きます。
tracks[].name
曲の名前。見つからなかった場合はnull。
tracks[].artists[]
各アーティストのidとname。
tracks[].releaseDate
曲のアルバムのリリース日。YYYY-MM-DD形式、またはそれより粗い精度。
missing[]
okではないステータスのリクエスト済みID。

0は「1,000回未満」を意味し、一度も再生されていないという意味ではありません。 仕様書によると、Spotifyは再生回数が1,000回未満の曲には0を報告します。0は回数としてではなく、「1,000未満」として保存してください。

記録済みサンプル・2026-10-22に取得

GET /partner/track/count

6行:記録済みの本文のすべてです。

記録済みサンプル・2026-10-22に取得

GET /partner/tracks/count

18行:記録済みの本文のすべてです。

1曲、または1回の呼び出しで50曲

  • GET /partner/track/countTrack play count

    Lifetime play count of one track, by Spotify id (spotify_track_id, or its alias id) or by isrc. Spotify reports 0 for tracks with fewer than 1,000 plays. Play counts are cached for 1 hour; for many tracks use /partner/tracks/count.

    パラメータspotify_track_id, id, isrc, cache

  • GET /partner/tracks/countTrack play counts (batch)

    Lifetime play counts for up to 50 tracks in one call. Entries come back in request order with status ok, not_found or error; ids without a play count are also listed in missing. Each id is cached for 1 hour.

    パラメータids, cache

  • GET /partner/trackPartner track data

    Track with its play count (data.trackUnion.playcount), album, artists and content ratings. Add slim=1 to keep only {id, uri, profile.name, visuals.avatarImage} of each artist (the full payload embeds the first artist's discography and is ~100 KB).

    パラメータid, slim, cache

/partner/tracks/countは最大50件のカンマ区切りのIDを受け取り、送った順に返します。そのため、50曲分が50リクエストではなく1リクエストで済みます。

再生回数を取得する

1曲をSpotify IDで

IDは、SpotifyのURLの/track/の後に続く22文字の文字列です。ISRCで曲を検索するには、id=の代わりにisrc=を送ります。

1回の呼び出しで最大50曲

再生回数より先に、各エントリのstatusを確認してください。エントリはIDの順に返ります。再生回数がないものは、代わりにnot_foundまたはerrorと表示され、missingにも再度記載されます。

コードなしで再生回数を取得

再生回数をご自身のコードではなくスプレッドシートで使う場合は、同じメンテナーによる2つのApify Actorが、データセットとして返します。実行にはApifyのアカウントが必要で、APIキーは不要です。リンクを貼り付けて、JSONまたはCSVをダウンロードします。

どちらも結果ごとの課金です。時点の価格は、Apifyの無料プランで1行あたり$0.001、Gold以上では$0.0006まで下がります。実行がキーより有利になる場合とならない場合については、スクレイパーのガイドをご覧ください。

すでに蓄積されている履歴: spotify-most-streamed-songs (opens in a new tab) on GitHub has daily play counts and daily streams for 1,000 of the most-streamed songs, as CSV and JSON history.

AIアシスタント(MCP)から使う:ClaudeやCursor、VS Codeで曲のストリーム数を尋ねると、Spotify MCPサーバーのget_track_play_countツールが、このAPIから累計再生回数を返します。MCPサーバーをセットアップする。

よくある質問

Spotify Web APIは再生回数を返しますか?

いいえ。Web APIリファレンスのトラックオブジェクトには、再生回数のフィールドがありません。最も近いフィールドである人気度(popularity)は、主に総再生回数とその新しさからSpotifyが計算する0〜100のスコアで、リファレンスでは非推奨とされています。2026年2月のSpotifyの変更により、2026年2月11日以降に作成された開発モードのアプリでは削除されました。

再生回数が0と表示される曲があるのはなぜですか?

1,000回未満だからです。仕様書によると、Spotifyは再生回数が1,000回未満の曲には0を報告するため、0は「1,000回未満」を意味し、一度も再生されていないという意味ではありません。

多数の曲の再生回数を一度に取得できますか?

はい。GET /partner/tracks/countは最大50件のカンマ区切りの曲IDを受け取り、リクエストした順に返します。各エントリのステータスはok、not_found、errorのいずれかで、再生回数のないIDはmissingにも記載されます。50曲分が50リクエストではなく1リクエストで済みます。

ISRCで曲を検索できますか?

はい。GET /partner/track/countは、Spotify IDの代わりにisrcを受け取るため、ISRCで管理しているカタログでも、先にIDを調べる必要はありません。

数値はどのくらい最新ですか?

再生回数は1時間キャッシュされるため、通常、数値の古さは最大でもその程度です。X-Cacheの値がSTALEまたはFALLBACKで始まる場合、ライブの取得が遅い、または失敗したため、古いコピーを返したことを意味します。X-Cache-Stale-Ageはその経過秒数を示します。新しい値を取得するにはcache=falseを付けます。このサイトの「実行」ボタンはデモ独自のキャッシュも経由するため、そこに表示される数値はより古い場合があります。

コードを書かずに再生回数を取得できますか?

はい、Apifyで可能です。実行にはApifyのアカウントが必要で、APIキーは不要です。Spotify Play Count Scraper(eduair94/spotify-play-count-scraper)は、曲、アルバム、アーティスト、プレイリストのリンクを受け取り、曲ごとに1行、再生回数付きで返します。Spotify Scraper(eduair94/spotify-scraper)には、61のカテゴリのうち5が再生回数のカテゴリです。どちらも結果ごとの課金です。

どのプランが必要ですか?

どれでも構いません。再生回数の2つのエンドポイントは、RapidAPIもダイレクトポータルも、すべてのプランに含まれ、プランの違いは月間リクエスト数です。RapidAPIはどのプランも毎秒5リクエスト、ダイレクトキーには毎秒10リクエストが含まれます。RapidAPIの無料プランは月1,000リクエストまでです。

出典

What changed in the API and on these pages, and when: What's new.

キーを取得して、最初の再生回数を取得

再生回数の2つのエンドポイントは、RapidAPIもダイレクトポータルも、すべてのプランに含まれます。Apifyでは、上記の2つのActorが、同じ再生回数をデータセットの行として返し、結果ごとに課金されます。RapidAPIの無料枠は月1,000リクエストで、1回の呼び出しで最大50曲なら、最大50,000件の再生回数を取得できます。

購入前に試したい方へ。無料トライアルキーを取得:7日間で500リクエスト、カード不要。