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.
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
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
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
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.