Overview
Product trends start on TikTok 2-4 weeks before demand appears on Amazon and Google Shopping. This weekly workflow searches TikTok for viral product videos, cross-references with Amazon product availability, and identifies supply-demand gaps. Total weekly cost: $5-10 depending on categories tracked.
Trigger
Weekly cron on Wednesday at 6 AM UTC.
Schedule
Weekly (Wednesday 6 AM UTC)
Workflow Steps
Search TikTok for Viral Product Content
Search TikTok for product-related hashtags and keywords in target categories. Filter for videos with high engagement relative to account size.
Extract Product Signals
From viral videos, extract product names, categories, and price points mentioned in descriptions.
Cross-Reference with Amazon
Search Amazon for each identified product trend. Check if products are already available, how many listings exist, and current pricing.
Check Google Shopping Demand
Search Google Shopping for the same products to gauge broader demand signals beyond Amazon.
Generate Trend Report
Rank trends by TikTok virality vs Amazon supply gap. Highlight products with high TikTok engagement but few Amazon listings.
Python Implementation
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
TT_H = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
SEARCH_H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
def detect_trends(category: str) -> list:
# Search TikTok
tt_resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/search",
headers=TT_H,
json={"query": f"{category} must have 2026", "type": "video"},
timeout=15,
)
tt_videos = tt_resp.json().get("videos", [])
# Get top trending products from viral videos
trends = []
for v in sorted(tt_videos, key=lambda x: x.get("stats", {}).get("play_count", 0), reverse=True)[:10]:
product_hint = v.get("desc", "")[:80]
# Cross-reference with Amazon
amz = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=SEARCH_H,
json={"query": product_hint, "platform": "amazon"},
timeout=15,
).json()
amazon_results = len(amz.get("organic_results", []))
trends.append({
"tiktok_desc": product_hint,
"tiktok_plays": v.get("stats", {}).get("play_count", 0),
"amazon_listings": amazon_results,
"gap_score": v.get("stats", {}).get("play_count", 0) / max(amazon_results, 1),
})
return sorted(trends, key=lambda x: x["gap_score"], reverse=True)
trends = detect_trends("kitchen gadget")
for t in trends[:5]:
print(f"Gap score: {t['gap_score']:.0f} | TikTok: {t['tiktok_plays']:,} plays | Amazon: {t['amazon_listings']} listings")JavaScript Implementation
const TT_H = {'Authorization': 'Bearer ' + process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const S_H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function detectTrends(category) {
const tr = await fetch('https://api.scavio.dev/api/v1/tiktok/search', {method:'POST', headers:TT_H, body:JSON.stringify({query:category+' must have 2026', type:'video'})});
const videos = ((await tr.json()).videos||[]).sort((a,b)=>(b.stats?.play_count||0)-(a.stats?.play_count||0)).slice(0,10);
const trends = [];
for (const v of videos) {
const ar = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:S_H, body:JSON.stringify({query:(v.desc||'').slice(0,80), platform:'amazon'})});
const amz = (await ar.json()).organic_results||[];
trends.push({desc:(v.desc||'').slice(0,80), plays:v.stats?.play_count||0, amazonListings:amz.length, gap:(v.stats?.play_count||0)/Math.max(amz.length,1)});
}
return trends.sort((a,b)=>b.gap-a.gap);
}
const t = await detectTrends('kitchen gadget');
t.slice(0,5).forEach(t=>console.log('Gap:'+Math.round(t.gap)+' TikTok:'+t.plays+' Amazon:'+t.amazonListings));Platforms Used
TikTok
Trending video, creator, and product discovery
Amazon
Product search with prices, ratings, and reviews
Google Shopping
Shopping results with multi-retailer pricing