tiktokuser-searchcreator-sourcing

TikTok User Search API: Find Creators by Niche Keywords

Search TikTok users by keyword via API. Filter creators by follower count, niche, and engagement. Build outreach lists of 100+ creators in minutes.

5 min read

Scavio TikTok user search returns creator profiles matching any keyword at 1 credit per page of up to 30 results. Each result includes username, follower count, sec_user_id, and bio text for immediate filtering without additional API calls.

How User Search Works

The /api/v1/tiktok/search/users endpoint matches your keyword against TikTok usernames, display names, and bios. Results are paginated with a cursor. Each result object contains enough metadata (follower count, username, sec_uid) to filter candidates before making profile or posts calls.

Basic User Search

Python
import requests, os

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

def search_users(keyword, pages=3, count=30):
    all_users = []
    cursor = "0"
    for _ in range(pages):
        resp = requests.post(f"{BASE}/api/v1/tiktok/search/users",
            headers=HEADERS,
            json={"keyword": keyword, "cursor": cursor, "count": count})
        data = resp.json()["data"]
        for u in data.get("user_list", []):
            info = u["user_info"]
            all_users.append({
                "username": info["unique_id"],
                "name": info.get("nickname", ""),
                "followers": info.get("follower_count", 0),
                "sec_uid": info["sec_uid"],
                "bio": info.get("signature", ""),
            })
        if not data.get("has_more"):
            break
        cursor = str(data.get("cursor", "0"))
    return all_users

users = search_users("vegan recipes")
print(f"Found {len(users)} users for 'vegan recipes'")
for u in users[:5]:
    print(f"  @{u['username']} | {u['followers']:,} followers | {u['bio'][:60]}")

Filtering by Follower Tier

Python
def categorize_by_tier(users):
    tiers = {
        "nano": [],      # 1K-10K
        "micro": [],     # 10K-100K
        "mid": [],       # 100K-1M
        "macro": [],     # 1M+
    }
    for u in users:
        f = u["followers"]
        if f >= 1_000_000:
            tiers["macro"].append(u)
        elif f >= 100_000:
            tiers["mid"].append(u)
        elif f >= 10_000:
            tiers["micro"].append(u)
        elif f >= 1_000:
            tiers["nano"].append(u)
    return tiers

tiers = categorize_by_tier(users)
for tier, creators in tiers.items():
    print(f"{tier}: {len(creators)} creators")

Multi-Keyword Discovery

Python
def multi_keyword_search(keywords, min_followers=5000):
    all_creators = {}
    for kw in keywords:
        results = search_users(kw, pages=2)
        for u in results:
            if u["followers"] >= min_followers and u["username"] not in all_creators:
                all_creators[u["username"]] = {**u, "matched_keywords": [kw]}
            elif u["username"] in all_creators:
                all_creators[u["username"]]["matched_keywords"].append(kw)

    # Creators matching multiple keywords are more relevant
    ranked = sorted(all_creators.values(),
                    key=lambda x: len(x["matched_keywords"]), reverse=True)
    return ranked

niche_keywords = ["plant based", "vegan meal prep", "vegan fitness",
                  "whole food plant based"]
creators = multi_keyword_search(niche_keywords)
for c in creators[:10]:
    kws = ", ".join(c["matched_keywords"])
    print(f"@{c['username']} | {c['followers']:,} | matched: {kws}")

Cost

Searching 4 keywords at 2 pages each costs 8 credits ($0.04). Running weekly for ongoing creator scouting costs $0.16/month. The search step is the cheapest part; enrichment (profile + posts calls) for shortlisted candidates adds 2-3 credits per creator.