YouTube Video Transcript (Provenance) API docs

Open Playground →

Start building

Send your first request

Platform API endpoint with unified authentication and usage tracking.

Production API
Platform API endpoint
https://api.sandbase.ai/v1/api/youtube/video-transcript-full
Authorization header
Authorization: Bearer $SANDBASE_API_KEY
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/api/youtube/video-transcript-full" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "captionKind": "any"
}
SANDBASE_JSON
)
printf '%s\n' "$result"

2. Authentication

Set your SandBase API key in your server environment. Requests use Bearer authentication.

API key environment variable
export SANDBASE_API_KEY="YOUR_API_KEY"

Keep your key on the server. Do not expose it in browser code.

3. Parameters

urlstringrequired

YouTube video or Short URL (e.g. "https://www.youtube.com/watch?v=dQw4w9WgXcQ" or "https://www.youtube.com/shorts/Fir1x9cw2vg").

languagestring

Preferred caption language code (e.g. "en", "es"). Defaults to English. If the video has no captions in that language, you get the transcript in another language the video has; the `language` field in the result says which. With `captionKind` set to "manual" or "automatic", no other language is returned.

captionKindstring

Which caption track to accept: "manual" only creator-written captions, "automatic" only YouTube's speech recognition, "any" whichever exists.

Default: "any"

Possible values: manual, automatic, any

requireFieldsarray

Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `views`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a transcript that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.

4. Response

Saved example response for this API; no live request is made when viewing it.

No saved response has been published. Run the API in Playground to inspect its response.