---
title: "Queue transcripts for up to 100 videos"
method: POST
path: "/batch"
---

# Queue transcripts for up to 100 videos

`POST /batch`

## Request

- Base URL: `https://getyoutubetranscript.com/api/v1`
- URL: `https://getyoutubetranscript.com/api/v1/batch`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Returns immediately with a batch_id; transcripts are fetched in the background. Poll GET /batch?id=... or pass webhook_url to be notified when it finishes. The call itself is free: 1 credit is charged per video that returns a transcript, and failed videos are never charged (e.g. 10 videos, 8 with captions = 8 credits; temporary failures are retried for you and never billed). Duplicate videos are fetched once. Send an Idempotency-Key header to make retries of this call safe. Webhooks POST {event, batch_id, status, total, succeeded, failed, credits_charged, results_url} with header X-GYT-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<raw body>' keyed with webhook_secret>. At most 5 unfinished batches per account; results are kept for 7 days.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `videos` string[], required: Video URLs or 11-character IDs.
  - `language` string
  - `timestamps` boolean: Include per-line 'segments' in results.
  - `webhook_url` string, uri: Public https URL (port 443) notified on completion.

## Response `200`

Idempotent replay: the batch created earlier with the same Idempotency-Key.

## Other responses

- `202`: Queued. webhook_secret is returned once, only when webhook_url was given.
- `400`: Bad request - missing or invalid parameters.
- `401`: Missing or invalid API key.
- `402`: Out of credits.
- `429`: Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).

---

[API](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api.md) · [All operations](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api/revisions/9e125f131154?raw)
