tiktokinfluenceroverlap

TikTok Audience Overlap Analysis via API

Before spending $5K on an influencer, check audience overlap with existing partners. Follower endpoint sampling reveals redundant reach at $0.04/pair.

9 min

Before spending $5,000+ on a TikTok influencer partnership, check whether their audience overlaps with your existing creator partnerships. The TikTok followers and followings endpoints let you compare audience lists between creators to avoid paying twice for the same eyeballs. The analysis costs under $0.10 per creator pair.

Why Audience Overlap Matters

An agency managing three influencer partnerships in the skincare niche may discover that 40% of Creator B's followers already follow Creator A. That means 40% of the budget spent on Creator B reaches people who already saw the campaign through Creator A. Without overlap analysis, agencies unknowingly buy redundant reach.

The manual approach involves scrolling through follower lists on TikTok, which is impractical beyond a few hundred followers. The API approach samples follower lists programmatically and computes overlap percentages in seconds.

Fetching Creator Follower Data

Python
import os, requests

BASE = "https://api.scavio.dev/api/v1/tiktok"
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}

def get_sec_uid(username):
    res = requests.post(f"{BASE}/profile", headers=H,
        json={"username": username})
    data = res.json().get("data", {}).get("user", {})
    return data.get("sec_uid"), data.get("follower_count", 0)

def sample_followers(sec_uid, sample_size=200):
    followers = []
    page_token = None
    min_time = None
    while len(followers) < sample_size:
        payload = {"sec_user_id": sec_uid, "count": min(100, sample_size - len(followers))}
        if page_token:
            payload["page_token"] = page_token
            payload["min_time"] = min_time
        res = requests.post(f"{BASE}/user/followers", headers=H, json=payload)
        data = res.json().get("data", {})
        batch = data.get("followers", [])
        if not batch:
            break
        followers.extend([f.get("sec_uid") for f in batch])
        if not data.get("has_more"):
            break
        page_token = data.get("next_page_token")
        min_time = data.get("min_time")
    return set(followers)

uid_a, count_a = get_sec_uid("creator_a_username")
uid_b, count_b = get_sec_uid("creator_b_username")
print(f"Creator A: {count_a:,} followers")
print(f"Creator B: {count_b:,} followers")

Computing Overlap

Python
def compute_overlap(username_a, username_b, sample_size=200):
    uid_a, count_a = get_sec_uid(username_a)
    uid_b, count_b = get_sec_uid(username_b)

    if not uid_a or not uid_b:
        return {"error": "Could not resolve one or both usernames"}

    followers_a = sample_followers(uid_a, sample_size)
    followers_b = sample_followers(uid_b, sample_size)

    overlap = followers_a & followers_b
    overlap_pct_a = len(overlap) / len(followers_a) * 100 if followers_a else 0
    overlap_pct_b = len(overlap) / len(followers_b) * 100 if followers_b else 0

    return {
        "creator_a": {"username": username_a, "followers": count_a,
                       "sampled": len(followers_a)},
        "creator_b": {"username": username_b, "followers": count_b,
                       "sampled": len(followers_b)},
        "overlap_count": len(overlap),
        "overlap_pct_of_a": round(overlap_pct_a, 1),
        "overlap_pct_of_b": round(overlap_pct_b, 1),
    }

result = compute_overlap("skincare_creator_1", "skincare_creator_2")
print(f"Overlap: {result['overlap_count']} shared followers")
print(f"  {result['overlap_pct_of_a']}% of Creator A's sampled followers")
print(f"  {result['overlap_pct_of_b']}% of Creator B's sampled followers")

Sampling Limitations

The TikTok followers endpoint returns followers in reverse chronological order (most recent first). A 200-follower sample represents recent followers, not the complete audience. For creators with 500K+ followers, a 200-person sample captures the active, recent audience but may not represent the full follower base accurately.

For higher confidence: increase sample size to 500-1,000 followers (costs 5-10 credits per creator). For the highest confidence: sample at multiple time points across several days to capture different cohorts of the follower base.

Cost Breakdown

Per creator pair analysis: 2 profile lookups (2 credits) + 4-6 follower pagination requests (4-6 credits) = 6-8 credits = $0.030-$0.040. Analyzing 10 potential influencer partnerships costs under $0.40. This is negligible compared to the $50,000+ in campaign budget that overlap analysis protects.

TikAPI ($49/mo) and EnsembleData (credit-based) offer similar follower data. TikAPI's advantage is a flat monthly rate that suits high-volume agencies making hundreds of lookups. Scavio's advantage is pay-per-use pricing that suits agencies evaluating 5-20 creators per month where a subscription is overkill.

Beyond Overlap: Network Mapping

Extend the analysis by fetching who each creator follows (followings endpoint). Creators who follow each other likely collaborate or share audiences. Map the follow graph for 10-20 creators in a niche to identify clusters: groups of creators whose audiences overlap heavily. Partner with one creator per cluster for maximum unique reach.