> **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/reddit/posts-transcript>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/reddit/posts-transcript.mdx>

---

# Reddit transcript API

Pass a Reddit post permalink or hosted video URL and get caption text as plainText plus timed segments when tracks exist.

`GET /v1/reddit/posts/transcript` takes a required `url`: a public post permalink or a direct hosted video URL. Optional `language` is a two-letter ISO 639-1 code when more than one caption track exists. On a completed 200, branch on `data.lookupStatus` (`found` / `not_found` / `lookup_failed`). When the post resolves, `data.post` carries `id`, `url`, and nullable `videoId`. `data.transcript` is either null or `{ plainText, language, segments }` with `text` / `startMs` / `endMs` per segment.

`found` does not guarantee a non-null transcript — the post can resolve while captions are missing. Unlike LinkedIn or Rumble, a completed lookup still bills the flat credit even when `transcript` is null. There is no `useAiFallback`. Confirm with `meta.creditsCharged`, and keep `meta.requestId` when a row looks wrong.

## Request

- **Endpoint:** `GET /v1/reddit/posts/transcript`
- **Credits:** 1 credit
Failed requests are free
- **Input:** post or video URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/reddit/posts/transcript/get)
- **Platform page:** [/platforms/reddit](https://www.socialfetch.dev/platforms/reddit)

## FAQ

### How do I get a Reddit post transcript via API?

Call `GET /v1/reddit/posts/transcript` with your Social Fetch API key (`x-api-key`) and a public post or hosted video `url`. Optionally pass `language` as a two-letter ISO 639-1 code. Read `data.lookupStatus`, then `data.post` and `data.transcript`. See the API docs for parameters and examples.

### How much does the Reddit 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 Reddit transcript API accept?

Public Reddit post permalinks and direct hosted video URLs. Pass one link as `url`. Private, deleted, or otherwise unresolved media come back as `not_found`.

### What format is the Reddit transcript response?

When captions are available, `data.transcript` has `plainText`, `language` (ISO 639-1 when reported), and `segments` (`text`, `startMs`, `endMs`). When captions are missing after a resolved post, `transcript` is null. Always check `data.lookupStatus` before assuming speech text arrived.

### Does a found Reddit transcript lookup always return text?

No. `lookupStatus` of `found` means the post resolved. `data.transcript` can still be null when captions are not exposed. You still pay the credit for a completed lookup (unlike LinkedIn/Rumble found-only billing). Persist `meta.requestId` when you need to debug a miss.

### When should I pass the language query param?

Use optional `language` (exactly two letters, ISO 639-1) when you want to prefer a caption track among several. Omit it when you do not care which language track is chosen.

### Reddit transcript vs Reddit post comments?

Use `GET /v1/reddit/posts/transcript` for spoken text from a video post. Use `GET /v1/reddit/posts/comments` for the comment tree on a permalink. They are different paths on the Reddit hub.
