ScriptHaul API
Log inGet API key

For developers · 100 free credits a month · No card

The YouTube transcript API that does whole channels.

GET one transcript or POST one durable bulk job. Cache hits are free. Failures are free. Purchased credits never expire.

Email only. No password, no card.

curl --get https://api.scripthaul.com/v1/transcript \
  -H "Authorization: Bearer $SCRIPTHAUL_API_KEY" \
  --data-urlencode "video_id=jNQXAC9IVRw" \
  --data-urlencode "format=srt" \
  --data-urlencode "raw=1"

HTTP/2 200
X-Cache: HIT
X-Credits-Charged: 0

1
00:00:00,000 --> 00:00:02,400
We the People of the United States…

Example output uses public-domain text.

Seven formatsText, timestamps, SRT, VTT, Markdown, JSON
Checking statusLive status
scripthaul.comBuilt on the free tool

One call or one job

Start at the size of the work.

A transcript should be one request. A channel should be one durable job, not a client-side loop held together by retries.

Single video

Return inside the request

Choose a language and any of seven formats. Cached work is immediate and free. Cold work waits up to 25 seconds, then gives you a poll URL.

Playlist or channel

Resume on the server

Reserve only the cold count, settle per delivered video, follow progress, download a manifest or file, and receive a signed webhook.

What you pay for

Delivery, not attempts.

Re-run a channel every week and pay only for new uploads.

0 credits

Cache hit

A transcript already in the shared permanent cache.

1 credit

Cold delivery

A transcript successfully delivered after a new fetch, including a labelled fallback.

0 credits

Failure

No captions, unavailable, strict refusal, rate limit, outage, or budget pause.

0 credits

Everything around it

Listing, facts, jobs, files, manifests, status, account, usage, and webhooks.

Pay as you go

One-time. No subscription. Nothing expires.

Free allowance first. Purchased credits stay in a separate bucket forever.

Starter

3,000 credits

$5

$1.67 per 1,000

Builder

14,000 credits

$20

$1.43 per 1,000

Team

40,000 credits

$50

$1.25 per 1,000

Scale

200,000 credits

$200

$1.00 per 1,000

Large

1,250,000 credits

$1,000

$0.80 per 1,000

ScriptHaul credit value$14.30Incumbent monthly estimate$27.50

Assumes every transcript is a cold fetch; cache hits cost nothing, so real bills are usually lower. Checkout sells whole blocks and unused credits stay banked. The incumbent estimate uses its published $5/month plan with 1,000 credits plus $2.50 per 1,000 in top-ups, checked 2026-09-04 on its pricing page. Method and caveats.

Never expires

Credits wait for the work.

Purchased means banked

There is no subscription to maintain and no clock on paid credits.

Free refills monthly

The free allowance resets to 100 on the first of each month (UTC) and does not accumulate.

No lapse penalty

There is no plan to cancel, so nothing can lapse and lock you out of credits you paid for.

Honest languages, honest failures

See what arrived, not what was hoped for.

Every transcript labels the requested language, delivered language, caption kind, fallback, and translation verdict.

"language": {
  "requested": "es",
  "delivered": "en",
  "kind": "manual",
  "fallback": true,
  "translation": "refused"
}

A refused translation with fallback enabled is still useful and clearly labelled. It costs 1 only when delivered cold.

Strict mode

fallback=false

If the requested language cannot be delivered, ScriptHaul returns a retryable typed error instead of silently substituting. No transcript delivered means 0 credits charged.

Read the language matrix

Built to keep working

Health you can inspect.

Serving strategies, translation shedding, canaries, and capacity state come from the public endpoint.

Checking live status

No health claim is shown until the endpoint answers.

Open status

Seven formats

One cached object, the shape you need.

Examples use public-domain text, not a customer transcript.

[{"start":0,"duration":2.4,"text":"We the People of the United States"}]

Agents and MCP

Try keyless. Build keyed.

The keyless server on scripthaul.com is for trying the tools in an assistant, with a small daily allowance. The keyed server on this host uses your account's credits, limits, and durable jobs.

Keyless

https://scripthaul.com/mcp

A small allowance for trying transcript tools in an assistant.

Keyed

https://api.scripthaul.com/mcp

Bearer authentication, the same credits and limits as REST.

Compare the contract

Bulk and honesty are the product.

Claims are dated and each competitor cell links to the first-party contract behind it.

CapabilityScriptHaul APItranscriptapi.comSupadata
Cache hits0 credits1 credit on a successful cached response [source]1 credit per native transcript; no free-cache distinction is published [source]
CreditsOne-time blocks; purchased credits never expireMonthly or annual subscription; base credits do not roll, and top-ups require an active plan [source]Monthly plans; credits do not roll over [source]
Durable channel jobUp to 500 videos with manifest, files, archive, events, and signed webhookNot offered in the published endpoint list [source]Paid batch job for a list, playlist, or channel with polled JSON results; no manifest, archive, or signed webhook is documented [source]
SRT / VTTBoth, plus five more formatsNot offered; published formats are JSON or text [source]Not offered in the transcript response contract; published shapes are plain text or segmented JSON [source]
Translation verdictRequested, delivered, fallback, served/refusedReturns the resolved track code, but no translation verdict field [source]Returns the delivered language; translation is a separate 30-credits/minute endpoint, with no fallback verdict field [source]

Competitor contracts and prices verified against the linked first-party pages on 2026-09-04. “Not offered” means absent from the cited published API contract; it does not claim a private or unannounced feature cannot exist.

Get a key

Email, code, done.

The key is shown once. Keep it in a secret manager and send it only in the Bearer header.

Start free

100 monthly credits. No card.

FAQ

Before you wire it in.

Do I need an account?

Yes: a verified email holds your keys, balance, receipts, and recovery path. There is no password or required card.

Do credits expire?

Purchased credits never expire. The free allowance resets to 100 each UTC month and does not accumulate.

What costs one credit?

Only a successfully delivered transcript that was not cached. A labelled fallback is a delivery. Cache hits and failures cost zero.

What if captions are missing?

You receive a typed NoCaptions error and pay zero credits.

How do languages work?

The response always identifies requested and delivered language, manual or ASR kind, fallback, and translation served/refused state. Strict mode refuses substitution.

How fast is it?

Cache hits are normally fast; cold work depends on YouTube and relay conditions. Measured p50/p95 values will be published after production has enough samples.

How large can a job be?

A free account may run one active job of up to 100 videos. A paid account may run five active jobs of up to 500 videos each.

Do you download video or audio?

No. Never. ScriptHaul handles public caption tracks and does not offer media download.

Is there an SLA?

No SLA at launch. Health is public, failed deliveries are not charged, and credits wait rather than expiring.

Can I get a refund?

Unused purchased blocks are eligible within 14 days, subject to the plain rules on the refunds page. Outage and cessation credits are defined there too.

Can I build a commercial product?

You are responsible for determining whether your commercial use, storage, or redistribution of each transcript is permitted. ScriptHaul grants no rights in source captions.

Is ScriptHaul affiliated with YouTube?

No. ScriptHaul is not affiliated with or endorsed by YouTube or Google.

How long is data kept?

Retention varies: request events 90 days, usage rollups 24 months, financial records 7 years, archives 7 days, and shared transcript cache objects may remain indefinitely independent of customer identity.