Skip to main content
The TranscriptMagic API uses a simple credit model: every successful response (HTTP 200) deducts exactly 1 credit from your account balance. Length of the video doesn’t matter — a 30-second YouTube Short and a 4-hour livestream replay each cost 1 credit.

Free credits

Every account starts with free credits — enough to integrate, test, and ship a small project before you ever need to pay. No card required to sign up.

Buying more

Top up on the credits page. Pricing is volume-tiered; larger packs come with a lower per-credit cost.

Checking your balance

Every authenticated API response includes a credits field showing your remaining balance after that call:
{
  "transcript": "...",
  "credits": 997
}
You don’t need a separate billing call — every transcript response is also a balance check.

Cache hits don’t charge

If you request a URL that another user has already transcribed within the cache window, you get a 200 with cached: true in the body and no credit is deducted. Your credits value is unchanged on the response.
{
  "transcript": "...",
  "cached": true,
  "credits": 997
}

What doesn’t cost credits

  • Failed requests (4xx/5xx responses) — you’re never charged for an error.
  • Auth errors, rate-limit errors, upstream-platform errors — none of them deduct.
  • Cache hits, as described above.
You only pay for transcripts you actually receive fresh.

Running out

When your balance hits 0, the next request returns 403 Forbidden:
{
  "error": "no_credits",
  "credits": 0,
  "message": "Out of credits. Please upgrade to continue."
}
Top up at /credits and the next call goes through immediately — no key change needed. Match on the error slug "no_credits", not the human-readable message.

Need bulk pricing?

If you’re processing more than ~10k transcripts a month, email hello@transcriptmagic.com — we offer custom pricing and lifted rate limits for verified production accounts.