Songstats
Songstats music analytics: an artist's profile, cross-platform totals and followers by platform, the per-platform stats its public artist page shows (Spotify, Apple Music, YouTube, TikTok, Instagram and more), and artist search.
Call these actions with your String API key; see Authentication. Every call answers with the envelope described in Responses & errors, whose data holds the rows below.
- Site:
songstats - Version:
1.0.0 - Reads from:
songstats.com
| Action | Description | Listed price |
|---|---|---|
artist | Read artists' Songstats profiles: name, role, image, bio, country, genres, the platform profiles Songstats links, the overview's cross-platform totals (followers, streams, playlists, playlist reach, charts, Shazams, videos, views, DJ supports) and exact followers on each platform. Give Songstats artist ids or songstats.com/artist URLs; the search action finds an id by name. | Billed per request at your plan's rates |
platform-stats | Read the stat cards an artist's Songstats page shows for each platform: Spotify monthly listeners, followers, popularity, artist rank, playlists and playlist reach; Apple Music, Amazon, Deezer and Tidal playlists and charts; YouTube subscribers and views; TikTok and Instagram followers, videos, views and likes; Shazams; SoundCloud streams; DJ supports; and more. One row per card. Cards Songstats keeps for subscribers come back locked, and some platforms show only a floor such as 20M+. | Billed per request at your plan's rates |
search | Search Songstats for artists by name, as the site's search box does, and get each one's Songstats id, page URL, image and whether Songstats verified it. Several artists can share a name; the first is usually the best known. | Billed per request at your plan's rates |
artist
Read artists' Songstats profiles: name, role, image, bio, country, genres, the platform profiles Songstats links, the overview's cross-platform totals (followers, streams, playlists, playlist reach, charts, Shazams, videos, views, DJ supports) and exact followers on each platform. Give Songstats artist ids or songstats.com/artist URLs; the search action finds an id by name.
POST https://request.usestring.ai/v1/integrations/songstats/artistInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
items | string[] | Required. The artists: each a Songstats artist id, such as bo0jhy57, or a songstats.com/artist/<id>/<name> URL. 1 to 300 entries. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
id | string | The Songstats artist id. |
url | string | The artist's songstats.com page. |
name | string | null | — |
role | string | null | The profile's primary role, such as Artist. |
imageUrl | string | null | — |
bio | string | null | — |
countryCode | string | null | The artist's country, as a lowercase ISO 3166 code. |
country | string | null | The artist's country, as Songstats names it. |
genres | string[] | — |
links | object[] | The platform profiles Songstats tracks for the artist. |
links[].platform | string | Songstats' id for the platform, such as spotify, apple_music or youtube. |
links[].url | string | The artist's profile on that platform. |
links[].name | string | null | The artist's name on that platform. |
totals | object[] | Cross-platform figures: followers, streams, playlists, playlist reach, charts, Shazams, videos, views and DJ supports, as the page shows them. |
totals[].stat | string | The figure's name, such as Followers, Streams or Playlist Reach. |
totals[].statType | string | null | Songstats' key for the figure, such as followers_total. |
totals[].value | string | The figure as the page shows it, rounded, such as 124M. |
totals[].number | number | null | value read as a number, such as 124000000; null when it is not a number. |
totals[].platforms | string[] | null | The platforms the figure sums, by Songstats' platform id. |
followersByPlatform | object[] | Exact follower or subscriber counts per platform, from the page's follower breakdown. |
followersByPlatform[].platform | string | Songstats' id for the platform, such as spotify. |
followersByPlatform[].platformName | string | null | The platform's display name, such as Amazon Music. |
followersByPlatform[].followers | integer | Followers or subscribers on that platform. |
Example
curl https://request.usestring.ai/v1/integrations/songstats/artist \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": ["https://songstats.com/artist/bo0jhy57/50-cent"]
}'data starts with these rows:
[
{
"id": "bo0jhy57",
"url": "https://songstats.com/artist/bo0jhy57/50-cent",
"name": "50 Cent",
"role": "Artist",
"imageUrl": "https://i.scdn.co/image/f90b7e399448cc2ef0c953ae6d00712ce0b61842",
"bio": "In 2003, hip-hop was in transition; it had become glossy and needed an antagonist—that's where Curtis \"50 Cent\" Jackson came in. The icons who built the genre in the 1980s and ‘90s had moved on or—in…",
"countryCode": "us",
"country": "USA",
"genres": ["Hip Hop", "Pop Rap", "Rap", "Trap", "Gangster Rap"],
"links": [
{
"platform": "spotify",
"url": "https://open.spotify.com/artist/3q7HBObVc0L8jNeTe5Gofh",
"name": "50 Cent"
},
{
"platform": "beatport",
"url": "https://www.beatport.com/artist/50-cent/50457",
"name": "50 Cent"
},
{
"platform": "traxsource",
"url": "https://www.traxsource.com/artist/7911/50-cent",
"name": "50 cent"
},
{
"platform": "apple_music",
"url": "https://music.apple.com/us/artist/50-cent/112058",
"name": "50 Cent"
},
{
"platform": "shazam",
"url": "https://shazam.com/artist/50-cent/112058",
"name": "50 Cent"
},
{
"platform": "deezer",
"url": "https://deezer.com/us/artist/66",
"name": "50 Cent"
},
{
"platform": "amazon",
"url": "https://music.amazon.com/artists/B000QJO3TY?ref=dm_ff_tracklists",
"name": "50 Cent"
},
{
"platform": "tidal",
"url": "https://listen.tidal.com/artist/17548/",
"name": "50 Cent"
},
{
"platform": "tracklist",
"url": "https://1001.tl/tmfczn",
"name": "50 Cent"
},
{
"platform": "soundcloud",
"url": "https://soundcloud.com/50_cent",
"name": "50 Cent"
},
{
"platform": "youtube",
"url": "https://youtube.com/channel/UC8zJedg1f4sKnyuHWeS6vyw",
"name": "50 Cent"
},
{
"platform": "tiktok",
"url": "https://www.tiktok.com/@50cent/",
"name": "50 Cent"
},
{
"platform": "instagram",
"url": "https://www.instagram.com/50cent",
"name": "50 Cent"
},
{
"platform": "twitter",
"url": "https://x.com/50cent",
"name": "50cent"
},
{
"platform": "bandsintown",
"url": "https://www.bandsintown.com/a/30?came_from=706&app_id=d8e393be8ba69d17212c1d9744a43682",
"name": "50 Cent"
},
{
"platform": "songkick",
"url": "https://www.songkick.com/artists/407361",
"name": "50 Cent"
},
{
"platform": "musicbrainz",
"url": "https://musicbrainz.org/artist/8e68819d-71be-4e7d-b41d-f1df81b01d3f",
"name": "50 Cent"
},
{
"platform": "anghami",
"url": "https://play.anghami.com/artist/10814",
"name": "50 Cent"
}
],
"totals": [
{
"stat": "Followers",
"statType": "followers_total",
"value": "124M",
"number": 124000000,
"platforms": ["spotify", "amazon", "anghami", "deezer", "instagram", "tiktok", "youtube", "twitter", "tidal", "soundcloud", "songkick", "bandsintown"]
},
{
"stat": "Streams",
"statType": "streams_total",
"value": "40.5B",
"number": 40500000000,
"platforms": ["spotify", "anghami", "youtube", "soundcloud"]
},
{
"stat": "Playlists",
"statType": "playlists_total",
"value": "97.2K",
"number": 97200,
"platforms": ["spotify", "apple_music", "amazon", "deezer", "youtube", "tidal", "soundcloud"]
},
{
"stat": "Playlist Reach",
"statType": "playlist_reach_total",
"value": "727M",
"number": 727000000,
"platforms": ["spotify", "deezer", "tidal", "soundcloud"]
},
{
"stat": "Charts",
"statType": "charts_total",
"value": "3832",
"number": 3832,
"platforms": ["spotify", "apple_music", "amazon", "anghami", "deezer", "tiktok", "youtube", "shazam", "beatport", "traxsource", "itunes", "tidal", "soundcloud"]
},
{
"stat": "Shazams",
"statType": "shazams_total",
"value": "131M",
"number": 131000000,
"platforms": ["shazam"]
},
{
"stat": "Videos",
"statType": "videos_total",
"value": "13.4M",
"number": 13400000,
"platforms": ["instagram", "tiktok", "youtube"]
},
{
"stat": "Views",
"statType": "views_total",
"value": "30.1B",
"number": 30100000000,
"platforms": ["instagram", "tiktok", "youtube"]
},
{
"stat": "DJ Supports",
"statType": "dj_supports_total",
"value": "2630",
"number": 2630,
"platforms": ["beatport", "traxsource", "tracklist"]
}
],
"followersByPlatform": [
{
"platform": "spotify",
"platformName": "Spotify",
"followers": 22304004
},
{
"platform": "amazon",
"platformName": "Amazon Music",
"followers": 1119429
},
{
"platform": "anghami",
"platformName": "Anghami",
"followers": 993773
},
{
"platform": "deezer",
"platformName": "Deezer",
"followers": 7885792
},
{
"platform": "instagram",
"platformName": "Instagram",
"followers": 38719140
},
{
"platform": "tiktok",
"platformName": "TikTok",
"followers": 9494114
},
{
"platform": "youtube",
"platformName": "YouTube",
"followers": 23174600
},
{
"platform": "twitter",
"platformName": "𝕏",
"followers": 12480595
},
{
"platform": "tidal",
"platformName": "TIDAL",
"followers": 1101986
},
{
"platform": "soundcloud",
"platformName": "SoundCloud",
"followers": 2159766
},
{
"platform": "songkick",
"platformName": "Songkick",
"followers": 1812739
},
{
"platform": "bandsintown",
"platformName": "Bandsintown",
"followers": 2949339
}
]
}
]Requests and billing
- Requests: 2 Web Access requests per entry in
items. - Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
platform-stats
Read the stat cards an artist's Songstats page shows for each platform: Spotify monthly listeners, followers, popularity, artist rank, playlists and playlist reach; Apple Music, Amazon, Deezer and Tidal playlists and charts; YouTube subscribers and views; TikTok and Instagram followers, videos, views and likes; Shazams; SoundCloud streams; DJ supports; and more. One row per card. Cards Songstats keeps for subscribers come back locked, and some platforms show only a floor such as 20M+.
POST https://request.usestring.ai/v1/integrations/songstats/platform-statsInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
items | string[] | Required. The artists: each a Songstats artist id, such as bo0jhy57, or a songstats.com/artist/<id>/<name> URL. 1 to 300 entries. |
platforms | spotify apple_music amazon deezer youtube tiktok instagram shazam soundcloud tidal beatport traxsource tracklist[] | null | The platforms to read, by Songstats' platform id. Omitted, every platform is read. Each artist and platform is one request. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
artistId | string | The Songstats artist id. |
platform | string | Songstats' id for the platform, such as spotify. |
stat | string | The card's name, such as Monthly Listeners, Followers or Playlist Reach. |
scope | string | null | What the figure covers, as the card labels it: current, total, global or average. Null on a locked card. |
value | string | null | The figure as the page shows it, such as 44.8M, 86%, #91 or 20M+. Null on a locked card. |
number | number | null | value read as a number, such as 44800000; null when locked or not a number. |
lowerBound | boolean | The page shows the figure only as a floor, such as 20M+, rather than its value. |
locked | boolean | The figure is for paying Songstats subscribers and the page masks it. |
statType | string | null | Songstats' key for the figure, such as spotify_monthly_listeners_current, where the page names one. |
description | string | null | The card's explanation of the figure. |
Example
curl https://request.usestring.ai/v1/integrations/songstats/platform-stats \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": ["bo0jhy57"],
"platforms": ["spotify", "youtube", "tiktok"]
}'data starts with these rows:
[
{
"artistId": "bo0jhy57",
"platform": "spotify",
"stat": "Playlists",
"scope": "current",
"value": "65.2K",
"number": 65200,
"lowerBound": false,
"locked": false,
"statType": null,
"description": "The number of distinct Spotify playlists with 200+ followers your music was in on a given date."
},
{
"artistId": "bo0jhy57",
"platform": "spotify",
"stat": "Playlist Reach",
"scope": "current",
"value": "293M",
"number": 293000000,
"lowerBound": false,
"locked": false,
"statType": null,
"description": "The combined follower number of all Spotify playlists with 200+ followers your music is currently on."
},
{
"artistId": "bo0jhy57",
"platform": "spotify",
"stat": "Streams",
"scope": null,
"value": null,
"number": null,
"lowerBound": false,
"locked": true,
"statType": "spotify_streams_total",
"description": "The total number of streams."
},
{
"artistId": "bo0jhy57",
"platform": "spotify",
"stat": "Monthly Listeners",
"scope": "current",
"value": "44.8M",
"number": 44800000,
"lowerBound": false,
"locked": false,
"statType": "spotify_monthly_listeners_current",
"description": "The total number of unique listeners in the last 28 days."
},
{
"artistId": "bo0jhy57",
"platform": "spotify",
"stat": "Followers",
"scope": "total",
"value": "22.3M",
"number": 22300000,
"lowerBound": false,
"locked": false,
"statType": "spotify_followers_total",
"description": "The total amount of people that have subscribed to your profile."
}
]Requests and billing
- Requests: 1 Web Access request per entry in
items. - Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.
search
Search Songstats for artists by name, as the site's search box does, and get each one's Songstats id, page URL, image and whether Songstats verified it. Several artists can share a name; the first is usually the best known.
POST https://request.usestring.ai/v1/integrations/songstats/searchInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
query | string | Required. The artist name to search for, such as 50 cent. At least 1 character. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
position | integer | The artist's place among the artist results, from 1. |
id | string | The Songstats artist id, which the artist and platform-stats actions take. |
name | string | — |
url | string | The artist's songstats.com page. |
imageUrl | string | null | — |
verified | boolean | Songstats marks the profile with a checkmark. |
Example
curl https://request.usestring.ai/v1/integrations/songstats/search \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "50 cent"
}'data starts with these rows:
[
{
"position": 1,
"id": "bo0jhy57",
"name": "50 Cent",
"url": "https://songstats.com/artist/bo0jhy57/50-cent",
"imageUrl": "https://i.scdn.co/image/f90b7e399448cc2ef0c953ae6d00712ce0b61842",
"verified": false
},
{
"position": 2,
"id": "u6sjm1q3",
"name": "50 Cent",
"url": "https://songstats.com/artist/u6sjm1q3/50-cent",
"imageUrl": "https://data.songstats.com/images/default-track.svg",
"verified": false
},
{
"position": 3,
"id": "zs7ophdi",
"name": "50 Cent",
"url": "https://songstats.com/artist/zs7ophdi/50-cent",
"imageUrl": "https://i.scdn.co/image/f90b7e399448cc2ef0c953ae6d00712ce0b61842",
"verified": false
}
]Requests and billing
- Requests: 1 Web Access request per call.
- Billing:
passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.