Every count
Followers and following as plain numbers, such as 162.9M followers on the sample.
Popular platforms
By use case
Start building
The country TikTok recorded for an account's newest video, as a two-letter code in location and extra.region, with the account's name, avatar and counts.
100 free credits. No card needed.
Followers and following as plain numbers, such as 162.9M followers on the sample.
The place as TikTok shows it, such as US.
Links to the profile picture.
A link to the profile on TikTok.
Whether the account is verified or private.
What kind of account it is, such as creator.
The handle, such as khaby.lame.
The display name, such as Khabane lame.
The bio as written.
Get a two-letter country for each account, US for the sample, and group a creator roster by where its newest videos were posted from.
US
newest_video
khaby.lame
A roster meant for one country can be checked against where each creator's newest video was recorded, then confirmed with the creator before money moves.
Creator vettingUS
false
true
extra.region_video_id and extra.region_video_url name the video the country came from, and extra.region_video_published_at says when it went up, so you can judge how current the answer is.
7704740944427388191
2026-11-05
Sign up and get 100 free credits. No card needed.
Pass handle (khaby.lame).
One profile comes back in data.
1curl -G "https://api.socialscrape.dev/v1/tiktok/profile/region" \2 -d handle=khaby.lame \3 -H "x-api-key: $SOCIALSCRAPE_API_KEY"1import requests2 3r = requests.get(4 "https://api.socialscrape.dev/v1/tiktok/profile/region",5 params={"handle": "khaby.lame"},6 headers={"x-api-key": KEY},7)8profile = r.json()["data"]1const url = new URL("https://api.socialscrape.dev/v1/tiktok/profile/region");2url.searchParams.set("handle", "khaby.lame");3 4const res = await fetch(url, {5 headers: { "x-api-key": KEY },6});7const { data } = await res.json();{ "ok": true, "credits_charged": 1, "data": { "name": "Khabane lame", "handle": "khaby.lame", "stats": { "followers": 162900000, "following": 82 }, "location": "US", "url": "https://www.tiktok.com/@khaby.lame", "kind": "creator", "bio": "Se vuoi ridere sei nel posto...", ... } }
Ask your agent for TikTok profile region in plain words, and the SocialScrape MCP server makes the call.
Set up the MCP serverTikTok profile region, given a handle.
1 credit a call; a repeat within 1 days is free.
Your key stays in your agent's settings.
18,000 credits a month
50,000 credits a month
150,000 credits a month
$27/mo
$73/mo
$209/mo
Over 1M credits a month? Talk to us. Or see full pricing.
No. It is the country TikTok recorded for the account's newest video, and extra.region_is_account_registration is false to say so. A creator who travels, or posts through a VPN, can show another country.
The next two videos are tried. An account with no videos, or none that carries a country, answers not_found, and a private account answers private, neither of them charged.
No, this call takes handle only, with or without the leading @.
It describes that one video, not the account: it is not the country the account registered with and may not be where the person lives, and a creator who travels, or posts through a VPN, can show another country (extra.region_source is newest_video, extra.region_video_id names the video). If the newest video has no country the next two are tried. An account with no videos, or none that carries a country, answers not_found; a private account answers private. Looked up by handle only. The profile has up to 20 fields, and the sample fills handle, name, url, kind, bio, avatar_url, verified and is_private and 2 more.
handle (required): Username, with or without the leading @.
invalid_params and not_found. None is charged, and the errors list says which to retry.
client.tiktok.profile_region(...) in Python and client.tiktok.profileRegion() in TypeScript.