The Problem
Brands running influencer campaigns on TikTok cannot vet creator content at scale. Before paying a creator $5K+ for a sponsored post, the brand needs to check recent content for controversial topics, competitor mentions, and audience quality. Manually reviewing 50 videos per creator across 20 potential partners takes days. Existing brand safety tools focus on YouTube and Instagram, leaving TikTok as a blind spot.
The Scavio Solution
Build a TikTok brand safety scanner using Scavio's TikTok API endpoints. Profile endpoint checks bio, follower counts, and verification. User/posts endpoint retrieves recent videos for content screening. Video/comments endpoint samples audience sentiment. Search/videos checks for competitor brand mentions. Output a safety scorecard per creator before campaign commitment.
Before
Before the scanner, the brand team manually reviewed creator profiles, watching 10-15 recent videos per candidate. Vetting 20 potential creators took a full week. Two creators passed manual review but had controversial content in older posts that the team missed.
After
After deploying the scanner, 20 creators are vetted in under 2 hours. The automated scan catches controversial content patterns, competitor mentions, and engagement anomalies. False passes dropped to near zero because the scanner checks the full recent post history.
Who It Is For
Brand marketing teams vetting TikTok creators for influencer campaigns. Influencer marketing agencies that need scalable creator safety screening. Brand safety officers responsible for social media risk management.
Key Benefits
- Vet 20 TikTok creators in 2 hours instead of a full week
- Automated content screening for controversial topics and competitor mentions
- Engagement anomaly detection flags potential bot followers
- Comment sentiment sampling checks audience quality
- Safety scorecard output per creator for stakeholder review
Python Example
import requests
from datetime import datetime
API_KEY = "your_scavio_api_key"
TIKTOK_URL = "https://api.scavio.dev/api/v1/tiktok"
def vet_creator(username: str, brand_competitors: list[str]) -> dict:
# Get profile
profile = requests.post(f"{TIKTOK_URL}/profile", headers={"Authorization": f"Bearer {API_KEY}"}, json={"username": username}, timeout=15).json()
# Get recent posts
posts = requests.post(f"{TIKTOK_URL}/user/posts", headers={"Authorization": f"Bearer {API_KEY}"}, json={"username": username}, timeout=15).json().get("videos", [])
# Check for competitor mentions
competitor_mentions = []
for video in posts:
desc = (video.get("description", "") or "").lower()
for comp in brand_competitors:
if comp.lower() in desc:
competitor_mentions.append({"video_id": video.get("id"), "competitor": comp})
# Engagement rate
total_views = sum(v.get("play_count", 0) for v in posts)
total_likes = sum(v.get("digg_count", 0) for v in posts)
eng_rate = (total_likes / total_views * 100) if total_views > 0 else 0
return {
"username": username,
"followers": profile.get("followers", 0),
"verified": profile.get("verified", False),
"recent_posts": len(posts),
"engagement_rate": round(eng_rate, 2),
"competitor_mentions": competitor_mentions,
"safety_score": "pass" if not competitor_mentions and eng_rate > 1.0 else "review",
"vetted_at": datetime.utcnow().isoformat(),
}
result = vet_creator("creator_handle", ["competitor_brand_1", "competitor_brand_2"])
print(f"@{result['username']}: {result['safety_score']} (engagement: {result['engagement_rate']}%, competitors: {len(result['competitor_mentions'])})")JavaScript Example
const API_KEY = "your_scavio_api_key";
const T = "https://api.scavio.dev/api/v1/tiktok";
async function vetCreator(username, competitors) {
const h = { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" };
const [profile, postsRes] = await Promise.all([
fetch(`${T}/profile`, { method: "POST", headers: h, body: JSON.stringify({ username }) }).then((r) => r.json()),
fetch(`${T}/user/posts`, { method: "POST", headers: h, body: JSON.stringify({ username }) }).then((r) => r.json()),
]);
const videos = postsRes.videos ?? [];
const mentions = [];
for (const v of videos) for (const c of competitors) if ((v.description ?? "").toLowerCase().includes(c.toLowerCase())) mentions.push({ video: v.id, competitor: c });
const views = videos.reduce((s, v) => s + (v.play_count ?? 0), 0);
const likes = videos.reduce((s, v) => s + (v.digg_count ?? 0), 0);
return { username, followers: profile.followers ?? 0, engagement: views > 0 ? (likes / views * 100).toFixed(2) : "0", competitorMentions: mentions.length, score: mentions.length === 0 ? "pass" : "review" };
}
const r = await vetCreator("creator_handle", ["brand_a", "brand_b"]);
console.log(`@${r.username}: ${r.score} (${r.engagement}% engagement, ${r.competitorMentions} competitor mentions)`);Platforms Used
TikTok
Trending video, creator, and product discovery