> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/facebook/posts-transcript>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/facebook/posts-transcript.mdx>

---

# 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/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`.

## Request

- **Endpoint:** `GET /v1/facebook/posts/transcript`
- **Credits:** 1 credit
+10 credits per started minute of transcribed video, up to 60 minutes (allowLongTranscription)
Max 601 credits
Failed requests are free
- **Input:** by post URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/facebook/posts/transcript/get)
- **Platform page:** [/platforms/facebook](https://www.socialfetch.dev/platforms/facebook)

## 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.
