One URL in. Clean JSON out.
Give it a TikTok video URL and get back a short written summary plus three to five key points, as JSON. Under the hood it reads the video's captions, then runs one small-model pass over that text. 10 credits per video, and the result is cached forever because a published video's words do not change.
The difference
On the left, what a headless browser hands you. On the right, what the endpoint hands you.
<div class="css-1qb2n7d-DivItemContainer e148ts220" data-e2e="recommend-list-item"><div class="css-x6y88p-DivContainer"><a class="css-1g95xhm-AVideoContainer" href="/@tiktok/video/7231338487075638570"><video src="blob:https://www.tiktok.com/8f3a..."></video></a></div><div class="css-1f5bbrz-DivCardFooter"><strong data-e2e="video-views" class="css-ws4x78">1.2M</strong><strong data-e2e="like-count">88.4K</strong><strong data-e2e="comment-count">2,314</strong></div><h3 class="css-1yy6f0h">Behind the scenes of our new feature</h3><script id="__UNIVERSAL_DATA_FOR_REHYDRATION__" type="application/json">{"__DEFAULT_SCOPE__":{"webapp.video-detail"... {"data": {"platform": "tiktok","entity_id": "7231338487075638570","language": "en","summary": "A quick tutorial covering three commonly missed configuration steps, with a before/after comparison and a call to check the pinned comment for the full guide."},"request_id": "req_01JZX4M8Q2TE9W"}
The payload
Three fields: a paragraph of roughly 150 words, an array of short bullet points, and the language code the transcript came back in. That is the whole object. There are no engagement counters, no author block and no timestamps here — this endpoint answers "what is this video about" and nothing else.
The summary is generated from the video's caption track, not from the on-screen description and not from the comments. If someone talks for ninety seconds about three supplement brands, the key points will name those brands. If the video is a silent transition edit set to music, there is nothing to summarize and the call fails rather than inventing content.
Because a video's spoken content is fixed once posted, summaries are stored in the immutable cache class with no expiry. The first call for a given video does the real work and takes a few seconds; every call after that returns from cache in milliseconds. You are still charged 10 credits either way.
Language of the source transcript, as reported by the caption track. Null when the platform gave us no language tag, which happens more often than you would expect.
Pricing
One summary is 10 credits — about 5¢ on the monthly plan, so $5 covers roughly 100 videos; cached repeats cost the same, and calls that fail are never charged.
Estimate only, on a full-year basis. 10 credits per returned video. Monthly: $5 per 1,000 credits with $4/1,000 top-ups. Annual: $54 per 12,000 credits with $3/1,000 top-ups. We show whichever plan is cheaper for your annual volume, divided by 12. Failed calls are never charged; cache hits cost the same as fresh calls.
Entry price, side by side
Credits are not equivalent units across vendors — each meters differently. Price your own workload on both before deciding on entry price alone. At high volume, several of these are cheaper per credit than we are.
Engineering notes
We document exactly how every endpoint behaves — nulls, caching, billing — so what you ship on day one is still running in month six. No surprises, no support tickets.
This runs on the caption track TikTok already carries for a video. There is no speech-to-text step in the current configuration, so a video with no captions produces a 404 with a message saying no transcript is available. TikTok auto-captions a large share of spoken content, which is why this endpoint is practical there and much less so on platforms that do not.
In practice the failures cluster in predictable places: music-only clips, videos with no speech at all, and some non-English uploads where the platform never generated a track. Failed calls are not charged, so a miss costs you latency and nothing else. If you are batching, expect a non-zero error rate and handle 404 as an ordinary outcome rather than an exception.
A language model compresses the transcript into the summary and the key points. It is a good compression, not a transcript, and it can smooth over a detail that mattered to you specifically. Do not quote the summary as if the creator said those words, and do not use it as evidence in anything that has consequences. Where accuracy matters, pull the transcript and read the source.
Numbers, prices and product names are the usual soft spots. If your pipeline depends on extracting a figure exactly, extract it from the transcript, not from the summary.
Once a video is summarized the result is stored with no expiry and returned to every later call for that same video. That is deliberate — the words in a published video do not change, so regenerating would burn credits for a near-identical paragraph.
It also means the summary is a product of the model and prompt in use at the time of the first call. We do not silently re-summarize old videos when the model changes. If a stored summary is genuinely wrong, ask us to invalidate it rather than expecting a repeat call to differ.
Summarizing a video requires a transcript, so the first summary call also produces and stores one. If you later call the TikTok Transcript API for the same video, it returns that stored transcript — you do not pay for the caption fetch twice in any meaningful sense, though each endpoint charges its own price per call.
Ordering matters slightly for latency, not correctness: whichever of the two you call first absorbs the fetch time, and the second one is fast.
Very long transcripts are truncated before the model sees them, so a forty-minute live replay is summarized from its opening stretch rather than end to end. For short-form TikTok content this practically never bites. If you are working with unusually long uploads, check the transcript length yourself before trusting the summary to be complete.
Questions
Send a GET request to /v1/tiktok/summary with the video URL and your API key. The response is JSON containing a summary paragraph, an array of key points, and a language code. No TikTok developer account and no OAuth are involved — the endpoint reads the video's public caption track and summarizes it.
10 credits per video. Credits are $0.005 each on monthly billing and $0.0045 on annual, so one call is about five cents and $5 covers roughly 100 videos. Cached summaries cost the same as fresh ones. Calls that fail, including videos with no captions, are not charged.
No. The summary is built from the caption track TikTok already carries, and there is no speech-to-text fallback running right now. A video without captions returns a 404 saying no transcript is available, and you are not charged. Most spoken-word TikToks do carry captions, so the success rate is high, but music-only and silent clips will fail.
Good enough to decide whether a video is worth watching, not good enough to quote. The model reads the transcript and compresses it, which means specifics like prices, product names and numbers can drift. If exact wording matters for your use case, call the TikTok Transcript API and work from the source text instead.
Not in one call — they are separate endpoints with separate prices. They do share work, though. The first call to either one fetches and stores the transcript, so if you summarize a video and then request its transcript, the second call reads what is already stored and comes back quickly.
Yes, wherever TikTok carries a caption track for the video. The language field on the response tells you what the source transcript was in, though it comes back null when the platform provided no tag. The summary itself is generated from whatever text the captions contained.
The first call for a video takes a few seconds — it fetches the captions and then makes one model pass. Every later call for that same URL returns from cache in milliseconds, because summaries are stored permanently with no expiry. If you are processing a list, run the calls concurrently; each one is independent.
Next
100 trial credits on signup — no card, key on screen immediately.