The Problem
Influencer marketing teams cannot see which creators share audiences or which accounts act as connectors between communities. This leads to redundant campaign spend and missed micro-community targeting.
The Scavio Solution
Use follower and following endpoints to build network graphs. Find shared followers between creators, identify connector accounts followed by multiple niche creators, and discover micro-communities.
Before
Before network analysis, an agency booked 5 TikTok creators for a campaign. Post-analysis: 3 of them shared 30% of their audience. Effective unique reach was 55% of projected.
After
After implementing follower graph analysis, the agency checks audience overlap between finalist creators before booking. 200 followers sampled per creator at $0.05 each. Overlap analysis for 5 creators: $1.25. They select creators with <10% overlap, achieving 92% unique reach.
Who It Is For
Influencer marketing agencies, brand partnership teams, community researchers, and social network analysts.
Key Benefits
- Map creator networks for $0.05/creator (200 follower sample)
- Detect audience overlap before campaign spend
- Find connector accounts linking niche communities
- Identify micro-communities through shared follow patterns
- Fraud detection via follower quality analysis
Python Example
import requests, os
from collections import Counter
H = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}', 'Content-Type': 'application/json'}
def get_following_network(usernames):
following_counts = Counter()
for username in usernames:
p = requests.post('https://api.scavio.dev/api/v1/tiktok/profile',
headers=H, json={'username': username}).json()
uid = p['data']['user']['sec_uid']
params = {'sec_user_id': uid, 'count': 20}
for _ in range(5):
data = requests.post('https://api.scavio.dev/api/v1/tiktok/user/followings',
headers=H, json=params).json()['data']
for f in data.get('followings', []):
following_counts[f['unique_id']] += 1
if not data.get('has_more'): break
params['page_token'] = data['next_page_token']
params['min_time'] = data['min_time']
connectors = [(u, c) for u, c in following_counts.most_common(20) if c >= 2]
return connectors
connectors = get_following_network(['creator_a', 'creator_b', 'creator_c'])
for user, count in connectors:
print(f'@{user}: followed by {count}/3 creators')JavaScript Example
const H = {'Authorization': `Bearer ${process.env.SCAVIO_API_KEY}`, 'Content-Type': 'application/json'};
async function getFollowingNetwork(usernames) {
const counts = {};
for (const username of usernames) {
const p = await fetch('https://api.scavio.dev/api/v1/tiktok/profile', {
method: 'POST', headers: H, body: JSON.stringify({username})
}).then(r => r.json());
let params = {sec_user_id: p.data.user.sec_uid, count: 20};
for (let i = 0; i < 5; i++) {
const r = await fetch('https://api.scavio.dev/api/v1/tiktok/user/followings', {
method: 'POST', headers: H, body: JSON.stringify(params)
}).then(r => r.json());
(r.data.followings || []).forEach(f => counts[f.unique_id] = (counts[f.unique_id] || 0) + 1);
if (!r.data.has_more) break;
params.page_token = r.data.next_page_token;
params.min_time = r.data.min_time;
}
}
return Object.entries(counts).filter(([, c]) => c >= 2).sort((a, b) => b[1] - a[1]);
}
getFollowingNetwork(['creator_a', 'creator_b']).then(c => c.forEach(([u, n]) => console.log(`@${u}: ${n} connections`)));Platforms Used
TikTok
Trending video, creator, and product discovery