API REFERENCE
Track Stats
On this page
/api/research/track/statsGet the current Spotify play count for one recording by ISRC, served from the Apify-backed measurement store. A fresh capture is returned as-is; a stale or missing one triggers a refresh of the recording's album through the Spotify play-count actor before responding.
Authentication
See the authentication guide for API key and account access requirements.
Request
curl --request GET \
--url 'https://api.recoupable.dev/api/research/track/stats?isrc=USQY51771120' \
--header 'x-api-key: YOUR_API_KEY'Replace the YOUR_ placeholders with your values. Required query parameters are included; optional parameters are listed below.
Parameters
Query parameters
isrcstringrequiredTrack ISRC. The recording must have a Spotify album mapping in the measurement store (created by a current measurement job or a catalog snapshot).
sourcestring · enumOnly spotify is supported; defaults to spotify.
Values: "spotify"
Default: "spotify"
Responses
200The recording's current Spotify play count from the measurement store.+
application/json
statusstringresultstringstatsarray<ResearchTrackStat>Item properties for stats
sourcestringPlatform the stats belong to — spotify.
dataobjectPer-source counters for this track. streams_total is the platform-displayed play count from the measurement store, not a royalty-bearing stream count.
data_sourcestringProvenance of the numbers: apify_spotify_playcount (platform-displayed count from the measurement store) or granted_analytics (customer-granted data).
captured_atstringWhen this entry's values were captured into the measurement store.
format: date-time
Additional properties
Additional keys are allowed.
400Validation error — isrc missing, or source is not spotify.+
application/json
statusstring · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
401Authentication failed — invalid or missing API key.+
application/json
statusstring · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
402Insufficient research credits — the body includes a static billingUrl. No Stripe object is created.+
application/json
errorstring · enumrequiredValues: "insufficient_credits"
remaining_creditsintegerrequiredrequired_creditsintegerrequiredbillingUrlstringrequiredStatic link to the Recoup app, where a human can save a card and buy credits. It is a constant, not a freshly minted Stripe Checkout Session, so a credit-gated endpoint that keeps returning 402 creates nothing. To buy credits programmatically, call POST /api/credits/sessions.
404Nothing stored for this ISRC and no Spotify album mapping to refresh from — create a current measurement job for it first.+
application/json
statusstring · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download research.jsonView operation source
{
"description": "Get the current Spotify play count for one recording by ISRC, served from the Apify-backed measurement store. A fresh capture is returned as-is; a stale or missing one triggers a refresh of the recording's album through the Spotify play-count actor before responding.",
"parameters": [
{
"name": "isrc",
"in": "query",
"required": true,
"description": "Track ISRC. The recording must have a Spotify album mapping in the measurement store (created by a `current` measurement job or a catalog snapshot).",
"schema": {
"type": "string",
"example": "USQY51771120"
}
},
{
"name": "source",
"in": "query",
"required": false,
"description": "Only `spotify` is supported; defaults to `spotify`.",
"schema": {
"type": "string",
"enum": [
"spotify"
],
"default": "spotify"
}
}
],
"responses": {
"200": {
"description": "The recording's current Spotify play count from the measurement store.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResearchTrackStatsResponse"
}
}
}
},
"400": {
"description": "Validation error — `isrc` missing, or `source` is not `spotify`.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResearchErrorResponse"
}
}
}
},
"401": {
"description": "Authentication failed — invalid or missing API key.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResearchErrorResponse"
}
}
}
},
"402": {
"description": "Insufficient research credits — the body includes a static `billingUrl`. No Stripe object is created.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResearchInsufficientCreditsResponse"
}
}
}
},
"404": {
"description": "Nothing stored for this ISRC and no Spotify album mapping to refresh from — create a `current` measurement job for it first.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResearchErrorResponse"
}
}
}
}
}
}