curl --request GET \
--url https://api.recoupable.com/api/research/track/statsimport requests
url = "https://api.recoupable.com/api/research/track/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.recoupable.com/api/research/track/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.recoupable.com/api/research/track/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.recoupable.com/api/research/track/stats"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.recoupable.com/api/research/track/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.com/api/research/track/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "success",
"result": "success",
"message": "Data Retrieved.",
"stats": [
{
"source": "<string>",
"data": {
"streams_total": 84213771,
"popularity_current": 64,
"playlists_current": 1200,
"playlists_total": 4830,
"playlist_reach_current": 18450201,
"playlist_reach_total": 51200988,
"charts_current": 3,
"charts_total": 41,
"shazams_total": 220145,
"charted_cities_total": 87,
"charted_countries_total": 23,
"favorites_total": 0,
"reposts_total": 0,
"engagement_rate_total": 0,
"playlists_editorial_current": 12,
"playlists_editorial_total": 58
},
"data_source": "apify_spotify_playcount",
"captured_at": "2023-11-07T05:31:56Z"
}
],
"track_info": {
"songstats_track_id": "<string>",
"title": "<string>",
"avatar": "<string>",
"site_url": "<string>",
"release_date": "<string>",
"artists": [
{
"name": "<string>"
}
],
"is_remix": true,
"collaborators": [
{
"name": "<string>",
"roles": [
"<string>"
]
}
],
"labels": [
{}
],
"distributors": [
{
"name": "<string>"
}
],
"genres": [
"<string>"
],
"links": [
{
"source": "<string>",
"external_id": "<string>",
"url": "<string>",
"isrc": "<string>"
}
]
},
"source_ids": [
"<string>"
]
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"error": "insufficient_credits",
"remaining_credits": 0,
"required_credits": 5,
"checkoutUrl": "<string>",
"declineReason": "<string>"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}Track Stats
Get per-track, per-source current stats by ISRC or track id — absolute streams_total, playlist reach, and chart counts.
curl --request GET \
--url https://api.recoupable.com/api/research/track/statsimport requests
url = "https://api.recoupable.com/api/research/track/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.recoupable.com/api/research/track/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.recoupable.com/api/research/track/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.recoupable.com/api/research/track/stats"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.recoupable.com/api/research/track/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.com/api/research/track/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "success",
"result": "success",
"message": "Data Retrieved.",
"stats": [
{
"source": "<string>",
"data": {
"streams_total": 84213771,
"popularity_current": 64,
"playlists_current": 1200,
"playlists_total": 4830,
"playlist_reach_current": 18450201,
"playlist_reach_total": 51200988,
"charts_current": 3,
"charts_total": 41,
"shazams_total": 220145,
"charted_cities_total": 87,
"charted_countries_total": 23,
"favorites_total": 0,
"reposts_total": 0,
"engagement_rate_total": 0,
"playlists_editorial_current": 12,
"playlists_editorial_total": 58
},
"data_source": "apify_spotify_playcount",
"captured_at": "2023-11-07T05:31:56Z"
}
],
"track_info": {
"songstats_track_id": "<string>",
"title": "<string>",
"avatar": "<string>",
"site_url": "<string>",
"release_date": "<string>",
"artists": [
{
"name": "<string>"
}
],
"is_remix": true,
"collaborators": [
{
"name": "<string>",
"roles": [
"<string>"
]
}
],
"labels": [
{}
],
"distributors": [
{
"name": "<string>"
}
],
"genres": [
"<string>"
],
"links": [
{
"source": "<string>",
"external_id": "<string>",
"url": "<string>",
"isrc": "<string>"
}
]
},
"source_ids": [
"<string>"
]
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"error": "insufficient_credits",
"remaining_credits": 0,
"required_credits": 5,
"checkoutUrl": "<string>",
"declineReason": "<string>"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}Query Parameters
Track ISRC. Provide exactly one track identifier.
"USQY51771120"
Songstats track id (from GET /api/research/tracks).
Spotify track id.
Apple Music track id.
Comma-separated list of sources, or all. e.g. spotify, apple_music, deezer, youtube.
"spotify"
Include the per-source playlists[] array in data.
Include the per-source charts[] array in data.
Include radio stations[] data where available.
Include video data where available.
Include external links where available.
Return only current counters, omitting historical/total breakdowns where applicable.
Max items in toggled arrays (e.g. playlists[]).
Pagination offset for toggled arrays.
Response
Per-track current stats, one entry per requested source.
Per-track current statistics for the requested source(s). Mirrors ResearchMetricsResponse, scoped to a single recording. When every requested source is store-served, the response is the minimal envelope { result, stats } — track_info, source_ids, and message appear only when Songstats served part of the request.
"success"
"success"
"Data Retrieved."
Show child attributes
Show child attributes
Full track record.
Show child attributes
Show child attributes
All source identifiers Songstats tracks for this recording — a superset of the sources returned in stats.
Was this page helpful?
