Response format
Every successful response shares the same envelope: ok, a request_id (also returned as the X-Request-Id header), a data object whose kind tells you what it holds, and a usage block.
Single transcript
The /video endpoint returns kind: "transcript" with the full text and a timestamped segments array. Each segment's start and duration are in seconds, everything you need to render timestamps or export SRT/VTT.
Video list (channel / playlist / search)
The /channel, /playlist, and /search endpoints return kind: "video_list", a videos array of metadata plus a next_cursor for pagination. Fetch the transcripts separately via the batch endpoint.
Batch
The batch endpoint returns kind: "transcript_batch" with one entry per requested video in data.results.
Field reference
data.kind,transcript,video_list, ortranscript_batch.segments, array of{ start, duration, text }cues (seconds), ornullwhen no transcript is available.next_cursor, pass back ascursorfor the next page of a list, ornullwhen exhausted.outcome(batch results),ok,no_transcript,blocked, orerror.usage.credits_spent, credits charged for this request (0 on failures).usage.balance, your remaining credit balance (nullfor unlimited accounts).