The Problem
Brands commit $5K-50K to TikTok influencer campaigns based on follower counts and surface-level content review. Fake followers, engagement manipulation, and audience overlap between creators waste 20-40% of campaign budgets.
The Scavio Solution
Build an automated scoring pipeline that pulls creator profiles, recent posts, engagement metrics, and follower quality via Scavio TikTok API. Score creators on engagement rate, content consistency, and audience authenticity before committing budget.
Before
Brand selects 10 creators based on follower counts. 3 have fake followers, 2 have overlapping audiences. $20K of $50K budget wasted on low-quality reach.
After
Pipeline scores 50 candidates in 10 minutes for $7.50. Flags fake followers and audience overlap. Final 10 creators deliver 3x better ROI.
Who It Is For
Influencer marketing managers and agencies who need data-driven creator selection to maximize campaign ROI.
Key Benefits
- Score 50 creators for $7.50 (profile + posts per creator)
- Detect fake followers via engagement-to-follower ratio
- Flag audience overlap between creator candidates
- Engagement rate benchmarking against category average
- Content consistency analysis from recent post history
Python Example
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def score_creator(username: str) -> dict:
"""Score a TikTok creator for campaign suitability."""
# Fetch profile
profile_resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/profile",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={"username": username},
timeout=15,
)
profile = profile_resp.json()
stats = profile.get("user_info", {}).get("stats", {})
followers = stats.get("follower_count", 0)
likes = stats.get("heart_count", 0)
# Fetch recent posts
posts_resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/user-posts",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={"username": username},
timeout=15,
)
posts = posts_resp.json().get("videos", [])
avg_views = sum(v.get("stats", {}).get("play_count", 0) for v in posts) / max(len(posts), 1)
engagement_rate = avg_views / max(followers, 1)
return {
"username": username,
"followers": followers,
"avg_views": int(avg_views),
"engagement_rate": round(engagement_rate * 100, 2),
"score": "high" if engagement_rate > 0.05 else "medium" if engagement_rate > 0.02 else "low",
"posts_analyzed": len(posts),
}
creator = score_creator("examplecreator")
print(f"@{creator['username']}: {creator['followers']:,} followers, {creator['engagement_rate']}% engagement -> {creator['score']}")JavaScript Example
const H = {'Authorization': 'Bearer ' + process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function scoreCreator(username) {
const pr = await fetch('https://api.scavio.dev/api/v1/tiktok/profile', {method:'POST', headers:H, body:JSON.stringify({username})});
const p = await pr.json();
const followers = p.user_info?.stats?.follower_count||0;
const vr = await fetch('https://api.scavio.dev/api/v1/tiktok/user-posts', {method:'POST', headers:H, body:JSON.stringify({username})});
const v = await vr.json();
const avgViews = (v.videos||[]).reduce((s,v)=>s+(v.stats?.play_count||0),0)/Math.max((v.videos||[]).length,1);
const rate = avgViews/Math.max(followers,1);
return {username, followers, avgViews:Math.round(avgViews), engagementRate:(rate*100).toFixed(2), score:rate>0.05?'high':rate>0.02?'medium':'low'};
}
const c = await scoreCreator('examplecreator');
console.log('@'+c.username+': '+c.followers+' followers, '+c.engagementRate+'% engagement -> '+c.score);Platforms Used
TikTok
Trending video, creator, and product discovery