ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. Detect Fake TikTok Followers with the TikTok API
Tutorial

Detect Fake TikTok Followers with the TikTok API

Sample your follower graph via the TikTok API and score authenticity. Find the inactive and bought accounts dragging down reach. Code included.

Get Free API KeyAPI Docs

A follower count of 100k that gets almost nobody into a live stream usually means a lot of those followers are inactive or bought, and you can estimate how many by sampling the follower graph. This walks through pulling a sample of your own followers with the TikTok API, scoring each on a few authenticity signals, and getting a rough percentage of low-quality accounts. It is the seller's version of the vetting brands run on creators before a deal. Two honest caveats. This is a sampled estimate, not a certified audit; TikTok does not expose every follower, and a low score is a signal, not proof. And no single signal is decisive, an empty profile can be a lurker. Score on several signals together. Each TikTok endpoint is 1 credit on Scavio ($0.005).

Prerequisites

  • A Scavio API key (TikTok endpoints are 1 credit each)
  • Python 3.10+ with requests
  • The username of the account you want to audit

Walkthrough

Step 1: Resolve the username to a sec_uid

Every follower and posts call keys off sec_uid, not the username. Pull the profile first; it also gives you the follower_count you will sample against.

Python
import os, requests

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

# step 1: username -> sec_uid
prof = requests.post(f"{BASE}/api/v1/tiktok/profile", headers=H, json={"username": "yourshop"}).json()
user = prof["data"]["user"]
sec_uid = user["sec_uid"]
print(user["follower_count"], user["heart_count"], user["video_count"])

Step 2: Page through a sample of followers

The followers endpoint uses page_token plus min_time paging: both values come back in the response and both must be passed together on the next call. Pull a few pages for a representative sample rather than the whole graph.

Python
followers, page_token, min_time = [], None, None
for _ in range(5):  # 5 pages is a reasonable sample
    body = {"sec_user_id": sec_uid, "count": 50}
    if page_token: body["page_token"] = page_token
    if min_time: body["min_time"] = min_time
    res = requests.post(f"{BASE}/api/v1/tiktok/user/followers", headers=H, json=body).json()
    data = res["data"]
    followers += data["followers"]
    if not data.get("has_more"): break
    page_token, min_time = data["next_page_token"], data["min_time"]

Step 3: Score each sampled follower

Flag the cheap signals of a throwaway or bought account: no avatar, empty bio, zero posts, and a following count wildly higher than followers. None is decisive alone; two or more together is a strong low-quality signal.

Python
def low_quality(u):
    signals = 0
    if not u.get("avatar"): signals += 1
    if not u.get("signature"): signals += 1        # empty bio
    if u.get("video_count", 0) == 0: signals += 1
    if u.get("following_count", 0) > 20 * max(u.get("follower_count", 0), 1): signals += 1
    return signals >= 2

flagged = [u for u in followers if low_quality(u)]
pct = round(100 * len(flagged) / max(len(followers), 1), 1)
print(f"Sampled {len(followers)} followers; {pct}% look inactive or fake")

Python Example

Python
import os, requests

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

# step 1: username -> sec_uid
prof = requests.post(f"{BASE}/api/v1/tiktok/profile", headers=H, json={"username": "yourshop"}).json()
user = prof["data"]["user"]
sec_uid = user["sec_uid"]
print(user["follower_count"], user["heart_count"], user["video_count"])

JavaScript Example

JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
const base = "https://api.scavio.dev";
const prof = await (await fetch(`${base}/api/v1/tiktok/profile`, {
  method: "POST", headers: H, body: JSON.stringify({ username: "yourshop" }),
})).json();
const secUid = prof.data.user.sec_uid;
// then page /api/v1/tiktok/user/followers with next_page_token + min_time

Expected Output

JSON
The profile call returns follower_count and sec_uid. Each followers page returns up to 50 follower objects plus next_page_token and min_time. The scoring step prints an estimated percentage of low-quality accounts across your sample, a directional read on why reach and live viewership lag your follower count.

Related Tutorials

  • How to Vet TikTok Creators Before Sponsorship with an API Checklist
  • How to Build a TikTok Influencer Vetting Workflow
  • How to Map TikTok Creator Networks

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

A Scavio API key (TikTok endpoints are 1 credit each). Python 3.10+ with requests. The username of the account you want to audit. A Scavio API key gives you 50 free credits on signup.

Yes. The free tier includes 50 credits on signup, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best TikTok Influencer Audience Quality Tools (2026)

Read more
Best Of

Best TikTok Hashtag Analytics APIs (2026)

Read more
Glossary

TikTok Unofficial API

Read more
Use Case

TikTok Product Trend Detection for E-commerce

Read more
Workflow

TikTok Influencer Vetting Daily

Read more
Comparison

TikTok Proxy Scraping vs TikTok Third-Party API (Scavio, TikAPI)

Read more

Start Building

Sample your follower graph via the TikTok API and score authenticity. Find the inactive and bought accounts dragging down reach. Code included.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy