The Problem
Brands are mentioned in TikTok video comments thousands of times daily, but there is no native way to monitor these mentions. The TikTok app shows comments per video, not per brand. Listening tools like Brandwatch and Sprout Social charge $500+/mo and still have limited TikTok comment coverage. Without monitoring, brands miss customer complaints, competitor comparisons, and organic endorsements happening in the fastest-growing social platform's comments section.
The Scavio Solution
Scavio's TikTok video/comments endpoint returns structured comment data that you can filter for brand mentions. Build a pipeline that searches for videos mentioning your brand, fetches their comments, and scans for specific keywords. The pipeline runs daily and surfaces brand mentions, sentiment signals, and competitor comparisons from comments that would otherwise be invisible. At 1 credit per request, monitoring 100 videos per day costs $0.50.
Before
Before Scavio, brand mentions in TikTok comments were invisible unless someone manually browsed videos. Social listening tools had limited TikTok comment coverage and cost $500+/mo.
After
After Scavio, a daily pipeline monitors TikTok comments for brand mentions across relevant videos. The team catches complaints, endorsements, and competitor comparisons within 24 hours at $0.50/day for 100 videos.
Who It Is For
Brand managers and social media teams who need to monitor TikTok comment mentions without paying $500+/mo for enterprise social listening tools. Anyone whose brand is discussed in TikTok comments but has no visibility into what is being said.
Key Benefits
- Structured comment data with text, likes, and timestamps
- Daily automated monitoring replaces manual video browsing
- Brand mention detection across thousands of comments
- Competitor comparison tracking in comment discussions
- 100 videos/day monitored for $0.50 vs $500+/mo for social listening tools
Python Example
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
BASE_URL = "https://api.scavio.dev/api/v1/tiktok"
BRAND_KEYWORDS = ["yourbrand", "your brand"]
def search_brand_videos(brand: str) -> list[dict]:
res = requests.post(
f"{BASE_URL}/search/videos",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": brand},
timeout=15,
)
res.raise_for_status()
return res.json().get("videos", [])
def get_comments(video_id: str) -> list[dict]:
res = requests.post(
f"{BASE_URL}/video/comments",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"video_id": video_id},
timeout=15,
)
res.raise_for_status()
return res.json().get("comments", [])
def monitor_brand_mentions() -> dict:
mentions = []
videos = search_brand_videos(BRAND_KEYWORDS[0])
for video in videos[:20]:
video_id = video.get("id", "")
if not video_id:
continue
comments = get_comments(video_id)
for comment in comments:
text = comment.get("text", "").lower()
for keyword in BRAND_KEYWORDS:
if keyword.lower() in text:
mentions.append({
"video_id": video_id,
"video_title": video.get("title", "")[:100],
"comment_text": comment.get("text", ""),
"comment_likes": comment.get("likes", 0),
"keyword_matched": keyword,
})
break
return {
"date": datetime.utcnow().strftime("%Y-%m-%d"),
"videos_checked": min(len(videos), 20),
"mentions_found": len(mentions),
"mentions": mentions,
}
result = monitor_brand_mentions()
Path(f"tiktok_mentions_{result['date']}.json").write_text(json.dumps(result, indent=2))
print(f"Checked {result['videos_checked']} videos, found {result['mentions_found']} brand mentions")JavaScript Example
const API_KEY = "your_scavio_api_key";
const BASE_URL = "https://api.scavio.dev/api/v1/tiktok";
const BRAND_KEYWORDS = ["yourbrand", "your brand"];
async function searchBrandVideos(brand) {
const res = await fetch(`${BASE_URL}/search/videos`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ query: brand }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return (await res.json()).videos ?? [];
}
async function getComments(videoId) {
const res = await fetch(`${BASE_URL}/video/comments`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ video_id: videoId }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return (await res.json()).comments ?? [];
}
async function monitorMentions() {
const videos = await searchBrandVideos(BRAND_KEYWORDS[0]);
const mentions = [];
for (const video of videos.slice(0, 20)) {
const comments = await getComments(video.id ?? "");
for (const c of comments) {
const text = (c.text ?? "").toLowerCase();
const match = BRAND_KEYWORDS.find((kw) => text.includes(kw.toLowerCase()));
if (match) mentions.push({ videoId: video.id, videoTitle: (video.title ?? "").slice(0, 100), commentText: c.text ?? "", commentLikes: c.likes ?? 0, keywordMatched: match });
}
}
console.log(`Checked ${Math.min(videos.length, 20)} videos, found ${mentions.length} mentions`);
return mentions;
}
await monitorMentions();Platforms Used
TikTok
Trending video, creator, and product discovery