One call, the whole record
Paste a TikTok URL and get back the stats, caption, hook transcript, storyboard, and views/day velocity — a single structured JSON object, not five scrapes to stitch.
Stats, captions, hook transcript, storyboard, and views/day velocity for any TikTok video — over a clean REST API. No official API, no logins, just public data enriched.
@livia.rae
is this my most-viewed video yet? 👀
$ viralcli analyze tiktok.com/@user/video/736123…
{
"platform": "tiktok",
"views": 2840000,
"age_days": 3.1,
"views_per_day": 916129,
"hook_transcript": "my video is going
viral — most views on TikTok?",
"storyboard": "…/sb/tiktok_736.jpg",
"verdict": "HEATING"
}








A view count tells you what already won. It hides the hook that made people stay, how fast the video is actually growing, and whether its format still has runway. viralcli returns all three — as JSON.
Paste a TikTok URL and get back the stats, caption, hook transcript, storyboard, and views/day velocity — a single structured JSON object, not five scrapes to stitch.
Views divided by age, so a 2-day breakout and a 2-month evergreen are finally comparable. The number that means “going viral now.”
The opening line as text and the visual beats as one image — read why a video worked instead of guessing from a thumbnail.
Give a keyword, get the breakout TikTok videos ranked by velocity plus an adoption histogram — and a one-word read on whether the format is heating, steady, or saturating. From a single scrape, no polling.
viralcli is an API and a command, not a web app you log into. It’s the data layer a content pipeline or an autonomous agent calls to know what’s working — clean JSON in, clean JSON out, with webhooks when something breaks out.
Every capability is a REST endpoint with a Bearer key and a CLI that wraps it. Responses are structured JSON built to be parsed, not read — one URL in, the full signal out.
Set a velocity threshold and viralcli pushes you a video the moment it crosses — no dashboard to watch, no cron to babysit. Your agent reacts while the trend is still climbing.
Built for content pipelines and AI agents: deterministic JSON, an llms.txt at the root so LLM agents call it correctly, and a cache that makes repeated lookups instant.
The same call shape works on every platform we cover — so an agent written for one is already written for all of them.
One command, or one HTTP request, returns the whole record as JSON. Same shape on TikTok, Reels, and Shorts — so the code you write once runs everywhere.
# Analyze any short-form video — CLI or REST, same JSON
$ viralcli analyze "https://www.tiktok.com/@user/video/7361234567890123456"
{
"platform": "tiktok",
"views": 2840000,
"age_days": 3.1,
"views_per_day": 916129, # age-normalized velocity
"hook_transcript": "you've been doing this wrong your whole life",
"storyboard": "https://cdn.viralcli.com/sb/tiktok_7361234.jpg",
"creator": "@user"
}
# Discover breakouts for a keyword — heating or saturating?
$ curl -s "https://api.viralcli.com/v1/discover?q=tiktok+made+me+buy+it" \
-H "Authorization: Bearer $VIRALCLI_KEY"
# {"verdict":"HEATING","breakouts":[…],"adoption_histogram":[…]}TikTok has no public data API for this — the official endpoints are gated to advertisers and academic researchers. viralcli reads the same public data you'd see in a browser and returns it as clean JSON: every stat, the caption, the spoken hook, and a velocity number the raw page never shows.
One request to the TikTok data API returns views, likes, comments, the creator, and the full caption — plus the hook transcript, the actual words from the opening of the video. That last part is the difference between scraping numbers and understanding why a TikTok worked.
TikTok shows a lifetime view count and nothing about speed. viralcli stamps each video's age and computes views per day, so you can rank a feed of TikToks by how fast they're actually growing — the metric that separates a current breakout from an old hit coasting on its total.
Beyond single videos, the TikTok trending data endpoint takes a keyword and returns the breakouts plus an adoption histogram — how saturated the format is and whether it's still heating. Wire breakout webhooks to get pinged the moment a TikTok's velocity crosses your line.
Paste a link, get the signal.
For tools and agents that run on a schedule.
Pipeline-grade volume for agents and platforms.
For any TikTok video URL: views, likes, comments, share count where available, creator handle, the full caption, a transcript of the spoken hook, a storyboard image of the visual beats, the video's age, and views/day velocity. For a keyword: a ranked list of breakout TikToks plus an adoption histogram and a heating/saturating verdict on the format.
Free to start, no card. One key, one call, the whole signal as JSON.
Start free