TikTok Demographics API: Analyze Audience Composition
Understanding who watches a TikTok creator's content is crucial for influencer marketing, advertising, and content strategy. This guide shows you how to extract audience demographics using the SociaVault API.
Why You Need Audience Demographics
Demographic data helps you:
- Verify Audience Fit - Ensure creator audiences match your target customers
- Price Negotiations - Justify rates based on audience quality
- Campaign Planning - Create content that resonates with specific demographics
- ROI Prediction - Estimate conversion potential before campaigns
- Competitive Analysis - Compare audience compositions across creators
What Demographic Data Is Available?
The Demographics API returns:
| Data Point | Description |
|---|---|
| Country | Country name of audience members |
| Country Code | ISO country code (e.g., MX, US, BR) |
| Count | Number of audience members from that country |
| Percentage | Share of total audience from that country |
Note: This endpoint currently provides audience geographic distribution (countries). It costs 26 credits per request.
Using the Demographics API
const response = await fetch('https://api.sociavault.com/v1/scrape/tiktok/demographics?handle=shakira', {
headers: {
'x-api-key': 'YOUR_API_KEY'
}
});
const demographics = await response.json();
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
handle | string | Yes | TikTok handle |
Sample Response
{
"success": true,
"audienceLocations": [
{ "country": "Mexico", "countryCode": "MX", "count": 83, "percentage": "15.96%" },
{ "country": "United States", "countryCode": "US", "count": 72, "percentage": "13.85%" },
{ "country": "Brazil", "countryCode": "BR", "count": 58, "percentage": "11.15%" },
{ "country": "Colombia", "countryCode": "CO", "count": 41, "percentage": "7.88%" },
{ "country": "Argentina", "countryCode": "AR", "count": 35, "percentage": "6.73%" }
]
}
Practical Use Cases
Audience-Brand Fit Scoring
Calculate how well a creator's audience geography matches your target markets:
function calculateGeoFitScore(audienceLocations, targetCountries) {
// targetCountries: { 'US': 50, 'MX': 20, 'BR': 15, ... } (desired % weights)
let score = 0;
for (const loc of audienceLocations) {
const targetWeight = targetCountries[loc.countryCode] || 0;
const actual = parseFloat(loc.percentage);
// Higher score when audience % matches target weight
score += Math.min(actual, targetWeight);
}
return score; // Max 100 if perfect match
}
Compare Multiple Creators
Analyze geographic reach across creators to find the best fit:
const creators = ['creator1', 'creator2', 'creator3'];
const comparisons = await Promise.all(
creators.map(async handle => {
const res = await fetch(`https://api.sociavault.com/v1/scrape/tiktok/demographics?handle=${handle}`, {
headers: { 'x-api-key': 'YOUR_API_KEY' }
});
const data = await res.json();
const usAudience = data.audienceLocations.find(l => l.countryCode === 'US');
return {
handle,
usPercentage: usAudience ? parseFloat(usAudience.percentage) : 0,
topCountry: data.audienceLocations[0]?.country,
totalCountries: data.audienceLocations.length
};
})
);
// Sort by US audience percentage
comparisons.sort((a, b) => b.usPercentage - a.usPercentage);
Regional Campaign Planning
Group creators by their strongest region:
function groupByTopRegion(audienceLocations) {
const regionMap = {
US: 'North America', CA: 'North America', MX: 'Latin America',
BR: 'Latin America', CO: 'Latin America', AR: 'Latin America',
GB: 'Europe', DE: 'Europe', FR: 'Europe', ES: 'Europe',
IN: 'Asia', JP: 'Asia', KR: 'Asia', PH: 'Asia'
};
const regionTotals = {};
for (const loc of audienceLocations) {
const region = regionMap[loc.countryCode] || 'Other';
regionTotals[region] = (regionTotals[region] || 0) + parseFloat(loc.percentage);
}
return Object.entries(regionTotals)
.sort((a, b) => b[1] - a[1])
.map(([region, pct]) => ({ region, percentage: pct.toFixed(1) + '%' }));
}
## Combine with Other Endpoints
Demographics work best combined with:
- [TikTok Profile Scraper](/blog/tiktok-profile-scraper-api) - Base follower metrics
- [TikTok Videos Scraper](/blog/tiktok-videos-scraper-api) - Content performance
- [TikTok Followers List](/blog/tiktok-followers-scraper-api) - Individual follower data
## Frequently Asked Questions
### How is demographic data calculated?
Demographics are derived from analyzing a sample of the creator's engaged audience (viewers, commenters, likers) to determine their geographic distribution.
### What demographic data is available?
Currently, the demographics endpoint provides **audience country distribution** — showing which countries the creator's audience comes from, with counts and percentages. Each location includes country name, ISO country code, count, and percentage.
### Can I get demographics for any account?
Demographics are available for public accounts with sufficient engagement data. Very new or inactive accounts may have limited demographic information.
### How often is demographic data updated?
Demographic data is refreshed periodically to reflect audience changes. Request fresh data anytime—you'll always get the latest available insights.
### Is this better than TikTok's official analytics?
TikTok's native analytics are only available to account owners. SociaVault provides third-party demographic analysis for any public profile, essential for brands evaluating potential partners.
## Start Analyzing TikTok Demographics
[Get your API key](https://sociavault.com/signup) and start making data-driven influencer decisions.
Full documentation: [/docs/api-reference/tiktok/demographics](https://docs.sociavault.com/api-reference/tiktok/demographics)
Found this helpful?
Share it with others who might benefit
Ready to Try SociaVault?
Start extracting social media data with our powerful API. No credit card required.