String docs
Site integrations

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
ActionDescriptionListed price
artistRead 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-statsRead 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
searchSearch 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/artist

Input

Unknown fields are rejected.

FieldTypeDescription
itemsstring[]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:

FieldTypeDescription
idstringThe Songstats artist id.
urlstringThe artist's songstats.com page.
namestring | null—
rolestring | nullThe profile's primary role, such as Artist.
imageUrlstring | null—
biostring | null—
countryCodestring | nullThe artist's country, as a lowercase ISO 3166 code.
countrystring | nullThe artist's country, as Songstats names it.
genresstring[]—
linksobject[]The platform profiles Songstats tracks for the artist.
links[].platformstringSongstats' id for the platform, such as spotify, apple_music or youtube.
links[].urlstringThe artist's profile on that platform.
links[].namestring | nullThe artist's name on that platform.
totalsobject[]Cross-platform figures: followers, streams, playlists, playlist reach, charts, Shazams, videos, views and DJ supports, as the page shows them.
totals[].statstringThe figure's name, such as Followers, Streams or Playlist Reach.
totals[].statTypestring | nullSongstats' key for the figure, such as followers_total.
totals[].valuestringThe figure as the page shows it, rounded, such as 124M.
totals[].numbernumber | nullvalue read as a number, such as 124000000; null when it is not a number.
totals[].platformsstring[] | nullThe platforms the figure sums, by Songstats' platform id.
followersByPlatformobject[]Exact follower or subscriber counts per platform, from the page's follower breakdown.
followersByPlatform[].platformstringSongstats' id for the platform, such as spotify.
followersByPlatform[].platformNamestring | nullThe platform's display name, such as Amazon Music.
followersByPlatform[].followersintegerFollowers 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-stats

Input

Unknown fields are rejected.

FieldTypeDescription
itemsstring[]Required. The artists: each a Songstats artist id, such as bo0jhy57, or a songstats.com/artist/<id>/<name> URL. 1 to 300 entries.
platformsspotify apple_music amazon deezer youtube tiktok instagram shazam soundcloud tidal beatport traxsource tracklist[] | nullThe 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:

FieldTypeDescription
artistIdstringThe Songstats artist id.
platformstringSongstats' id for the platform, such as spotify.
statstringThe card's name, such as Monthly Listeners, Followers or Playlist Reach.
scopestring | nullWhat the figure covers, as the card labels it: current, total, global or average. Null on a locked card.
valuestring | nullThe figure as the page shows it, such as 44.8M, 86%, #91 or 20M+. Null on a locked card.
numbernumber | nullvalue read as a number, such as 44800000; null when locked or not a number.
lowerBoundbooleanThe page shows the figure only as a floor, such as 20M+, rather than its value.
lockedbooleanThe figure is for paying Songstats subscribers and the page masks it.
statTypestring | nullSongstats' key for the figure, such as spotify_monthly_listeners_current, where the page names one.
descriptionstring | nullThe 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 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/search

Input

Unknown fields are rejected.

FieldTypeDescription
querystringRequired. 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:

FieldTypeDescription
positionintegerThe artist's place among the artist results, from 1.
idstringThe Songstats artist id, which the artist and platform-stats actions take.
namestring—
urlstringThe artist's songstats.com page.
imageUrlstring | null—
verifiedbooleanSongstats 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.