Facebook transcript API
Pass a public Facebook post or Reel URL and get spoken text as a string in the shared Social Fetch JSON envelope — with explicit lookup statuses when the clip is missing or transcription fails.
GET /v1/facebook/posts/transcript1 credit per successful request.
About this endpoint
Compliance scanners, brand monitors, and research agents often need the words spoken on a Facebook Reel or video post, not the thumbnail or reaction count. Facebook does not ship a stable public transcript API for arbitrary competitor clips, and page scrapers stall on login walls and player markup that shifts without notice.
`GET /v1/facebook/posts/transcript` takes a public post or Reel `url` query param. On a completed 200 response, branch on `data.lookupStatus` first: `found`, `not_found`, or `lookup_failed`. When the media resolves, `data.post.url` echoes the requested link and `data.transcript` is a plain string or null. A `found` status does not guarantee non-null text — speech may be missing, or transcription may be unavailable for that clip. Keep `meta.requestId` when a row looks wrong.
Videos that exceed the supported transcription length return HTTP 400 with `video_too_long_for_transcription` instead of a null transcript on 200. Pricing is on the credit badge for this operation; bill from `meta.creditsCharged` on every response.
Facebook transcript API FAQ
How do I get a Facebook post or Reel transcript via API?
Call `GET /v1/facebook/posts/transcript` with your Social Fetch API key (`x-api-key`) and a public post or Reel `url` query param. Read `data.lookupStatus`, then `data.post` and `data.transcript` in the JSON response. Full parameters and examples are in the API docs.
How much does the Facebook transcript endpoint cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.
What URL formats does the Facebook transcript API accept?
Public Facebook post and Reel URLs. Pass the full link as the `url` query param. Private, deleted, or otherwise unresolved media come back as `not_found`.
What format is the Facebook transcript response?
A single plain string in `data.transcript` (or null), plus `data.post` with the requested URL when the lookup resolved. Always check `data.lookupStatus` before assuming text is present — HTTP 200 alone does not mean usable speech.
Does a found Facebook transcript lookup always return text?
No. `lookupStatus` of `found` means the post or Reel resolved. `data.transcript` can still be null when speech is not detected or transcription is otherwise unavailable. You still pay the credit for a completed lookup.
What happens if a Facebook video is too long to transcribe?
The API returns HTTP 400 with error code `video_too_long_for_transcription` when the video exceeds the supported length. That is not the same as a 200 with `transcript: null`. Persist `meta.requestId` / `error.requestId` if you need support on a rejected clip.
Facebook transcript vs Facebook post detail?
Use `GET /v1/facebook/posts/transcript` when you need spoken text. Use the post detail route when you need post metadata and engagement fields. They are different paths on the Facebook hub.
Other Facebook endpoints
- ProfileGET /v1/facebook/profiles
- Profile postsGET /v1/facebook/profiles/posts
- Profile reelsGET /v1/facebook/profiles/reels
- Profile photosGET /v1/facebook/profiles/photos
- Post or reelGET /v1/facebook/posts
- CommentsGET /v1/facebook/posts/comments
- RepliesGET /v1/facebook/posts/comments/replies
- Group postsGET /v1/facebook/groups/posts