100 free credits on signup · no card required

Facebook Summary API

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.

Credits 17 / video
Input ?url=
Cache
GET · BEARER
Request composing…
Cached forever
same bytes every call

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.

Works with your stack
cURL Python Node.js Zapier n8n Make MCP
One key · one credit balance · plain REST

The difference

Stop parsing markup. Start reading fields.

On the left, what a headless browser hands you. On the right, what the endpoint hands you.

Scraping it yourself raw HTML · every call
<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...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 3 typed fields
{
"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"
}
Stable field names, documented nulls No proxies, no browser, no login session Counters are integers you can sort on

The payload

What comes back

{ data, meta?, request_id }
01 Three fields, nothing more

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.

02 The transcript chain stops early

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.

03 Cached forever, priced the same

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.

Field explorer Pick a key to see its type and the caveats.
string|null Nullable Per item
language

Language tag for the transcript the summary was built from. Null whenever no language could be attached to the source text.

{
"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.",
"key_points": ["…"],
"language": "en"
}
Good fit

Reach for this when

  • You are summarising the same content across platforms and a brand posts identical cuts to TikTok and Facebook. Use TikTok, and keep this in the code path only so the Facebook branch starts working if transcription is switched on.
  • A pipeline that already tolerates missing data: enrich what you can, leave the rest null, and never block a job on a summary arriving.
  • One-off research where a person is in the loop and a failed call just means opening the video manually.
Different job?

There's an endpoint for that

  • You need the raw words rather than a condensed version — the Facebook Transcript API returns the transcript text itself, subject to exactly the same dependency and the same 404.
  • You need this to work across Facebook videos today. It will not. Use the TikTok Summary API for the same capability on a platform whose public payload actually carries subtitles.
  • You want engagement numbers, post text or the poster's details for a Facebook video — that is the Facebook Post Stats API, which has no transcript dependency and works on any public video.
  • You are summarising a whole Page's output. Start with the Facebook Page Posts API to enumerate posts, then decide which individual videos are worth attempting here.

Pricing

Start free, pay for what comes back

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 your bill
$48/ month
30 videos/day × 17 credits × 365 days = 186,150 credits/yr, or $579/yr on the annual plan plus 175 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 186,150
Plan Annual $54/yr
Per video

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.

Free trial
100 credits

On signup, no card. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $4 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $3 per extra 1,000.

Entry price, side by side

Cheapest way to start

Verified July 2026 from each vendor's live pricing page
ScraperSocial
$5 / mo 1,000 credits · 100 free credits, no card
Supadata
$5 / mo 300 credits, annual commitment · 100 free/mo
SocialKit
$29 / mo 12,000 credits · 20 free credits
Dumpling AI
$40 / mo Billed annually · free tier size unpublished
ScrapeCreators
$47 pack 25,000 credits, no subscription · 100 free once

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

Docs you can build on

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.

Failed calls are never charged Public data only, no login session Built for parallel traffic

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

Frequently asked

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

Pairs well with

Full Facebook API reference →
/v1/facebook/transcript
Facebook Transcript API Full transcript of a Facebook video with timestamped segments. 15 cr / video
/v1/facebook/stats
Facebook Stats API Reactions, comments and shares for a Facebook post or video. 5 cr / post
/v1/tiktok/summary
TikTok Summary API Short AI summary of a TikTok video, built on its transcript. 10 cr / video
/v1/instagram/summary
Instagram Summary API Short AI summary of an Instagram reel, built on its transcript. 42 cr / reel

More Facebook endpoints

/v1/facebook/transcript Full transcript of a Facebook video with timestamped segments. 15 credits / video /v1/facebook/stats Reactions, comments and shares for a Facebook post or video. 5 credits / post /v1/facebook/comments Paginated comments on a Facebook post; charged per comment returned. 3 credits / comment /v1/facebook/page-stats Followers, likes and metadata for a Facebook page. 10 credits / page /v1/facebook/channel-posts Latest posts from a Facebook page with per-post metrics. 3 credits / post /v1/facebook/download Resolves a downloadable media URL for a Facebook video (URL expires within 1h). 10 credits / video

Try the Facebook Summary endpoint free

100 trial credits on signup — no card, key on screen immediately.

1 Sign up free no card · 30 seconds
2 Copy your key sk_live_...
3 GET the endpoint /v1/facebook/summary
Get your free API key