The captions of a Reddit-hosted video post, with timestamps. A post without captions is not_found and costs nothing.
Canonical page: https://okdata.online/apis/reddit/posts/transcript/get/
- Endpoint:
GET /v1/reddit/posts/transcript/get - ID:
reddit.posts.transcript.get - Price: $0.004 per call
- Returns: one Transcript object (
data.item) - Status: preview
- Good for: Transcripts, Content research
One call costs $0.004 and returns one transcript. 1,000 lookups cost $4.00. Failed calls are not charged.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string | no | The post ID, with or without the t3_ prefix. Give id or url. (e.g. t3_1nnrvkr) |
|
url |
string | no | A share link or page URL; the ID is read from it. (e.g. https://www.reddit.com/r/nasa/comments/1nnrvkr/) |
|
view |
string: compact / standard / full | no | standard |
How much of each object comes back. full adds platform-specific fields under ext. |
fields |
string[] | no | Fields to keep, by path (author.name), to save tokens. In a query string: comma-separated. |
Give id or url; one of the two is enough. cursor, view and fields work as described in Requests.
Each item is a Transcript.
| Field | Type | Description |
|---|---|---|
video_id |
string | ID of the video. |
lang |
string | Language of this transcript. |
segments |
Segment[] | Timed segments in order. |
text |
string | All segments joined as plain text. |
curl -G "https://api.okdata.online/v1/reddit/posts/transcript/get" \
-H "Authorization: Bearer $OKDATA_API_KEY" \
--data-urlencode 'id=t3_1nnrvkr'import os
import requests
resp = requests.get(
"https://api.okdata.online/v1/reddit/posts/transcript/get",
headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
params={"id": "t3_1nnrvkr"},
timeout=60,
)
body = resp.json()
if body["code"] != "ok":
raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")
row = body["data"]["item"]
print(row["text"][:200])
print("cost: $" + body["meta"]["billing"]["amount"])const url = new URL('https://api.okdata.online/v1/reddit/posts/transcript/get');
url.searchParams.set('id', "t3_1nnrvkr");
const res = await fetch(url, {
headers: {
Authorization: `Bearer ${process.env.OKDATA_API_KEY}`,
},
});
const body = await res.json();
if (body.code !== 'ok') throw new Error(`${body.code}: ${body.message}`);
const row = body.data.item;
console.log(row.text.slice(0, 200));
console.log('cost: $' + body.meta.billing.amount);{
"name": "call",
"arguments": {
"capability": "reddit.posts.transcript.get",
"id": "t3_1nnrvkr"
}
}Or ask an agent that has the MCP server connected:
Use Reddit video transcript and summarise what the video says in five bullet points.
{
"code": "ok",
"request_id": "0f6c2a8e-4b1d-4e0a-9a51-3c7d2b9e1f20",
"data": {
"item": {
"video_id": "dQw4w9WgXcQ",
"lang": "en",
"segments": [
{
"start": 0,
"end": 4.2,
"text": "Here is what I pack for a two-night trip."
}
],
"text": "Here is what I pack for a two-night trip."
}
},
"warnings": [],
"meta": {
"capability": "reddit.posts.transcript.get",
"billing": {
"amount": "0.004",
"currency": "USD",
"balance_after": "9.996"
},
"unavailable": {},
"cached": false,
"replayed": false,
"fetched_at": "2026-11-11T08:00:00Z"
}
}Errors share one shape: code, request_id, message and message_zh (a fixed sentence per code), charged, retry, retry_after_seconds, param and docs_url, with the specifics in problems. They are not charged; only settlement_unknown is unknown until looked up. The full table: https://okdata.online/docs/errors/
One call costs $0.004 and returns one transcript. 1,000 lookups cost $4.00. Failed calls are not charged.
Yes. Put the link in url and okdata reads the ID from it. Short share links work too.
No. You send only your okdata API key. The data is public data from Reddit; nothing is fetched with your own Reddit account.
No. Every error response says charged: false, except a timeout, which says charged: null until the outcome is known. Resend with the same Idempotency-Key and you are never charged twice.
The field is null, and meta.unavailable names it with the reason: platform (the platform never shows it) or capability (we cannot fetch it yet).
- Reddit post search: $0.004 per call · about 25 posts per page
- Reddit post detail: $0.002 per call
- Reddit post comments: $0.002 per call · about 10 comments per page
- Reddit Popular feed: $0.002 per call · about 10 posts per page
- Reddit community posts: $0.004 per call · about 25 posts per page
- Reddit community profile: $0.002 per call
- Reddit trending searches: $0.002 per call · about 6 board entries per page
- Reddit user profile: $0.002 per call
- Reddit user posts: $0.002 per call · about 25 posts per page
- Reddit user active communities: $0.002 per call · about 30 accounts per page