Sign upSee plans
Developer

API reference

Every endpoint, parameter and response. Base URL https://tokchart.com/api/v1
Discovery API

Create a Radar

POSThttps://tokchart.com/api/v1/radar

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

FieldTypeDescription
namerequiredstring

Your plan sets how many Radars can be active (20 by default), including Radars created in the dashboard.

genresstring 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
hashtagsstring list

Custom hashtags, with or without a leading #. Duplicates are removed. Your plan sets how many a Radar can follow (25 by default).

countriesstring 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
  • KR โ€” South Korea
  • SS โ€” South Sudan
  • ES โ€” Spain
  • LK โ€” Sri Lanka
  • SD โ€” Sudan
  • SR โ€” Suriname
  • SJ โ€” Svalbard and Jan Mayen
  • SE โ€” Sweden
  • CH โ€” Switzerland
  • SY โ€” Syrian Arab Republic
  • TW โ€” Taiwan
  • TJ โ€” Tajikistan
  • TZ โ€” Tanzania
  • TH โ€” Thailand
  • TL โ€” Timor-Leste
  • TG โ€” Togo
  • TK โ€” Tokelau
  • TO โ€” Tonga
  • TT โ€” Trinidad and Tobago
  • TN โ€” Tunisia
  • TR โ€” Turkey
  • TM โ€” Turkmenistan
  • TC โ€” Turks and Caicos Islands
  • TV โ€” Tuvalu
  • UG โ€” Uganda
  • UA โ€” Ukraine
  • AE โ€” United Arab Emirates
  • UK โ€” United Kingdom
  • US โ€” United States
  • UM โ€” United States Minor Outlying Islands
  • UY โ€” Uruguay
  • UZ โ€” Uzbekistan
  • VU โ€” Vanuatu
  • VE โ€” Venezuela
  • VN โ€” Vietnam
  • VG โ€” Virgin Islands (British)
  • VI โ€” Virgin Islands (U.S.)
  • WF โ€” Wallis and Futuna
  • EH โ€” Western Sahara
  • YE โ€” Yemen
  • ZM โ€” Zambia
  • ZW โ€” Zimbabwe
  • AX โ€” ร…land Islands

Response

200application/json ยท example
{
    "radar": {
        "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
        "name": "US Pop Discovery",
        "status": "ready",
        "genres": [
            "pop"
        ],
        "hashtags": [
            "newmusic"
        ],
        "countries": [
            "US"
        ]
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
422A 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.

Response

200application/json ยท example
{
    "data": [
        {
            "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
            "name": "US Pop Discovery",
            "status": "ready",
            "genres": [
                "pop"
            ],
            "hashtags": [
                "newmusic"
            ],
            "countries": [
                "US"
            ]
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
Discovery API

Get sounds from a Radar

GEThttps://tokchart.com/api/v1/radar/{radar}/sounds

Returns the sounds currently matching a Radar, leaving out any you've hidden. Requires the Read Radar sounds permission and active Radar access.

Parameters

NameInTypeDescription
genres[] query string list
audio_content[] query string list
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 sounds per page (1โ€“1000). Suggested sizes: 50, 100, 250, 500, 750, 1000. Defaults to 50.

Default 50
sound_type query string

Filter by sound type: commercial (Catalog Sound), ugc_original (UGC Original Audio), or ugc_music (UGC Contains Music). Omit to include all types.

original_artists query boolean

When true, hides sounds where an account re-uses another artist's song, and returns music only unless audio_content is given. Beta.

Response

200application/json ยท example
{
    "radar": {
        "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
        "name": "US Pop and R&B Discovery",
        "status": "ready",
        "genres": [
            "pop",
            "rnb"
        ],
        "hashtags": [
            "newmusic"
        ],
        "countries": [
            "US"
        ]
    },
    "data": [
        {
            "sound_id": "7290123456789012345",
            "title": "Original sound",
            "sound_type": "ugc_original",
            "spotify_url": "https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh",
            "matched_song": {
                "track_id": "018f77f0-3490-5c21-8f5f-a90548c5bd2f",
                "spotify_uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh",
                "title": "Example Song",
                "artists": [
                    {
                        "spotify_uri": "spotify:artist:06HL4z0CvFAxyc27GXpf02",
                        "name": "Example Artist",
                        "spotify_id": "06HL4z0CvFAxyc27GXpf02"
                    }
                ],
                "spotify_track_id": "4iV5W9uYEdYUVa79Axb7Rh",
                "isrc": "USSM12600001",
                "release_date": "2026-08-01",
                "label": "Columbia",
                "genres": [
                    "Pop"
                ]
            },
            "cover_url": "https://assets.tokchart.com/images/sounds_data/cover/b4/b4bcab16ef4a01dc.webp",
            "tiktok_url": "https://www.tiktok.com/music/-7290123456789012345",
            "record_label": "Columbia",
            "matched_genres": [
                "pop"
            ],
            "uploaded_at": "2026-08-26T10:30:00+00:00",
            "latest_videos_count": 482,
            "previous_videos_count": 415,
            "avg_daily_delta": 67,
            "avg_daily_delta_percentage_growth": 16.14,
            "views_count": 1240000,
            "likes_count": 93000,
            "comments_count": 3200,
            "shares_count": 8100,
            "engagement_rate": 0.083,
            "author": {
                "account_id": "987654321",
                "name": "Example Artist",
                "username": "exampleartist",
                "followers_count": 18200,
                "tiktok_url": "https://www.tiktok.com/@exampleartist"
            },
            "daily_stats": [
                {
                    "date": "2026-08-30",
                    "videos_count": 415
                },
                {
                    "date": "2026-08-31",
                    "videos_count": 482
                }
            ],
            "country_signals": [
                {
                    "code": "US",
                    "name": "United States",
                    "tier": "Strong"
                }
            ],
            "stats_as_of": "2026-08-31T08:00:00+00:00",
            "bookmarked": false
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 50,
        "total": 126,
        "last_page": 3
    }
}

Response fields

FieldDescription
sound_type

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

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Discovery API

Get artists from a Radar

GEThttps://tokchart.com/api/v1/radar/{radar}/artists

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

NameInTypeDescription
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.

Default "gained"

Response

200application/json ยท example
{
    "radar": {
        "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
        "name": "US Pop Discovery",
        "status": "ready",
        "genres": [
            "pop"
        ],
        "hashtags": [
            "newmusic"
        ],
        "countries": [
            "US"
        ]
    },
    "data": [
        {
            "account_id": "7012345678901234567",
            "name": "Example Artist",
            "username": "exampleartist",
            "tiktok_url": "https://www.tiktok.com/@exampleartist",
            "avatar_url": "https://p16-sign.tiktokcdn-us.com/example.jpeg",
            "followers_count": 33600,
            "country": {
                "code": "US",
                "name": "United States",
                "flag": "๐Ÿ‡บ๐Ÿ‡ธ"
            },
            "songs_count": 1,
            "videos_gained": 95395,
            "best_videos_per_day": 1590,
            "first_spotted_at": "2026-09-11T08:00:00+00:00",
            "own_song": true,
            "top_song": {
                "sound_id": "7678402220329372447",
                "title": "Example Song",
                "released_on": "2026-09-19",
                "spotify_url": "https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh",
                "tiktok_url": "https://www.tiktok.com/music/-7678402220329372447",
                "tokchart_url": "https://tokchart.com/dashboard/tiktok-sound/7678402220329372447",
                "videos_when_spotted": 205,
                "videos": 95600,
                "spotted_at": "2026-09-11T08:00:00+00:00",
                "genres": [
                    "pop"
                ],
                "daily_videos": [
                    [
                        "2026-09-11",
                        205
                    ],
                    [
                        "2026-09-12",
                        8362
                    ]
                ]
            }
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 50,
        "total": 53,
        "last_page": 2,
        "months": 6,
        "own_songs": true,
        "refreshed_at": "2026-11-11T04:41:00+00:00"
    }
}

Response fields

FieldDescription
account_id

The artist's TikTok account id.

username

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

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
422A 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.

Parameters

NameInTypeDescription
radarrequired path string

UUID of a Radar owned by the authenticated user.

Response

200application/json ยท example
{
    "radar": {
        "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
        "name": "US Pop Discovery",
        "status": "ready",
        "genres": [
            "pop"
        ],
        "hashtags": [
            "newmusic"
        ],
        "countries": [
            "US"
        ]
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing 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

NameInTypeDescription
radarrequired path string

UUID of a Radar owned by the authenticated user.

Request body

FieldTypeDescription
namestring
genresstring 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_genresstring list

Genre slugs to add.

remove_genresstring list

Genre slugs to remove. Removals apply first, and removing one the Radar doesn't have is ignored.

hashtagsstring 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_hashtagsstring 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_hashtagsstring list

Hashtags to remove, with or without a leading #. Removals apply first, and removing one the Radar doesn't have is ignored.

countriesstring 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_countriesstring list

Audience countries to add, as ISO 3166-1 alpha-2 codes or names.

remove_countriesstring list

Audience countries to remove, as ISO 3166-1 alpha-2 codes or names.

Response

200application/json ยท example
{
    "radar": {
        "id": "018f77f0-3490-7c21-8f5f-a90548c5bd2f",
        "name": "US Pop Discovery",
        "status": "ready",
        "genres": [
            "pop"
        ],
        "hashtags": [
            "newmusic"
        ],
        "countries": [
            "US"
        ]
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
422A 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

NameInTypeDescription
radarrequired path string

UUID of a Radar owned by the authenticated user.

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing 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.

Parameters

NameInTypeDescription
page query integer

Page number (starting from 1).

Default 1
page_size query integer

Number of items per page (max 100).

Default 50

Response

200application/json ยท example
{
    "items": [
        {
            "chart_index": 1,
            "title": "Gata Only",
            "artists": [
                "floyymenor",
                "Cris MJ"
            ],
            "ugc_videos_total": 25846806,
            "ugc_videos_per_day": 36111
        },
        {
            "chart_index": 2,
            "title": "Shiny",
            "artists": [
                "Easykid"
            ],
            "ugc_videos_total": 8318121,
            "ugc_videos_per_day": 98786
        }
    ],
    "total_items": 198,
    "page": 1,
    "page_size": 50,
    "total_pages": 4
}

Errors

StatusWhen
401The token is missing, revoked or expired.
Trends API

Get trending songs by country

GEThttps://tokchart.com/api/v1/trending/country/{code}

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

NameInTypeDescription
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 100).

Default 50

Response

200application/json ยท example
{
    "items": [
        {
            "chart_index": 1,
            "title": "Never Leave You (Uh Oooh, Uh Oooh) [Mixed]",
            "artists": [
                "Lumidee"
            ],
            "ugc_videos_total": 259725,
            "ugc_videos_per_day": -710
        },
        {
            "chart_index": 2,
            "title": "That's So True",
            "artists": [
                "Gracie Abrams"
            ],
            "ugc_videos_total": 47559638,
            "ugc_videos_per_day": -246034
        }
    ],
    "total_items": 147,
    "page": 1,
    "page_size": 50,
    "total_pages": 3
}

Errors

StatusWhen
401The token is missing, revoked or expired.
Campaigns API

Create a new TikTok campaign

POSThttps://tokchart.com/api/v1/campaigns/tiktok

Requires the Create, update and read campaigns permission.

Request body

FieldTypeDescription
namerequiredstring

The campaign name.

sound_idstring

The TikTok sound ID or tiktok.com/music link to associate with the campaign.

start_datestring

The campaign start date.

end_datestring

The campaign end date.

starting_sound_videos_countinteger

The initial count of videos using the sound.

linksstring list

List of TikTok video URLs to add to the campaign.

Errors

StatusWhen
401The token is missing, revoked or expired.
422A parameter is missing or not valid. The response says which.
Campaigns API

Create a new Instagram campaign

POSThttps://tokchart.com/api/v1/campaigns/instagram

Requires the Create, update and read campaigns permission.

Request body

FieldTypeDescription
namerequiredstring

The campaign name.

ig_sound_idstring

The Instagram sound ID or instagram.com/reels/audio link to associate with the campaign.

start_datestring

The campaign start date.

end_datestring

The campaign end date.

starting_sound_videos_countinteger

The initial count of reels using the sound.

linksstring list

List of Instagram Reel URLs to add to the campaign.

Errors

StatusWhen
401The token is missing, revoked or expired.
422A parameter is missing or not valid. The response says which.
Campaigns API

Set a TikTok campaign's video URLs

POSThttps://tokchart.com/api/v1/campaigns/tiktok/{campaign}

Send the campaign's full list of links each time: links not in the list are removed from the campaign, and every link in it is imported again.

Requires the Create, update and read campaigns permission.

Parameters

NameInTypeDescription
campaignrequired path string

The campaign UUID

Request body

FieldTypeDescription
linksrequiredstring list

List of TikTok video URLs to add.

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Campaigns API

Get a TikTok campaign report

GEThttps://tokchart.com/api/v1/campaigns/tiktok/{campaign}

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.

Parameters

NameInTypeDescription
campaignrequired path string

The campaign uuid.

Response

200application/json ยท example
{
    "campaign": {
        "sound": {
            "id": "7123456789012345678",
            "title": "Example song",
            "artist": "Example artist",
            "url": "https://www.tiktok.com/music/example-song-7123456789012345678",
            "tiktok_url": "https://www.tiktok.com/music/example-song-7123456789012345678",
            "cover_url": "https://assets.tokchart.com/images/sounds_data/cover/example.webp"
        },
        "uuid": "9b2f6c1e-3d4a-4f8b-a1c2-7e5d9f0b3a68",
        "name": "Summer Music Campaign 2026",
        "platform": "tiktok",
        "start_date": "2026-10-01",
        "end_date": "2026-10-31",
        "archived": false,
        "created_at": "2026-09-28T10:15:00+00:00",
        "updated_at": "2026-10-20T08:02:11+00:00",
        "status": "live",
        "updating": false,
        "stats_updated_at": "2026-10-20T08:00:00+00:00",
        "share_url": "https://tokchart.com/campaigns/9b2f6c1e-3d4a-4f8b-a1c2-7e5d9f0b3a68"
    },
    "totals": {
        "posts": 41,
        "creators": 38,
        "views": 1834200,
        "likes": 210450,
        "comments": 3120,
        "shares": 8410,
        "saves": 15230,
        "engagement_rate": 11.87
    },
    "last_day": {
        "views": 52300,
        "likes": 4100,
        "comments": 64,
        "shares": 210,
        "saves": 380
    },
    "sound_videos": {
        "start": 1200,
        "now": 3480,
        "change_percent": 190,
        "daily": [
            {
                "date": "2026-10-19",
                "new_videos": 96
            },
            {
                "date": "2026-10-20",
                "new_videos": 118
            }
        ]
    },
    "sound_countries": [
        {
            "code": "US",
            "name": "United States",
            "share_percent": 41.25
        },
        {
            "code": "BR",
            "name": "Brazil",
            "share_percent": 18.4
        }
    ],
    "links": {
        "submitted": 42,
        "added": 41,
        "checking": 0,
        "failed": 1
    },
    "posts": [
        {
            "url": "https://www.tiktok.com/@creator/video/7123456789012345678",
            "status": "added",
            "unavailable": false,
            "type": null,
            "posted_at": "2026-10-03T17:42:10+00:00",
            "cover_url": "https://assets.tokchart.com/video_thumbnails/7123456789012345678",
            "creator": {
                "handle": "creator",
                "profile_url": "https://www.tiktok.com/@creator",
                "country": "US",
                "followers": 254000
            },
            "stats": {
                "views": 412000,
                "likes": 51200,
                "comments": 610,
                "shares": 1840,
                "saves": 3920,
                "engagement_rate": 14.05,
                "views_to_followers": 162.2
            }
        },
        {
            "url": "https://www.tiktok.com/@another/video/7987654321098765432",
            "status": "failed",
            "unavailable": false,
            "type": null,
            "posted_at": null,
            "cover_url": null,
            "creator": null,
            "stats": null
        }
    ],
    "daily": [
        {
            "date": "2026-10-19",
            "views": 1781900,
            "likes": 206350,
            "comments": 3056,
            "shares": 8200,
            "saves": 14850
        },
        {
            "date": "2026-10-20",
            "views": 1834200,
            "likes": 210450,
            "comments": 3120,
            "shares": 8410,
            "saves": 15230
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
Campaigns API

Set an Instagram campaign's Reel URLs

POSThttps://tokchart.com/api/v1/campaigns/instagram/{igCampaign}

Send the campaign's full list of links each time: links not in the list are removed from the campaign, and every link in it is imported again.

Requires the Create, update and read campaigns permission.

Parameters

NameInTypeDescription
igCampaignrequired path string or null

The ig campaign UUID

Request body

FieldTypeDescription
linksrequiredstring list

List of Instagram Reel URLs to add.

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Campaigns API

Get an Instagram campaign report

GEThttps://tokchart.com/api/v1/campaigns/instagram/{igCampaign}

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.

Parameters

NameInTypeDescription
igCampaignrequired path string

The campaign uuid.

Response

200application/json ยท example
{
    "campaign": {
        "uuid": "4c8e2a7d-1f3b-4e9a-b6d5-0a2c8e7f1b93",
        "name": "Reels launch",
        "platform": "instagram",
        "start_date": "2026-10-01",
        "end_date": null,
        "sound": {
            "id": "1234567890",
            "title": "Example song",
            "artist": "Example artist",
            "url": "https://www.instagram.com/reels/audio/1234567890/",
            "cover_url": "https://assets.tokchart.com/ig_sounds_imgs/1234567890"
        },
        "archived": false,
        "created_at": "2026-09-30T12:00:00+00:00",
        "updated_at": "2026-10-20T08:01:00+00:00",
        "status": "live",
        "updating": false,
        "stats_updated_at": "2026-10-20T08:00:00+00:00",
        "share_url": "https://tokchart.com/campaigns/instagram/4c8e2a7d-1f3b-4e9a-b6d5-0a2c8e7f1b93"
    },
    "totals": {
        "posts": 12,
        "creators": 12,
        "views": 640300,
        "likes": 41200,
        "comments": 980,
        "shares": 1520,
        "saves": null,
        "engagement_rate": 6.42
    },
    "last_day": {
        "views": 18400,
        "likes": 1210,
        "comments": 22,
        "shares": 40
    },
    "sound_videos": null,
    "sound_countries": [],
    "links": {
        "submitted": 12,
        "added": 12,
        "checking": 0,
        "failed": 0
    },
    "posts": [
        {
            "url": "https://www.instagram.com/reel/Cx1y2z3A4B5",
            "status": "added",
            "unavailable": false,
            "type": "Video",
            "posted_at": "2026-10-02T15:20:00+00:00",
            "cover_url": "https://assets.tokchart.com/ig_reels_imgs/Cx1y2z3A4B5",
            "creator": {
                "handle": "creator",
                "profile_url": "https://www.instagram.com/creator",
                "country": "GB",
                "followers": 88000
            },
            "stats": {
                "views": 120400,
                "likes": 9100,
                "comments": 140,
                "shares": 310,
                "saves": null,
                "engagement_rate": 7.94,
                "views_to_followers": 136.82
            }
        }
    ],
    "daily": [
        {
            "date": "2026-10-20",
            "views": 640300,
            "likes": 41200,
            "comments": 980,
            "shares": 1520
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
404Nothing 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.

Parameters

NameInTypeDescription
platform query string

Only tiktok or only instagram campaigns.

page query integer

Page number (starting from 1).

Default 1
per_page query integer

Campaigns per page, from 1 to 100.

Default 50

Response

200application/json ยท example
{
    "data": [
        {
            "uuid": "9b2f6c1e-3d4a-4f8b-a1c2-7e5d9f0b3a68",
            "name": "Summer Music Campaign 2026",
            "platform": "tiktok",
            "start_date": "2026-10-01",
            "end_date": "2026-10-31",
            "sound": {
                "id": "7123456789012345678",
                "title": "Example song",
                "artist": "Example artist",
                "url": "https://www.tiktok.com/music/example-song-7123456789012345678",
                "tiktok_url": "https://www.tiktok.com/music/example-song-7123456789012345678"
            },
            "archived": false,
            "created_at": "2026-09-28T10:15:00+00:00",
            "updated_at": "2026-10-20T08:02:11+00:00",
            "posts_count": 42,
            "latest_stats": {
                "views": 1834200,
                "likes": 210450,
                "comments": 3120,
                "shares": 8410,
                "saves": 15230,
                "engagement_rate": 11.87,
                "captured_at": "2026-10-20T08:00:00+00:00"
            }
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 50,
        "total": 1,
        "last_page": 1
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
403The token can't call this endpoint, or the country isn't one of yours.
422A parameter is missing or not valid. The response says which.
TikTok Global Audio API

Get trending TikTok audio globally

GEThttps://tokchart.com/api/v1/tiktok/audio/trending/global

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

NameInTypeDescription
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.

Response

200application/json ยท example
{
    "items": [
        {
            "chart_index": 1,
            "sound_id": 7536694526191127327,
            "title": "Original sound",
            "author": "creator",
            "tokchart_score": 987,
            "ugc_videos_total": 25846806,
            "ugc_videos_per_day": 36111,
            "ugc_videos_acceleration": 1200,
            "content_type": "music",
            "is_catalog": true,
            "sound_duration_seconds": 31,
            "views_total": 500000000,
            "likes_total": 45000000,
            "uploaded_at": "2026-06-01 12:34:56",
            "trending_countries": [
                "US",
                "UK"
            ],
            "trending_countries_ranked": [
                {
                    "country": "US",
                    "rank": 3
                },
                {
                    "country": "UK",
                    "rank": 12
                }
            ],
            "spotify_url": "https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh",
            "matched_song": {
                "track_id": "018f77f0-3490-5c21-8f5f-a90548c5bd2f",
                "spotify_uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh",
                "title": "Example Song",
                "artists": [
                    {
                        "spotify_uri": "spotify:artist:06HL4z0CvFAxyc27GXpf02",
                        "name": "Example Artist",
                        "spotify_id": "06HL4z0CvFAxyc27GXpf02"
                    },
                    {
                        "spotify_uri": null,
                        "name": "Featured Artist",
                        "spotify_id": null
                    }
                ],
                "spotify_track_id": "4iV5W9uYEdYUVa79Axb7Rh",
                "isrc": "USSM12600001",
                "release_date": "2026-05-29",
                "label": "Columbia",
                "genres": [
                    "Pop"
                ]
            },
            "cover_url": "https://assets.tokchart.com/images/sounds_data/cover/ab/ab7f519e6d45a29a.webp",
            "tiktok_url": "https://www.tiktok.com/music/-7536694526191127327",
            "daily_stats": [
                {
                    "date": "2026-06-04",
                    "videos_count": 25810695
                },
                {
                    "date": "2026-06-05",
                    "videos_count": 25846806
                }
            ],
            "hashtags": [
                "dance",
                "fyp",
                "viral"
            ]
        },
        {
            "chart_index": 2,
            "sound_id": 7536694526191127328,
            "title": "original sound - creator",
            "author": "creator",
            "tokchart_score": 951,
            "ugc_videos_total": 259725,
            "ugc_videos_per_day": 710,
            "ugc_videos_acceleration": 120,
            "content_type": "original",
            "is_catalog": false,
            "sound_duration_seconds": 18,
            "views_total": 5000000,
            "likes_total": 450000,
            "uploaded_at": "2026-06-01 12:34:56",
            "trending_countries": [
                "US"
            ],
            "trending_countries_ranked": [
                {
                    "country": "US",
                    "rank": 41
                }
            ],
            "spotify_url": null,
            "matched_song": null,
            "cover_url": null,
            "tiktok_url": "https://www.tiktok.com/music/-7536694526191127328",
            "daily_stats": [
                {
                    "date": "2026-06-03",
                    "videos_count": 258315
                },
                {
                    "date": "2026-06-05",
                    "videos_count": 259725
                }
            ],
            "hashtags": [
                "fyp"
            ]
        }
    ],
    "total_items": 1000,
    "page": 1,
    "page_size": 1000,
    "total_pages": 1
}

Response fields

FieldDescription
ugc_videos_total

Total videos using the sound.

ugc_videos_per_day

New videos using the sound per day.

ugc_videos_acceleration

How fast ugc_videos_per_day is changing.

content_type

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_type music 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.

Errors

StatusWhen
401The token is missing, revoked or expired.
TikTok Global Audio API

Get trending TikTok audio by country

GEThttps://tokchart.com/api/v1/tiktok/audio/trending/country/{code}

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

NameInTypeDescription
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.

Response

200application/json ยท example
{
    "items": [
        {
            "chart_index": 1,
            "sound_id": 7536694526191127327,
            "title": "Original sound",
            "author": "creator",
            "tokchart_score": 951,
            "ugc_videos_total": 259725,
            "ugc_videos_per_day": 710,
            "ugc_videos_acceleration": 120,
            "content_type": "original",
            "sound_duration_seconds": 18,
            "views_total": 5000000,
            "likes_total": 450000,
            "uploaded_at": "2026-06-01 12:34:56",
            "trending_countries": [
                "US",
                "UK"
            ],
            "trending_countries_ranked": [
                {
                    "country": "US",
                    "rank": 3
                },
                {
                    "country": "UK",
                    "rank": 12
                }
            ],
            "spotify_url": "https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh",
            "matched_song": {
                "track_id": "018f77f0-3490-5c21-8f5f-a90548c5bd2f",
                "spotify_uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh",
                "title": "Example Song",
                "artists": [
                    {
                        "spotify_uri": "spotify:artist:06HL4z0CvFAxyc27GXpf02",
                        "name": "Example Artist",
                        "spotify_id": "06HL4z0CvFAxyc27GXpf02"
                    },
                    {
                        "spotify_uri": null,
                        "name": "Featured Artist",
                        "spotify_id": null
                    }
                ],
                "spotify_track_id": "4iV5W9uYEdYUVa79Axb7Rh",
                "isrc": "USSM12600001",
                "release_date": "2026-05-29",
                "label": "Columbia",
                "genres": [
                    "Pop"
                ]
            },
            "cover_url": "https://assets.tokchart.com/images/sounds_data/cover/ab/ab7f519e6d45a29a.webp",
            "tiktok_url": "https://www.tiktok.com/music/-7536694526191127327",
            "daily_stats": [
                {
                    "date": "2026-06-04",
                    "videos_count": 25810695
                },
                {
                    "date": "2026-06-05",
                    "videos_count": 25846806
                }
            ],
            "hashtags": [
                "dance",
                "fyp",
                "viral"
            ]
        },
        {
            "chart_index": 2,
            "sound_id": 7536694526191127328,
            "title": "original sound - creator",
            "author": "creator",
            "tokchart_score": 951,
            "ugc_videos_total": 259725,
            "ugc_videos_per_day": 710,
            "ugc_videos_acceleration": 120,
            "content_type": "original",
            "is_catalog": false,
            "sound_duration_seconds": 18,
            "views_total": 5000000,
            "likes_total": 450000,
            "uploaded_at": "2026-06-01 12:34:56",
            "trending_countries": [
                "US"
            ],
            "trending_countries_ranked": [
                {
                    "country": "US",
                    "rank": 41
                }
            ],
            "spotify_url": null,
            "matched_song": null,
            "cover_url": null,
            "tiktok_url": "https://www.tiktok.com/music/-7536694526191127328",
            "daily_stats": [
                {
                    "date": "2026-06-03",
                    "videos_count": 258315
                },
                {
                    "date": "2026-06-05",
                    "videos_count": 259725
                }
            ],
            "hashtags": [
                "fyp"
            ]
        }
    ],
    "total_items": 1000,
    "page": 1,
    "page_size": 1000,
    "total_pages": 1
}

Response fields

FieldDescription
ugc_videos_total

Total videos using the sound.

ugc_videos_per_day

New videos using the sound per day.

ugc_videos_acceleration

How fast ugc_videos_per_day is changing.

content_type

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_type music 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.

Errors

StatusWhen
401The token is missing, revoked or expired.
TikTok Global Audio API

Get TikTok sounds matched to a Spotify track

GEThttps://tokchart.com/api/v1/tiktok/audio/matches

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

NameInTypeDescription
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

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
503
Tracked Songs API

List tracked songs

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs

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.

Parameters

NameInTypeDescription
list_id query integer

Only the songs in this list.

Response

200application/json ยท example
{
    "data": [
        {
            "id": "0199c3a2-5f1e-7c3b-9a4d-2e8f6b1c7d90",
            "spotify_track_id": "0DWdj2oZMBFSzRsi2Cvfzf",
            "spotify_uri": "spotify:track:0DWdj2oZMBFSzRsi2Cvfzf",
            "track_id": "1fed0d6b-55bf-5e9e-b0b1-c765d3270258",
            "title": "Example song",
            "status": "active",
            "tracked_since": "2026-10-01T12:00:00Z",
            "refresh": {
                "status": "warming_up",
                "refreshed_sounds": 102,
                "synced_at": "2026-10-01T12:00:05Z"
            },
            "artists_label": "Example artist",
            "image_url": null,
            "lists": [],
            "expires_at": null,
            "lookup": null
        },
        {
            "id": "0199c3a2-6a40-7f12-8b5e-4c1d9e2a3f71",
            "spotify_track_id": "4iV5W9uYEdYUVa79Axb7Rh",
            "spotify_uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh",
            "track_id": null,
            "title": null,
            "status": "pending",
            "tracked_since": "2026-10-02T09:00:00Z",
            "refresh": {
                "status": "not_started",
                "refreshed_sounds": null,
                "synced_at": null
            },
            "artists_label": "Example artist",
            "image_url": null,
            "lists": [
                12
            ],
            "expires_at": "2026-12-31T09:00:00Z",
            "lookup": {
                "checked_at": "2026-10-02T09:00:00Z",
                "recheck_after": null
            }
        }
    ],
    "meta": {
        "limit": 100,
        "used": 2
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Tracked Songs API

Track a song

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs

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

FieldTypeDescription
spotify_trackstring

Spotify song link, URI or 22-character ID. Send this or spotify_tracks.

spotify_tracksstring list

Up to 500 Spotify song links, URIs or IDs, to add at once.

list_idinteger

With spotify_tracks: a list of yours that the songs join.

Response

200application/json ยท example
{
    "data": {
        "id": "0199c3a2-6a40-7f12-8b5e-4c1d9e2a3f71",
        "spotify_track_id": "4iV5W9uYEdYUVa79Axb7Rh",
        "spotify_uri": "spotify:track:4iV5W9uYEdYUVa79Axb7Rh",
        "track_id": null,
        "title": null,
        "status": "pending",
        "tracked_since": "2026-10-02T09:00:00Z",
        "refresh": {
            "status": "not_started",
            "refreshed_sounds": null,
            "synced_at": null
        },
        "artists_label": "Example artist",
        "image_url": null,
        "lists": [
            12
        ],
        "expires_at": "2026-12-31T09:00:00Z",
        "lookup": {
            "checked_at": "2026-10-02T09:00:00Z",
            "recheck_after": null
        }
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
409
422A parameter is missing or not valid. The response says which.
503
Tracked Songs API

Stop tracking a song

DELETEhttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/{songId}

Requires the Track songs and read their TikTok sounds permission.

Parameters

NameInTypeDescription
songIdrequired path string

The id of a song you track.

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
Tracked Songs API

Get a tracked song's TikTok sounds

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/{songId}/sounds

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.

Parameters

NameInTypeDescription
songIdrequired path string

The id of a song you track.

cursor query string

The next_cursor from the previous page.

limit query integer

Sounds per page, from 1 to 250.

Default 100

Response

200application/json ยท example
{
    "track": {
        "id": "0199c3a2-5f1e-7c3b-9a4d-2e8f6b1c7d90",
        "track_id": "1fed0d6b-55bf-5e9e-b0b1-c765d3270258",
        "spotify_track_id": "0DWdj2oZMBFSzRsi2Cvfzf",
        "title": "Example song",
        "status": "active",
        "tracked_since": "2026-10-01T12:00:00Z",
        "refresh": {
            "status": "active",
            "refreshed_sounds": 102,
            "synced_at": "2026-10-02T02:45:00Z"
        },
        "lookup": null,
        "ugc_videos_per_day": [
            {
                "date": "2026-10-01",
                "count": 12500
            },
            {
                "date": "2026-10-02",
                "count": null
            }
        ]
    },
    "sounds": [],
    "next_cursor": null,
    "meta": {
        "total_sounds": 0,
        "metrics_basis": "observed_videos"
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Tracked Songs API

Start a playlist import

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/imports

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

FieldTypeDescription
spotify_playlistrequiredstring

Spotify playlist link, URI or 22-character ID.

Errors

StatusWhen
401The token is missing, revoked or expired.
422A parameter is missing or not valid. The response says which.
503
Tracked Songs API

Get a playlist import

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/imports/{importId}

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

NameInTypeDescription
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
            }
        ]
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
Tracked Songs API

Add songs from a playlist import

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/imports/{importId}/songs

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

NameInTypeDescription
importIdrequired path string

The import ID.

Request body

FieldTypeDescription
spotify_tracksstring list

Spotify IDs of songs in the playlist. Omit to add every playable song.

list_idinteger

A list of yours that the songs join, instead of a new list.

create_listboolean

Whether the songs join a new list named after the playlist. Default true.

stop_after_daysinteger

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

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
409
422A parameter is missing or not valid. The response says which.
Tracked Songs API

List your song lists

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists

Requires the Track songs and read their TikTok sounds permission. Newest first. Read a list's songs with "List tracked songs" and list_id.

Response

200application/json ยท example
{
    "data": [
        {
            "id": 12,
            "name": "New Music Friday ยท 9 Oct",
            "spotify_playlist_id": "37i9dQZF1DX4JAvHpjipBk",
            "stop_after_days": 90,
            "songs_count": 100,
            "created_at": "2026-10-09T08:00:10Z"
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
Tracked Songs API

Create a song list

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists

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

FieldTypeDescription
namerequiredstring

Up to 120 characters.

stop_after_daysinteger

Days after joining that a song is removed from your tracked songs, or null for no end.

Response

200application/json ยท example
{
    "data": {
        "spotify_playlist_id": null,
        "songs_count": 0,
        "id": 12,
        "name": "New Music Friday ยท 9 Oct",
        "stop_after_days": 90,
        "created_at": "2026-10-09T08:00:10Z"
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
422A parameter is missing or not valid. The response says which.
Tracked Songs API

Change a song list

PATCHhttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists/{listId}

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

NameInTypeDescription
listIdrequired path integer

The list ID.

Request body

FieldTypeDescription
namestring

Up to 120 characters.

stop_after_daysinteger

Days after joining that a song is removed from your tracked songs, or null for no end.

Response

200application/json ยท example
{
    "data": {
        "id": 12,
        "name": "New Music Friday ยท 9 Oct",
        "spotify_playlist_id": "37i9dQZF1DX4JAvHpjipBk",
        "stop_after_days": 90,
        "songs_count": 100,
        "created_at": "2026-10-09T08:00:10Z"
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Tracked Songs API

Delete a song list

DELETEhttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists/{listId}

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.

Parameters

NameInTypeDescription
listIdrequired path integer

The list ID.

untrack_songs query boolean

Also remove the songs only this list kept.

Default false

Response

200application/json ยท example
{
    "meta": {
        "untracked": 98
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
Tracked Songs API

Add tracked songs to a list

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists/{listId}/songs

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.

Parameters

NameInTypeDescription
listIdrequired path integer

The list ID.

Request body

FieldTypeDescription
song_idsrequiredstring list

Up to 500 ids of songs you track.

Response

200application/json ยท example
{
    "data": {
        "id": 12,
        "name": "New Music Friday ยท 9 Oct",
        "spotify_playlist_id": "37i9dQZF1DX4JAvHpjipBk",
        "stop_after_days": 90,
        "songs_count": 100,
        "created_at": "2026-10-09T08:00:10Z"
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A parameter is missing or not valid. The response says which.
Tracked Songs API

Remove a song from a list

DELETEhttps://tokchart.com/api/v1/tiktok/audio/tracked-songs/lists/{listId}/songs/{songId}

Requires the Track songs and read their TikTok sounds permission. The song stays tracked. 404 when it is not in the list.

Parameters

NameInTypeDescription
listIdrequired path integer

The list ID.

songIdrequired path string

The id of a song in the list.

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
Tracked Artists API

List tracked artists

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-artists

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.

Response

200application/json ยท example
{
    "data": [
        {
            "spotify_id": "790FomKkXshlbRYZFtlgla",
            "spotify_uri": "spotify:artist:790FomKkXshlbRYZFtlgla",
            "name": "Example artist",
            "status": "active",
            "tracked_since": "2026-09-28T10:00:00Z",
            "refresh": {
                "status": "active",
                "refreshed_sounds": 2310,
                "synced_at": "2026-09-29T02:30:00Z"
            }
        },
        {
            "spotify_id": "12fRkVfO2fUsz1QHgDAG3g",
            "spotify_uri": "spotify:artist:12fRkVfO2fUsz1QHgDAG3g",
            "name": null,
            "status": "pending",
            "tracked_since": "2026-10-10T09:00:00Z",
            "refresh": {
                "status": "not_started",
                "refreshed_sounds": null,
                "synced_at": null
            }
        }
    ],
    "meta": {
        "limit": 10,
        "used": 2
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
Tracked Artists API

Track an artist

POSThttps://tokchart.com/api/v1/tiktok/audio/tracked-artists

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

FieldTypeDescription
spotify_artistrequiredstring

A Spotify artist HTTPS URL (including /intl-xx/ links and query parameters), spotify:artist URI or 22-character artist ID.

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
409
422A parameter is missing or not valid. The response says which.
503
Tracked Artists API

Stop tracking an artist

DELETEhttps://tokchart.com/api/v1/tiktok/audio/tracked-artists/{spotifyArtistId}

Requires the Track artists and read their TikTok sounds permission.

Parameters

NameInTypeDescription
spotifyArtistIdrequired path string

The 22-character Spotify artist ID of a tracked artist.

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
Tracked Artists API

List a tracked artist's tracks

GEThttps://tokchart.com/api/v1/tiktok/audio/tracked-artists/{spotifyArtistId}/tracks

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

NameInTypeDescription
spotifyArtistIdrequired path string

The 22-character Spotify artist ID of a tracked artist.

cursor query string

The next_cursor value from the previous page.

limit query integer

Maximum number of tracks per page, from 1 to 500.

Default 100

Response

200application/json ยท example
{
    "artist": {
        "spotify_uri": "spotify:artist:790FomKkXshlbRYZFtlgla",
        "name": "Example artist",
        "spotify_id": "790FomKkXshlbRYZFtlgla",
        "tracked_since": "2026-09-28T10:00:00Z",
        "refresh": {
            "status": "active",
            "refreshed_sounds": 2310,
            "synced_at": "2026-09-29T02:30:00Z"
        }
    },
    "tracks": [
        {
            "track_id": "1fed0d6b-55bf-5e9e-b0b1-c765d3270258",
            "spotify_uri": "spotify:track:0DWdj2oZMBFSzRsi2Cvfzf",
            "title": "Example track",
            "artists": [
                {
                    "spotify_uri": "spotify:artist:790FomKkXshlbRYZFtlgla",
                    "name": "Example artist",
                    "spotify_id": "790FomKkXshlbRYZFtlgla"
                }
            ],
            "spotify_track_id": "0DWdj2oZMBFSzRsi2Cvfzf",
            "isrc": "USRC17607839",
            "release_date": "2023-02-24",
            "label": "Example label",
            "sounds_count": 259,
            "ugc_videos_total": 6370062,
            "match_source": "listing"
        }
    ],
    "next_cursor": "eyJvIjoxMDB9",
    "meta": {
        "total_tracks": 163
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404The artist was resolvable when tracked; keep answering with the tracking state rather than a misleading empty catalog.
422A parameter is missing or not valid. The response says which.
Tracked Artists API

Get a track's TikTok sounds

GEThttps://tokchart.com/api/v1/tiktok/audio/tracks/{trackId}/sounds

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.

Parameters

NameInTypeDescription
trackIdrequired path string

The track_id from the tracked artist tracks list.

cursor query string

The next_cursor value from the previous page.

limit query integer

Maximum number of sounds per page, from 1 to 250.

Default 100

Response

200application/json ยท example
{
    "track": {
        "track_id": "1fed0d6b-55bf-5e9e-b0b1-c765d3270258",
        "spotify_uri": "spotify:track:0DWdj2oZMBFSzRsi2Cvfzf",
        "title": "Example track",
        "artists": [
            {
                "spotify_uri": "spotify:artist:790FomKkXshlbRYZFtlgla",
                "name": "Example artist",
                "spotify_id": "790FomKkXshlbRYZFtlgla"
            }
        ],
        "spotify_track_id": "0DWdj2oZMBFSzRsi2Cvfzf",
        "isrc": "USRC17607839",
        "release_date": "2023-02-24",
        "label": "Example label",
        "sounds_count": 259,
        "ugc_videos_total": 6370062,
        "ugc_videos_per_day": [
            {
                "date": "2026-10-01",
                "count": 12500
            },
            {
                "date": "2026-10-02",
                "count": null
            }
        ]
    },
    "sounds": [
        {
            "sound_id": "7200995956416841729",
            "url": "https://www.tiktok.com/music/sound-7200995956416841729",
            "title": "Example track",
            "author": "Example artist",
            "content_type": "music",
            "is_catalog": true,
            "cover_url": "https://p16-sign.tiktokcdn-us.com/example.jpeg",
            "audio_url": "https://sf16-music.tiktokcdn-us.com/example",
            "uploaded_at": "2023-02-17T05:42:32Z",
            "is_removed": false,
            "stats": {
                "ugc_videos_total": 1823417,
                "views_total": 4219455439,
                "likes_total": 276015683,
                "comments_total": 2258827,
                "shares_total": 18740439,
                "engagement_rate": 0.073605,
                "updated_at": "2026-09-27T16:37:24Z",
                "metrics_updated_at": "2026-09-26T11:05:16Z"
            }
        }
    ],
    "next_cursor": "eyJvIjoxMDB9",
    "meta": {
        "total_sounds": 259,
        "metrics_basis": "observed_videos"
    }
}

Errors

StatusWhen
401The token is missing, revoked or expired.
404Nothing was found for the id in the URL.
422A 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

NameInTypeDescription
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.

Default "followers"
limit query integer

Maximum creators to return (1-100).

Default 100

Response

200application/json ยท example
{
    "country": "US",
    "genre_key": "hip-hop-rap",
    "genre": "Hip-Hop/Rap",
    "days": 30,
    "sort": "followers",
    "limit": 100,
    "items": [
        {
            "account_id": 123456789,
            "username": "creator",
            "name": "Creator Name",
            "bio": "Music creator",
            "profile_url": "https://www.tiktok.com/@creator",
            "followers_count": 250000,
            "followers_captured_at": "2026-08-24T08:30:00Z",
            "matching_posts_count": 3,
            "latest_matching_post_at": "2026-08-23T12:00:00Z",
            "posts": [
                {
                    "video_id": 987654321,
                    "url": "https://www.tiktok.com/@creator/video/987654321",
                    "description": "New track",
                    "uploaded_at": "2026-08-23T12:00:00Z",
                    "sound": {
                        "sound_id": 456789,
                        "title": "Track",
                        "artist": "Artist One, Artist Two",
                        "genre_key": "hip-hop-rap"
                    }
                }
            ]
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
TikTok Creators API

Search creators by hashtag or topic

GEThttps://tokchart.com/api/v1/tiktok/creators/search

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

NameInTypeDescription
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.

Default 1
limit query integer

Maximum creators per page (1-100).

Default 50

Response

200application/json ยท example
{
    "hashtag": "skincare",
    "sort": "relevance",
    "page": 1,
    "limit": 50,
    "has_more": true,
    "items": [
        {
            "account_id": 123456789,
            "username": "creator",
            "name": "Creator Name",
            "bio": "Skincare routines for sensitive skin",
            "profile_url": "https://www.tiktok.com/@creator",
            "followers_count": 250000,
            "median_views": 48000,
            "engagement_rate": 0.062,
            "country": "US",
            "language": "en",
            "category": "Beauty & Personal Care",
            "topics": [
                "korean skincare",
                "sensitive skin care"
            ],
            "matched_by": [
                "hashtag"
            ],
            "matching_posts_count": 24,
            "share_of_posts": 0.6,
            "latest_matching_post_at": "2026-08-23T12:00:00Z",
            "posts": [
                {
                    "video_id": 987654321,
                    "url": "https://www.tiktok.com/@creator/video/987654321",
                    "description": "My morning routine #skincare",
                    "uploaded_at": "2026-08-23T12:00:00Z"
                }
            ]
        }
    ]
}

Errors

StatusWhen
401The token is missing, revoked or expired.
tokchart