API early access

YouTube Transcript API.
One API call.

Send a YouTube URL or video ID. Get a clean, timestamped transcript as structured JSON—ready for your product, agent, or workflow.

Early access · No card required

API previewJSON
POST /api/v1/transcripts

{
  "video_id": "dQw4w9WgXcQ",
  "mode": "auto"
}

200 OK
{
  "language": "en",
  "mode": "auto",
  "duration": 212,
  "transcript": "We're no strangers...",
  "segments": [
    { "start": 0.0, "text": "We're..." }
  ]
}
01

Built for products

Predictable JSON, clear errors, and timestamps you can use immediately.

02

One simple input

Send a full YouTube URL or the 11-character video ID.

03

Ready to automate

Use transcripts in agents, search, research, and content workflows.

01

captions

Return existing YouTube captions only. Fastest and most economical.

02

auto

Try captions first, then transcribe the audio with OpenAI when needed.

03

transcribe

Skip captions and always create a fresh transcript from the video's audio.

Quickstart

One endpoint. Any server stack.

Send your API key as a Bearer token. Keys belong on your server—never expose them in browser JavaScript.

curl

curl https://threadmap.online/api/v1/transcripts \
  -X POST \
  -H "Authorization: Bearer tm_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video_id":"dQw4w9WgXcQ","mode":"auto"}'

JavaScript · Node.js

const response = await fetch(
  "https://threadmap.online/api/v1/transcripts",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer tm_live_YOUR_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ video_id: "dQw4w9WgXcQ", mode: "auto" })
  }
);

const data = await response.json();
if (!response.ok) throw new Error(data.error.message);
console.log(data.transcript);

Python

import requests

response = requests.post(
    "https://threadmap.online/api/v1/transcripts",
    headers={"Authorization": "Bearer tm_live_YOUR_KEY"},
    json={"video_id": "dQw4w9WgXcQ", "mode": "auto"},
)
response.raise_for_status()
print(response.json()["transcript"])

Get early access

Be first in line.

Tell us where to send your invitation when the API opens.

Only product and launch updates. No spam.

Questions

Is the API live?

The private beta endpoint is ready. Access is opening gradually to people on the waitlist.

Which videos are supported?

Public YouTube videos. Transcript availability can depend on captions and video accessibility.

How will pricing work?

We're validating usage-based plans now. Early users will see pricing before committing.

Can I test Threadmap today?

Yes. The free extractor lets you try the underlying transcript experience now.