One URL in. Clean JSON out.
Send a Facebook video URL and get back a short written summary plus three to five key points as JSON, for 17 credits. Read this before you build against it: the summary is produced from the video's transcript, and there is currently no way to get a transcript for a Facebook video. The call returns 404 and you are not charged. On today's Facebook that is the outcome, not an edge case.
Availability: Caption-dependent: summaries are built from the video's transcript, so they're available only when the video has captions on Facebook — most don't. When no captions exist the API returns a 404 no-transcript error, and failed calls are never charged.
The difference
On the left, what a headless browser hands you. On the right, what the endpoint hands you.
<div class="x1yztbdb x1n2onr6 xh8yej3" data-visualcompletion="ignore"><div class="x78zum5 xdt5ytf"><div dir="auto" class="xdj266r x11i5rnm x1mh8g0r">Weekend build: three settings we changed after your feedback</div></div><div class="x9f619 x1ja2u2z x78zum5"><span class="xt0b8zv x1jx94hy" aria-label="5.2K reactions"><i data-visualcompletion="css-img"></i></span><span class="x193iq5w">331 comments</span><span class="x1s688f">128 shares</span></div><abbr data-utime="1751630400" class="x1i10hfl">3d</abbr><script>requireLazy(["CometResourceScheduler"],function(f){f().schedule({"__bbox":{"require":[["adp_Comet... {"data": {"platform": "facebook","entity_id": "1093831344793765","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 and nothing else: a prose paragraph of roughly 150 words, an array of short key points, and the language code of the source text. No view counts, no author block, no timestamps. If you want those, they live on separate Facebook endpoints.
The chain behind the call is transcript first, summary second. Whatever the transcript step produces gets handed to a small model in one pass. That step has two possible legs: subtitles a platform ships inside its own public payload, and speech-to-text over the audio. The first is only wired for TikTok. The second is switched off at launch. Facebook can reach neither, so the chain stops at step one.
When it does work, the result is stored permanently. A published video's spoken content does not change, so summaries go into the immutable cache class with no expiry. The first successful call does the real work and takes a few seconds; every later call for that same video comes back in milliseconds and costs the same 17 credits.
Language tag for the transcript the summary was built from. Null whenever no language could be attached to the source text.
Pricing
One summary is 17 credits — about 8.5¢ on the monthly plan, or roughly 59 videos for $5. Facebook's missing transcript means these calls 404 today, and failed calls are never charged.
Estimate only, on a full-year basis. 17 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 is the headline limitation and we are not going to bury it. The summary is built on top of a transcript, the transcript pipeline is in subtitles-only mode while speech-to-text is off, and the subtitle shortcut is wired only for platforms that publish subtitles in their own payload. Facebook is not one of them. This endpoint 404s on Facebook URLs, with the message that no transcript is available.
Nothing is billed for a 404. You are not paying for failures. But do not design a product feature around this endpoint on the assumption that a retry or a different URL format will fix it — no amount of retrying reaches a leg of the pipeline that is not running.
What comes back is generated text. It paraphrases, compresses and occasionally drops a detail that mattered to you. Treat it as a triage aid, not as evidence. If you need to quote a speaker or verify exactly what was said, pull the transcript and read the source line.
Key points are ranked by the model's sense of importance, which is not the same as yours. A video about a product launch may key-point the presenter's anecdote if it took most of the runtime.
The first summary for a video is stored with no expiry and served to every later call. That saves you money on repeat lookups but it also means the stored text reflects whichever model and prompt were live at the time. We do not quietly re-summarise old videos when that changes, and calling again with fresh=true will not regenerate a stored summary.
If you have a summary you believe is genuinely wrong rather than merely terse, ask us to invalidate that entry.
The transcript is truncated before the model sees it. A three-hour Facebook Live replay gets summarised from its opening stretch, not end to end, so a conclusion announced at the two-hour mark will not appear in the key points. Short clips are unaffected.
We read the same public video pages you can open logged out. Private videos, friends-only posts, group content behind a membership wall and region-blocked uploads all return an error. We do not authenticate, and we do not access anything that requires a session.
Questions
Because there is no transcript to summarise. The summary is built from a transcript; the transcript step currently only reads subtitles a platform ships inside its public payload, which Facebook does not, and the speech-to-text alternative is switched off at launch. The 404 is not charged. If the same content exists on TikTok, that URL will usually work.
17 credits per video. Credits are $0.005 each on monthly billing and $0.0045 on annual, which puts a successful call at roughly 8.5 cents. Failed calls — which on Facebook today means all of them — cost nothing. Cached repeats of a video you have already summarised cost the same 17 credits as the first call.
No. Speech-to-text over the audio track is disabled, and Facebook offers no subtitle shortcut for the pipeline to fall back on, so the call fails cleanly rather than guessing. This is a deliberate choice: we would rather return an honest 404 than hand you invented content that reads plausibly and is wrong.
Transcript gives you the spoken words as text. Summary runs one model pass over that same text and returns a paragraph plus key points. They share the transcript step, so if you summarise a video first, a later transcript call for it reads what is already stored. Both depend on that same step, so if one 404s the other will too.
The paragraph targets about 150 words and key_points targets three to five entries. Both are model output rather than hard limits, so treat them as ranges. The summary field is never empty on a successful response, but key_points can come back as an empty array. Check its length before indexing.
No. Summaries are cached with no expiry because a published video's words do not change. Repeat calls return the stored text, in milliseconds, at the same credit cost. The fresh=true parameter does not force regeneration here. If a stored summary is wrong rather than just brief, contact us and we will invalidate that cache entry.
TikTok. Its public payload carries subtitles, which is the one route the transcript step can currently take, so the TikTok Summary API succeeds on a large share of videos. Every other platform, Facebook included, needs the speech-to-text leg that is switched off. If your workflow requires a success rate above zero today, build on TikTok.
Next
100 trial credits on signup — no card, key on screen immediately.