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 +10 credits per started minute of transcribed video, up to 60 minutes (allowLongTranscription) Max 601 credits Failed requests are free
About this endpoint
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. Bill from meta.creditsCharged.
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. See the API docs for parameters and examples.
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
- Profile eventsGET /v1/facebook/profiles/events
- Post or reelGET /v1/facebook/posts
- CommentsGET /v1/facebook/posts/comments
- RepliesGET /v1/facebook/posts/comments/replies