TikTok Audience Demographics API: where the audience actually lives
Send a TikTok handle and get back the countries the creator's audience lives in, as percentage shares that add up to 100. Country split only, fetched live. Vet geo fit before you sign or pay. 40 credits, only charged on a match.

40
Credits per match
~$0.14-0.20 per creator
0
Credits on a miss
no data, no charge
26x
Upstream fetch vs a scrape
why this one costs more
Seconds
Typical first fetch
instant repeats for 7 days
What TikTok Audience Demographics gives you
The country split, normalized
Every matched profile returns a list of countries with the country name, its ISO code, and that country's percentage share of the audience, normalized so the shares add up to 100. ISO codes mean you can join the result straight onto your own market list without string-matching country names.
- Country name and ISO code
- Percentage share per country
- Shares normalized to 100
- Joins cleanly on ISO code
Catch the audience that lives elsewhere
The classic miss: an 'American lifestyle' creator whose audience turns out to be 80% outside the United States. Follower count and content language do not tell you where the viewers live. This lookup does, before the contract is signed instead of after the campaign lands nowhere.
- Independent of the media kit
- Runs before money moves
- One number settles geo fit
- Zero credits when data is missing
Price on in-market share, not follower count
A creator with 500,000 followers and 30% of them in your market reaches fewer buyers than one with 400,000 at 70%. Multiply followers by the in-market share and price the sponsorship on that number instead of the raw total.
- Followers x in-market share
- Compare creators on one number
- Defensible pricing in negotiations
- Re-check quarterly as audiences shift
Country split only, by design
The response includes genders and age_bands fields so the shape will not change later, but both ship as empty arrays today. Countries are the only breakdown returned, and it is aggregate by design: percentage shares per country, never data about an individual follower.
- Countries only today
- genders[] ships empty
- age_bands[] ships empty
- Aggregate shares, not follower data
Only charged on a match
Unknown handle, a profile with no audience data, or an upstream error: zero credits. You pay the 40 credits only when a country split actually comes back. On bulk roster files the rule applies per row, so dead and misspelled handles cost nothing.
- Zero credits on no match
- Zero credits on no data
- Zero credits on upstream errors
- Per-row on bulk jobs
About 14 to 20 cents per creator
40 credits per matched profile works out to roughly $0.20 on the Starter plan and $0.14 on Growth. It is our priciest social lookup because the upstream audience fetch costs about 26 times a standard profile scrape. Screening a 100-creator roster is still only about $14 to $20.
- 40 credits per match
- ~$0.14 per creator on Growth
- ~$0.20 per creator on Starter
- 100-creator roster: ~$14-20
Handle in, country split out
Send the handle
POST the TikTok handle, or paste the full profile URL and we reduce it to the handle for you. For rosters, upload a CSV with a single handle column and every row runs the same lookup.
$ POST /v1/audience-demographics
"handle": "maya.eats.atl"
> or paste the full profile URL
We fetch the audience live
First lookups run a live fetch of the creator's audience data, typically a few seconds, worst case a few minutes. Repeats on the same handle within 7 days return instantly from cache.
Handle resolved on TikTok
Audience data fetched live
Country shares normalized to 100
Seconds typical, 1-2 min worst
Read the split and decide
Country names, ISO codes and percentage shares land in one JSON payload. A matched profile bills 40 credits; a handle that resolves to nothing bills zero.
top countryUnited States
share62.4%
One endpoint. A TikTok handle or profile URL in, structured data out.
Same authentication, same credit balance, and the same response envelope as every other 1Lookup product. If you have already integrated one endpoint, this one is a URL change.
curl -X POST https://app.1lookup.io/api/v1/audience-demographics \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"handle": "maya.eats.atl"
}'{
"classification": {
"matched": true,
"platform": "tiktok",
"handle": "maya.eats.atl",
"top_country": "United States"
},
"insights": {
"audience_demographics_result": {
"handle": "maya.eats.atl",
"countries": [
{ "label": "United States", "code": "US", "percentage": 62.4 },
{ "label": "United Kingdom", "code": "GB", "percentage": 8.1 },
{ "label": "Canada", "code": "CA", "percentage": 7.3 },
{ "label": "Australia", "code": "AU", "percentage": 4.2 },
{ "label": "Germany", "code": "DE", "percentage": 3.1 },
{ "label": "Philippines", "code": "PH", "percentage": 2.8 }
],
"genders": [],
"age_bands": []
}
},
"metadata": { "credits_used": 40, "cache_hit": false }
}One card answers the question the media kit dodges
A creator pitched for a US launch either shows a split like this or she does not. 62.4% United States backs the media kit and prices the deal; the same lookup on a creator whose audience mostly lives elsewhere kills it before the money moves, and a handle that resolves to nothing costs zero credits.
- Handle@maya.eats.atl
- Matchedtrue
- United States62.4%
- United Kingdom8.1%
- Canada7.3%
- Australia4.2%
- Germany3.1%
- Philippines2.8%
- All other countries12.1%
- Credits used40
{
"classification": {
"matched": true,
"platform": "tiktok",
"handle": "maya.eats.atl",
"top_country": "United States"
},
"insights": {
"audience_demographics_result": {
"handle": "maya.eats.atl",
"countries": [
{ "label": "United States", "code": "US", "percentage": 62.4 },
{ "label": "United Kingdom", "code": "GB", "percentage": 8.1 },
{ "label": "Canada", "code": "CA", "percentage": 7.3 },
{ "label": "Australia", "code": "AU", "percentage": 4.2 }
],
"genders": [],
"age_bands": []
}
},
"metadata": { "credits_used": 40 }
}Every field you get back
No hidden tiers. Every field below is returned on a successful lookup at the price shown above.
Identity
- handle
- matched
- exists
Country split
- countries[].label
- countries[].code
- countries[].percentage
Reserved, empty today
- genders[]
- age_bands[]
Billing
- credits_used
- cache_hit
Who uses TikTok Audience Demographics
Influencer platforms and agencies vetting geo fit
Before a creator gets signed for a client who sells in one market, run the handle and read the top-country share. A creator whose audience mostly lives outside that market gets caught in the vetting call, not in the campaign report.
Media buyers pricing sponsorships
Raw follower count overprices creators with the wrong geography. Multiply followers by the in-market percentage and negotiate on that: 500,000 followers at 30% in-market is a smaller buy than 400,000 at 70%, and now you have the number that proves it.
Fraud and misrepresentation checks
An 'American lifestyle' creator whose audience is 80% elsewhere is a real and common pattern. One 40-credit lookup settles the claim independently of anything the creator supplied, and if the handle is fake or the data is missing, the check costs nothing.
Roster screening and quarterly re-checks
Upload a CSV with one handle column and screen the whole roster in one job, about $14 to $20 per 100 creators that match. Audiences shift, so agencies re-run the file quarterly and catch the creator who no longer matches what the client is paying for.
Frequently asked questions
What does the TikTok Audience Demographics API return?
Give it a TikTok handle and it returns the countries the creator's audience lives in, as a list of country name, ISO code, and percentage share, normalized so the shares add up to 100. That is the whole product: an independent answer to the question every sponsorship hinges on, does this audience live where you sell. Age and gender fields exist in the response shape but ship as empty arrays today.
Does it return age or gender breakdowns?
No. The response includes genders and age_bands fields so the shape will not change later, but both ship as empty arrays today. Countries are the only breakdown returned. The data is aggregate by design: percentage shares per country, never facts about any individual follower. If country split answers your question, and for geo fit and sponsorship pricing it usually does, this is the product.
Am I charged when the handle does not exist?
No. The lookup is success-billed: an unknown handle, a profile with no audience data, or an upstream error all cost zero credits. You are only charged the 40 credits when a matched profile comes back with a country split. On bulk jobs the same rule applies per row, so a roster file full of dead or misspelled handles only bills for the rows that resolve.
How long does a lookup take?
A first-time lookup runs a live fetch of the creator's audience data, which typically takes a few seconds and in the worst case a few minutes. It is not a sub-second database read. Repeat lookups of the same handle within 7 days are served from cache and return instantly, so re-checking a roster you screened this week costs no waiting at all.
What does it cost in dollars, and why 40 credits?
40 credits per matched profile: about $0.20 on the Starter plan and $0.14 on Growth. Screening a 100-creator roster costs roughly $14 to $20, and handles that do not resolve cost nothing. It is priced above our standard profile checks because the upstream audience fetch costs about 26 times what a standard profile scrape does. Still a rounding error next to one mispriced sponsorship.
Can I screen a whole roster at once?
Yes. Upload a CSV with a single column of TikTok handles and every row runs through the same lookup. Success billing applies per row, so only the handles that resolve to a profile with audience data bill the 40 credits. Agencies typically screen the full roster once, then re-check quarterly, because audiences shift and a creator who was 60% in-market last year may not be now.
How do I use it to vet a creator before a campaign?
Run the handle before you sign. Compare the top-country share against the market the campaign targets: a creator pitched for a US launch whose audience is 62% United States is a fit, and an 'American lifestyle' creator whose audience turns out to be 80% elsewhere is a deal you just avoided. Media buyers also use the split to price offers on audience-in-market share instead of raw follower count.
Can I send a profile URL instead of a handle?
Yes. Send either the bare handle or the full TikTok profile URL; a URL is reduced to its handle before the lookup runs. That makes it safe to pipe in whatever a signup form, media kit, or spreadsheet contains without cleaning it first. The response echoes the handle back, so you can reconcile rows in bulk jobs.