Creates a Radar from at least one genre or hashtag, and its sounds appear once tracking has started.
Requires the Create, update and archive Radars permission and active Radar access.
Request body
Field
Type
Description
namerequired
string
Your plan sets how many Radars can be active (20 by default), including Radars created in the dashboard.
genres
string list
Genre slugs from the Radar genre catalogue. Send at least one genre or hashtag.
Supported genres:
discovery โ General discovery
electronic โ Electronic / Dance
hiphop โ Hip-Hop / Rap
rnb โ R&B / Soul
pop โ Pop
indie โ Indie / Alternative
singer-songwriter โ Singer-Songwriter / Folk
country โ Country
afrobeats โ Afrobeats / Amapiano
christian โ Christian / Gospel
latin โ Latin
producer โ Producers / Beatmakers
hashtags
string list
Custom hashtags, with or without a leading #. Duplicates are removed. Your plan sets how many a Radar can
follow (25 by default).
countries
string list
Optional audience countries. Use the listed codes or country names. Omit this field or send an empty array for all countries. A value that matches no country returns 422 and names it. GB and UK both mean the United Kingdom, which responses show as UK.
Supported countries:
249 supported values
AF โ Afghanistan
AL โ Albania
DZ โ Algeria
AS โ American Samoa
AD โ Andorra
AO โ Angola
AI โ Anguilla
AG โ Antigua and Barbuda
AR โ Argentina
AM โ Armenia
AW โ Aruba
AU โ Australia
AT โ Austria
AZ โ Azerbaijan
BS โ Bahamas
BH โ Bahrain
BD โ Bangladesh
BB โ Barbados
BY โ Belarus
BE โ Belgium
BZ โ Belize
BJ โ Benin
BM โ Bermuda
BT โ Bhutan
BO โ Bolivia
BQ โ Bonaire, Sint Eustatius and Saba
BA โ Bosnia and Herzegovina
BW โ Botswana
BV โ Bouvet Island
BR โ Brazil
IO โ British Indian Ocean Territory
BN โ Brunei Darussalam
BG โ Bulgaria
BF โ Burkina Faso
BI โ Burundi
CV โ Cabo Verde
KH โ Cambodia
CM โ Cameroon
CA โ Canada
KY โ Cayman Islands
CF โ Central African Republic
TD โ Chad
CL โ Chile
CN โ China
CX โ Christmas Island
CC โ Cocos (Keeling) Islands
CO โ Colombia
KM โ Comoros
CG โ Congo
CD โ Congo, Democratic Republic
CK โ Cook Islands
CR โ Costa Rica
HR โ Croatia
CU โ Cuba
CW โ Curaรงao
CY โ Cyprus
CZ โ Czech Republic
CI โ Cรดte d'Ivoire
DK โ Denmark
DJ โ Djibouti
DM โ Dominica
DO โ Dominican Republic
EC โ Ecuador
EG โ Egypt
SV โ El Salvador
GQ โ Equatorial Guinea
ER โ Eritrea
EE โ Estonia
SZ โ Eswatini
ET โ Ethiopia
FK โ Falkland Islands (Malvinas)
FO โ Faroe Islands
FJ โ Fiji
FI โ Finland
FR โ France
GF โ French Guiana
PF โ French Polynesia
TF โ French Southern Territories
GA โ Gabon
GM โ Gambia
GE โ Georgia
DE โ Germany
GH โ Ghana
GI โ Gibraltar
GR โ Greece
GL โ Greenland
GD โ Grenada
GP โ Guadeloupe
GU โ Guam
GT โ Guatemala
GG โ Guernsey
GN โ Guinea
GW โ Guinea-Bissau
GY โ Guyana
HT โ Haiti
HM โ Heard Island and McDonald Islands
VA โ Holy See
HN โ Honduras
HK โ Hong Kong
HU โ Hungary
IS โ Iceland
IN โ India
ID โ Indonesia
IR โ Iran
IQ โ Iraq
IE โ Ireland
IM โ Isle of Man
IL โ Israel
IT โ Italy
JM โ Jamaica
JP โ Japan
JE โ Jersey
JO โ Jordan
KZ โ Kazakstan
KE โ Kenya
KI โ Kiribati
XK โ Kosovo
KW โ Kuwait
KG โ Kyrgyzstan
LA โ Lao
LV โ Latvia
LB โ Lebanon
LS โ Lesotho
LR โ Liberia
LY โ Libya
LI โ Liechtenstein
LT โ Lithuania
LU โ Luxembourg
MO โ Macao
MG โ Madagascar
MW โ Malawi
MY โ Malaysia
MV โ Maldives
ML โ Mali
MT โ Malta
MH โ Marshall Islands
MQ โ Martinique
MR โ Mauritania
MU โ Mauritius
YT โ Mayotte
MX โ Mexico
FM โ Micronesia
MD โ Moldova
MC โ Monaco
MN โ Mongolia
ME โ Montenegro
MS โ Montserrat
MA โ Morocco
MZ โ Mozambique
MM โ Myanmar
NA โ Namibia
NR โ Nauru
NP โ Nepal
NL โ Netherlands
NC โ New Caledonia
NZ โ New Zealand
NI โ Nicaragua
NE โ Niger
NG โ Nigeria
NU โ Niue
NF โ Norfolk Island
KP โ North Korea
MK โ North Macedonia
MP โ Northern Mariana Islands
NO โ Norway
OM โ Oman
PK โ Pakistan
PW โ Palau
PS โ Palestine
PA โ Panama
PG โ Papua New Guinea
PY โ Paraguay
PE โ Peru
PH โ Philippines
PN โ Pitcairn
PL โ Poland
PT โ Portugal
PR โ Puerto Rico
QA โ Qatar
RO โ Romania
RU โ Russia
RW โ Rwanda
RE โ Rรฉunion
BL โ Saint Barthรฉlemy
SH โ Saint Helena, Ascension and Tristan da Cunha
KN โ Saint Kitts and Nevis
LC โ Saint Lucia
MF โ Saint Martin (French part)
PM โ Saint Pierre and Miquelon
VC โ Saint Vincent and the Grenadines
WS โ Samoa
SM โ San Marino
ST โ Sao Tome and Principe
SA โ Saudi Arabia
SN โ Senegal
RS โ Serbia
SC โ Seychelles
SL โ Sierra Leone
SG โ Singapore
SX โ Sint Maarten (Dutch part)
SK โ Slovakia
SI โ Slovenia
SB โ Solomon Islands
SO โ Somalia
ZA โ South Africa
GS โ South Georgia and the South Sandwich Islands
The token can't call this endpoint, or the country isn't one of yours.
422
A parameter is missing or not valid. The response says which.
Discovery API
List your Radars
GEThttps://tokchart.com/api/v1/radar
Returns every active Radar on your account, newest first, including Radars
created in the dashboard. Archived Radars are left out. Read a Radar's
sounds with "Get sounds from a Radar".
Requires the Read Radar sounds permission and active Radar access.
commercial (Catalog sound), ugc_original (UGC original audio) or ugc_music (UGC that contains music), as in the dashboard.
spotify_url
A Spotify track link, or null when there is none. It can appear before the song's artist or label details.
matched_song
The song linked to the sound, or null when it has none.
matched_song.track_id
Works with /tiktok/audio/tracks/{track_id}/sounds.
matched_song.artists[].spotify_id
The artist's Spotify ID, or null when it's unknown or the name is shared by more than one Spotify artist.
matched_song.spotify_track_id
The ID in spotify_url. A sound can have a spotify_url and a null matched_song.
matched_song.isrc
Null when unknown.
matched_song.release_date
YYYY-MM-DD, or null when unknown.
matched_song.label
The label from the release details, or null when unknown.
cover_url
The sound's cover image, or null when there is none. For display and attribution only.
tiktok_url
The sound's TikTok page. For display and attribution only.
record_label
The record label of the sound's matched song, else the label Spotify reports for the album in spotify_url, else null. It's returned as reported, so it can be an imprint, a distributor or the artist's own name.
matched_genres
Only returned when the Radar has more than one genre. The Radar's genres whose curated hashtags matched the sound, which isn't a musical classification, so several can match. Empty when only custom hashtags matched.
latest_videos_count
Total videos at the latest count. It can be newer than the growth interval, so don't use it to recalculate daily growth.
previous_videos_count
Total videos at the start of the growth interval.
avg_daily_delta
New videos per day, averaged over the latest growth interval of at least one day.
avg_daily_delta_percentage_growth
avg_daily_delta divided by previous_videos_count, times 100, rounded to two decimals. 0 when previous_videos_count is 0.
Errors
Status
When
401
The token is missing, revoked or expired.
403
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
422
A parameter is missing or not valid. The response says which.
Developing artists whose original songs took off on TikTok: songs we first saw at 20 to 500 videos that have
since reached 1,000, grouped by the account that uploaded them, most videos gained first. The Radar's countries
are the country of the artist's TikTok account. On a genre Radar a song counts only when our model hears one of
its genres. Fan, lyric, AI and anonymous accounts, and covers or remixes of someone else's bigger song, are left
out. Under 250,000 followers by default. Refreshed daily. Requires the Read Radar sounds permission and active Radar access.
Parameters
Name
In
Type
Description
radarrequired
path
string
UUID of a Radar owned by the authenticated user.
page
query
integer
Page number (starting from 1).
Default 1
per_page
query
integer
Number of artists per page (1โ100). Defaults to 50.
Default 50
months
query
integer
How far back the songs were first spotted: 1, 3, 6 or 12 months. Defaults to 6.
Default 6
own_songs
query
boolean
When true (the default), only songs released under the artist's own name count, and fan pages, label channels, AI music projects and covers are left out. False counts every original audio they uploaded.
Default true
min_followers
query
integer
Fewest TikTok followers the artist may have.
max_followers
query
integer
Most TikTok followers the artist may have. Defaults to 250,000, so established artists are left out; 0 for no limit.
Default 250000
sort
query
string
gained (most new videos, the default), fastest (most new videos a day on one song), newest (most recently spotted) or fewest_followers.
The artist's TikTok handle, or null when TikTok didn't give one.
country
The country of the artist's TikTok account (code, name, flag), or null when unknown. It's where the account is registered, which can differ from where the artist is from.
songs_count
Distinct songs of theirs we spotted early in the window (one song uploaded several times counts once).
videos_gained
New TikTok videos on those songs since we first spotted each one.
best_videos_per_day
The most new videos a day on one of those songs, averaged from first sighting to the latest count.
own_song
True when at least one of the songs is released under the artist's own name.
top_song
Their song with the most new videos.
top_song.title
The released song's title, else the TikTok audio's.
top_song.released_on
Release date of the matched song, or null when unknown.
top_song.videos_when_spotted
Videos using it when we first saw it (20 to 500).
top_song.daily_videos
Videos using it per day since we spotted it, as [date, videos], at most 60 points.
top_song.genres
Genres our model hears in the audio, when it has scored it.
Errors
Status
When
401
The token is missing, revoked or expired.
403
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
422
A parameter is missing or not valid. The response says which.
Discovery API
Get a Radar
GEThttps://tokchart.com/api/v1/radar/{radar}
Returns one active Radar with its saved genres, hashtags and countries.
Requires the Read Radar sounds permission and active Radar access. Returns 404
for a Radar that is not yours or has been archived.
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
Discovery API
Update a Radar
PATCHhttps://tokchart.com/api/v1/radar/{radar}
Changes only the fields you send, and later sound reads use the new settings.
Requires the Create, update and archive Radars permission and active Radar access. Returns 404 for a Radar that is not yours or has
been archived.
Parameters
Name
In
Type
Description
radarrequired
path
string
UUID of a Radar owned by the authenticated user.
Request body
Field
Type
Description
name
string
genres
string list
Replaces the Radar's genres. It can't be sent with add_genres or remove_genres, and the Radar must keep
at least one genre or hashtag.
add_genres
string list
Genre slugs to add.
remove_genres
string list
Genre slugs to remove. Removals apply first, and removing one the Radar doesn't have is ignored.
hashtags
string list
Replaces the Radar's custom hashtags, with or without a leading #. It can't be sent with add_hashtags or
remove_hashtags, and the Radar must keep at least one genre or hashtag.
add_hashtags
string list
Hashtags to add, with or without a leading #. Your plan sets how many a Radar can follow (25 by default), and
new hashtags start tracking in the background.
remove_hashtags
string list
Hashtags to remove, with or without a leading #. Removals apply first, and removing one the Radar doesn't have
is ignored.
countries
string list
Replaces the Radar's audience countries, as ISO 3166-1 alpha-2 codes or names. An empty array means all
countries. It can't be sent with add_countries or remove_countries. A value that matches no country
returns 422 and names it. GB and UK both mean the United Kingdom, which responses show as UK.
add_countries
string list
Audience countries to add, as ISO 3166-1 alpha-2 codes or names.
remove_countries
string list
Audience countries to remove, as ISO 3166-1 alpha-2 codes or names.
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
422
A parameter is missing or not valid. The response says which.
Discovery API
Archive a Radar
DELETEhttps://tokchart.com/api/v1/radar/{radar}
The same as Delete on the Radar's dashboard page: the Radar stops counting
towards your plan's limit and can no longer be read or changed.
Requires the Create, update and archive Radars permission and active Radar access. Returns 404
for a Radar that is not yours or has already been archived.
Parameters
Name
In
Type
Description
radarrequired
path
string
UUID of a Radar owned by the authenticated user.
Errors
Status
When
401
The token is missing, revoked or expired.
403
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
Trends API
Get trending songs globally
GEThttps://tokchart.com/api/v1/trending/global
Returns a paginated list of trending songs globally, ordered by chart position.
Requires the Read trending songs worldwide permission.
Returns a paginated list of trending songs for a specific country, ordered by chart position.
Requires the Read trending songs permission for the requested country.
Parameters
Name
In
Type
Description
coderequired
path
string
ISO 3166-1 alpha-2 country code, in any case. GB and UK both mean the United Kingdom.
The campaign's report, as on its page and in its CSV: totals across its posts, the change over the last
day, videos using the campaign sound, and every post with its creator and latest stats.
totals sum each post's latest stats; engagement_rate is the average of the posts' rates, in percent.
last_day is the change since the last stats update at least 20 hours older (empty until there are two).
daily has the campaign's totals at each day's last stats update, oldest first.
sound_videos.daily has the new videos with the campaign sound each day, for the last 45 days. sound_countries
has the top five countries where the sound is used, by share of its videos, and is empty when we have no
figures yet.
campaign.sound.tiktok_url (also url) is the sound's page on TikTok; campaign.sound.cover_url and each post's
cover_url are images, null when there is none. Images and links are for display and attribution only (see the
API terms).
Each post's status is added, checking (Tokchart is still fetching it) or failed (the link could not
be read). Only added posts have a creator and stats; stats is null until the post's first stats update.
unavailable is true when the post has since been removed from TikTok.
Available with any API token on a Business or higher plan, or with the Create, update and read campaigns permission. Returns 404 for a campaign that is not yours.
The same report as for TikTok campaigns, for an Instagram campaign. views are the Reels' plays, each
post has its type (Video, Carousel or Photo), there are no saves (null), and sound_countries is
always empty. campaign.sound.url is the audio's page on Instagram.
Available with any API token on a Business or higher plan, or with the Create, update and read campaigns permission. Returns 404 for a campaign that is not yours.
The token can't call this endpoint, or the country isn't one of yours.
404
Nothing was found for the id in the URL.
Campaigns API
List campaigns
GEThttps://tokchart.com/api/v1/campaigns
Your TikTok and Instagram campaigns, newest first. Use a campaign's platform and uuid to read its
report, or to set its links.
posts_count is every link in the campaign, including links still being checked or that failed.
archived campaigns are listed too, and no longer update.
latest_stats are the campaign's totals at its latest stats update (captured_at), null before the
first one. Instagram campaigns have no saves.
Available with any API token on a Business or higher plan, or with the Create, update and read campaigns permission.
Returns a paginated list of trending TikTok audios globally, ordered by chart position.
Requires the Read trending TikTok sounds worldwide and Spotify matches permission.
Parameters
Name
In
Type
Description
page
query
integer
Page number (starting from 1).
Default 1
page_size
query
integer
Number of items per page (max 1000).
Default 50
hashtags
query
integer
Include the top N hashtags for each sound. Max: 10. Omit to exclude hashtags.
music when the sound is matched to a song, original when it isn't.
is_catalog
True for Catalog sounds, false for UGC sounds. False with content_typemusic is UGC that contains music.
trending_countries
The countries where the sound is trending, strongest first.
trending_countries_ranked
The same countries, with the sound's chart position in each.
spotify_url
A Spotify track link, or null when there is none.
matched_song
The song linked to the sound, or null when it has none.
matched_song.track_id
Works with /tiktok/audio/tracks/{track_id}/sounds.
matched_song.artists[].spotify_id
The artist's Spotify ID, or null when it's unknown or the name is shared by more than one Spotify artist.
matched_song.spotify_track_id
The ID in spotify_url. A sound can have a spotify_url and a null matched_song.
matched_song.isrc
Null when unknown.
matched_song.release_date
YYYY-MM-DD, or null when unknown.
matched_song.label
Null when unknown.
cover_url
The sound's cover image, or null when there is none. For display and attribution only.
tiktok_url
The sound's TikTok page. For display and attribution only.
daily_stats
The sound's total videos over the last 14 days, oldest first. Only days we have a figure are included, so dates can have gaps and the list can be empty.
hashtags
The top hashtags used with the sound. Only returned when you pass the hashtags parameter.
Returns a paginated list of trending TikTok audios for a specific country, ordered by chart position.
Requires the Read trending TikTok sounds permission for the requested country.
Parameters
Name
In
Type
Description
coderequired
path
string
ISO 3166-1 alpha-2 country code, in any case. GB and UK both mean the United Kingdom.
page
query
integer
Page number (starting from 1).
Default 1
page_size
query
integer
Number of items per page (max 1000).
Default 50
hashtags
query
integer
Include the top N hashtags for each sound. Max: 10. Omit to exclude hashtags.
music when the sound is matched to a song, original when it isn't.
is_catalog
True for Catalog sounds, false for UGC sounds. False with content_typemusic is UGC that contains music.
trending_countries
The countries where the sound is trending, strongest first.
trending_countries_ranked
The same countries, with the sound's chart position in each.
spotify_url
A Spotify track link, or null when there is none.
matched_song
The song linked to the sound, or null when it has none.
matched_song.track_id
Works with /tiktok/audio/tracks/{track_id}/sounds.
matched_song.artists[].spotify_id
The artist's Spotify ID, or null when it's unknown or the name is shared by more than one Spotify artist.
matched_song.spotify_track_id
The ID in spotify_url. A sound can have a spotify_url and a null matched_song.
matched_song.isrc
Null when unknown.
matched_song.release_date
YYYY-MM-DD, or null when unknown.
matched_song.label
Null when unknown.
cover_url
The sound's cover image, or null when there is none. For display and attribution only.
tiktok_url
The sound's TikTok page. For display and attribution only.
daily_stats
The sound's total videos over the last 14 days, oldest first. Only days we have a figure are included, so dates can have gaps and the list can be empty.
hashtags
The top hashtags used with the sound. Only returned when you pass the hashtags parameter.
Requires the Read trending TikTok sounds worldwide and Spotify matches permission.
Country shares and aggregate engagement metrics are calculated from the
videos observed by Tokchart. They are not guaranteed platform-wide totals.
Each sound includes at most its top 20 observed countries.
Parameters
Name
In
Type
Description
spotify_urlrequired
query
string
A Spotify track HTTPS URL (including /intl-xx/ links and query parameters) or spotify:track URI. Artist, album, playlist and shortened spotify.link URLs are not supported.
Response
200application/json ยท example
{
"error": "spotify_identity_pending",
"message": "Tokchart is resolving this Spotify track. Retry shortly."
}
Errors
Status
When
401
The token is missing, revoked or expired.
404
Nothing was found for the id in the URL.
422
A parameter is missing or not valid. The response says which.
Requires the Track songs and read their TikTok sounds permission. id is the song's Tokchart ID: use it to stop tracking the song, read its sounds or remove it from a list. It never changes. track_id is the identified recording, also accepted by "Get a track's TikTok sounds". Each song's status is active once Tokchart has identified it, pending while Tokchart looks it up, or not_found when the lookup found no recording. Unidentified songs have a null track_id and a lookup object with checked_at and recheck_after (when Tokchart asks again; null while pending). Active and pending songs count toward the account-wide meta.used; not_found songs remain saved for retries without using the allowance. They count again when pending or identified.
lists holds the IDs of the song's lists, and expires_at is when a list removes it from your tracked songs (null: never). Pass list_id to list one list's songs.
Unidentified tracked songs are looked up again daily during the first week after adding them, then weekly. lookup.recheck_after gives the next identity lookup deadline; the scheduled check runs every five minutes. Once identified, their sounds start refreshing daily.
Requires the Track songs and read their TikTok sounds permission. Adding an existing song returns 200; a new song returns 201. A full tracking allowance returns 409.
A song Tokchart has not identified yet returns 202 with status: pending. It is tracked and counts toward your allowance; Tokchart looks it up and the song becomes active, usually within minutes. Poll the list or the song's sounds; Retry-After suggests when.
404 spotify_track_not_found means Tokchart already looked this song up and found no recording for it. 503 spotify_lookup_temporarily_unavailable means the lookup could not start right now; the song was not added, so retry after Retry-After.
To add many songs at once, send spotify_tracks (up to 500) instead of spotify_track, and optionally list_id. Every song is added, or none when they do not fit your allowance (409). Songs Tokchart does not know yet are added as pending and looked up in the background; check them with the list. The response is 201 when at least one song was added, otherwise 200, with meta.added and meta.already_tracked. Songs added into a list follow the list's stop_after_days; songs added without one are never ended by a list.
Request body
Field
Type
Description
spotify_track
string
Spotify song link, URI or 22-character ID. Send this or spotify_tracks.
spotify_tracks
string list
Up to 500 Spotify song links, URIs or IDs, to add at once.
list_id
integer
With spotify_tracks: a list of yours that the songs join.
Requires the Track songs and read their TikTok sounds permission. The song includes ugc_videos_per_day, the last 30 completed UTC days of net new videos across all matched audios. Each entry has date and count; count is null when any audio lacks a baseline. Historical counts are carried forward between observations. Negative values reflect removals or corrections. No sounds gives an empty series.
Follow next_cursor until it is null to read every sound: the pages add up to meta.total_sounds. Sounds TikTok has since removed are included with is_removed: true and their last observed stats.
A song Tokchart has not identified yet returns 200 with its status (pending or not_found), no sounds and an empty ugc_videos_per_day.
Requires the Track songs and read their TikTok sounds permission. Tokchart reads the playlist, which usually takes a few seconds. The import starts loading (202, with Retry-After), or ready (201) when Tokchart read the same playlist in the last hour. Read it with "Get a playlist import". Up to 500 songs are read; playlist.truncated is true when the playlist has more.
503 spotify_lookup_temporarily_unavailable means the read could not start; retry after Retry-After.
Request body
Field
Type
Description
spotify_playlistrequired
string
Spotify playlist link, URI or 22-character ID.
Errors
Status
When
401
The token is missing, revoked or expired.
422
A parameter is missing or not valid. The response says which.
Requires the Track songs and read their TikTok sounds permission. status is loading, ready, not_found (Spotify has no such public playlist) or failed (start a new import). While loading, the response is 202 with Retry-After. Each song has spotify_streams, its Spotify stream count when the playlist was read, and tracked_status: null when you do not track it yet, otherwise your song's status.
Parameters
Name
In
Type
Description
importIdrequired
path
string
The import ID from "Start a playlist import".
Response
200application/json ยท example
{
"data": {
"id": "9d3c1f0e-7b1a-4c55-9a65-1f2e8f3a4b5c",
"spotify_playlist_id": "37i9dQZF1DX4JAvHpjipBk",
"status": "ready",
"requested_at": "2026-10-09T08:00:00Z",
"list_id": null,
"playlist": {
"name": "New Music Friday",
"image_url": "https://i.scdn.co/image/ab67706f000000024a1e43f12da342b7da825bdc",
"owner": "Spotify",
"total": 100,
"truncated": false
},
"songs": [
{
"spotify_track_id": "5KTcGJKm4HgLhLt8Tc7EQ5",
"spotify_uri": "spotify:track:5KTcGJKm4HgLhLt8Tc7EQ5",
"title": "Draw You Out - From The Hunger Games: Sunrise on the Reaping - The Album",
"artists": [
{
"spotify_id": "2RQXRUsr4IW1f3mKyKsy4B",
"name": "Noah Kahan"
},
{
"spotify_id": "6UdECsev3yuXe2rfLrdDiF",
"name": "The Hunger Games"
}
],
"image_url": "https://i.scdn.co/image/ab67616d00001e02ff163890a7e96a400bc40b8a",
"spotify_streams": 9007367,
"is_playable": true,
"explicit": false,
"added_to_playlist_at": "2026-10-02T04:04:03Z",
"tracked_status": null
}
]
}
}
Requires the Track songs and read their TikTok sounds permission. Adds every playable song of a ready import, or only spotify_tracks. By default the songs join a new list named after the playlist and today's date, and the list removes each song from your tracked songs stop_after_days (your account default, initially 90 days) after it joined; send stop_after_days: null for no end. Send list_id to use one of your lists, or create_list: false for no list. Calling it again adds to the same list.
Every song is added, or none when they do not fit your allowance (409). Songs Tokchart does not know yet are added as pending with the playlist's title, artists and cover, and become active once found. 409 playlist_import_not_ready means the import is not ready. 201 when at least one song was added, otherwise 200.
Parameters
Name
In
Type
Description
importIdrequired
path
string
The import ID.
Request body
Field
Type
Description
spotify_tracks
string list
Spotify IDs of songs in the playlist. Omit to add every playable song.
list_id
integer
A list of yours that the songs join, instead of a new list.
create_list
boolean
Whether the songs join a new list named after the playlist. Default true.
stop_after_days
integer
For a new list: remove each song from your tracked songs this many days after it joined (1 to 3650), or null for no end. Omit to use your account default (initially 90 days).
Errors
Status
When
401
The token is missing, revoked or expired.
404
Nothing was found for the id in the URL.
409
422
A parameter is missing or not valid. The response says which.
Requires the Track songs and read their TikTok sounds permission. stop_after_days (1 to 3650) removes each song from your tracked songs that many days after it joined the list; omit it or send null for no end.
Request body
Field
Type
Description
namerequired
string
Up to 120 characters.
stop_after_days
integer
Days after joining that a song is removed from your tracked songs, or null for no end.
Requires the Track songs and read their TikTok sounds permission. A new stop_after_days applies to every song in the list, counted from the day each song joined it.
Parameters
Name
In
Type
Description
listIdrequired
path
integer
The list ID.
Request body
Field
Type
Description
name
string
Up to 120 characters.
stop_after_days
integer
Days after joining that a song is removed from your tracked songs, or null for no end.
Requires the Track songs and read their TikTok sounds permission. Its songs stay tracked, and are no longer removed by this list. With untrack_songs=true, Tokchart also removes the list's songs that nothing else keeps.
Requires the Track songs and read their TikTok sounds permission. Every song must be one you track, given by its id; add new songs with "Track a song" and list_id. A song already in the list keeps the day it joined.
Requires the Track artists and read their TikTok sounds permission.
status is active once the artist has songs to show, pending while
Tokchart reads the Spotify catalogue of an artist it did not know yet
(usually a few minutes), and not_found when Spotify has no such artist.
refresh.status is warming_up for about 27 hours after an artist is
tracked, while their sounds complete a first refresh cycle, then active;
it is not_started while the artist is pending. refresh.refreshed_sounds
is how many of the artist's sounds are refreshed daily. Every sound also
carries its own updated_at.
Requires the Track artists and read their TikTok sounds permission.
Starts refreshing the artist's sounds. Tracking an artist you already track
returns it unchanged with status 200. Each account can track a limited
number of artists; contact us to raise it.
An artist Tokchart does not know yet returns 202 with status: pending.
They are tracked and count toward your allowance; Tokchart reads their
Spotify catalogue and the artist becomes active, usually within minutes.
Poll the list or the artist's tracks; Retry-After suggests when.
404 spotify_artist_not_found means Spotify has no artist with this ID.
503 spotify_lookup_temporarily_unavailable means the catalogue read could
not start right now; the artist was not added, so retry after Retry-After.
Request body
Field
Type
Description
spotify_artistrequired
string
A Spotify artist HTTPS URL (including /intl-xx/ links and query parameters), spotify:artist URI or 22-character artist ID.
Errors
Status
When
401
The token is missing, revoked or expired.
404
Nothing was found for the id in the URL.
409
422
A parameter is missing or not valid. The response says which.
Requires the Track artists and read their TikTok sounds permission.
The artist's songs, ordered by total TikTok videos, without their sounds.
Read each track's sounds from GET /tiktok/audio/tracks/{track_id}/sounds.
Follow next_cursor until it is null to read every track.
Songs from the artist's Spotify catalogue that have no TikTok sounds yet
are included with track_id: null, sounds_count: 0 and
ugc_videos_total: 0; they get a track_id once a TikTok sound uses
them. A pending artist has no tracks yet.
match_source says why a track is listed under the artist: listing (its
Spotify listing names them), catalogue (it is on their Spotify profile) or
name (it has no Spotify listing yet, and only they use this name).
Parameters
Name
In
Type
Description
spotifyArtistIdrequired
path
string
The 22-character Spotify artist ID of a tracked artist.
Requires the Track artists and read their TikTok sounds or Track songs and read their TikTok sounds permission.
The track includes ugc_videos_per_day: the last 30 completed UTC days of net new videos across all matched audios, as {date, count}. Missing baselines return null, and corrections can be negative. Counts are carried forward between captures. An empty matched sound set returns an empty series.
Sounds are ordered by video count. Follow next_cursor until it is null to
read every sound: the pages add up to meta.total_sounds. Sounds TikTok has
since removed are included with is_removed: true and their last observed
stats.
ugc_videos_total is the number of TikTok videos using the sound, and
updated_at is when Tokchart last read that count. Views, likes, comments,
shares and engagement_rate ((likes + comments + shares + saves) / views)
are summed from the videos Tokchart has observed for the sound and
recalculated daily; metrics_updated_at is when the newest of those video
stats was captured. They are not guaranteed platform-wide totals, and are
null until Tokchart has observed videos for the sound.
A parameter is missing or not valid. The response says which.
TikTok Creators API
Get creators by country and music genre
GEThttps://tokchart.com/api/v1/tiktok/creators
Requires the TikTok Creators permission.
Results are ordered by the latest captured follower count. Each result
includes up to 10 of the creator's matching videos, newest first.
Parameters
Name
In
Type
Description
countryrequired
query
string
Required ISO 3166-1 alpha-2 country code, in any case. GB and UK both mean the United Kingdom. Supported values: DZ (Algeria), AR (Argentina), AT (Austria), BE (Belgium), BR (Brazil), CA (Canada), CL (Chile), CO (Colombia), EC (Ecuador), EG (Egypt), FR (France), DE (Germany), GR (Greece), ID (Indonesia), IE (Ireland), IT (Italy), JP (Japan), KZ (Kazakhstan), KE (Kenya), MY (Malaysia), MX (Mexico), MA (Morocco), MM (Myanmar), NL (Netherlands), NG (Nigeria), PK (Pakistan), PA (Panama), PE (Peru), PH (Philippines), PL (Poland), PT (Portugal), RO (Romania), SA (Saudi Arabia), ZA (South Africa), ES (Spain), SE (Sweden), CH (Switzerland), TH (Thailand), TR (Turkey), UA (Ukraine), AE (United Arab Emirates), UK (United Kingdom), US (United States), VN (Vietnam).
genrerequired
query
string
Required canonical lower-case genre key. Supported values: blues (Blues), brazilian-funk (Brazilian Funk), childrens (Children's Music), classical (Classical), comedy (Comedy), corridos (Corridos), country (Country), electronic (Electronic), folk (Folk), hip-hop-rap (Hip-Hop/Rap), holiday (Holiday), jazz (Jazz), latin (Latin), latin-pop (Latin Pop), latin-urban (Latin Urban), other (Other), pop (Pop), r-and-b (R&B), reggae (Reggae), reggaeton (Reggaeton), regional-mexican (Regional Mexican), religious (Religious), rock (Rock), soundtrack (Soundtrack), world (World).
days
query
integer
Recent video window in days (1-90).
Default 30
sort
query
string
Result order. Currently only followers is supported.
Requires the TikTok Creators permission. Give a hashtag, a topic or both; with both, a creator must match both.
A hashtag finds creators who used it recently, with the ones who use it most, and mostly, first. A topic finds
creators whose content is tagged with it, such as skincare or marathon training, then creators using it as a
hashtag. topics, category and language are empty for creators we haven't tagged yet. matched_by says why each
creator is listed. Each result includes up to 5 of the creator's posts, those using the hashtag first.
Parameters
Name
In
Type
Description
hashtag
query
string
One hashtag, with or without the #, in any case. Required unless topic is given.
topic
query
string
A topic of one or more words, in any case. Required unless hashtag is given.
category
query
string
Only creators in this content category, written exactly as in the category field of a result, such as Beauty & Personal Care. Leaves out creators with no category yet.
country
query
string
Only creators in this country: an ISO 3166-1 alpha-2 code, in any case. GB and UK both mean the United Kingdom.
language
query
string
Only creators whose content is in this language: an ISO 639-1 code. Leaves out creators with no language yet.
min_followers
query
integer
Fewest followers.
max_followers
query
integer
Most followers.
min_views
query
integer
Lowest median views per video.
days
query
integer
How recently a hashtag must have been used, in days (1-180).
Default 180
sort
query
string
Result order: relevance, followers or views.
Default "relevance"
page
query
integer
Page of results (1-100). has_more says whether there is another.