Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.transcriptmagic.com/llms.txt

Use this file to discover all available pages before exploring further.

GET https://api.transcriptmagic.com/api/balance
A read-only check that returns your current credit balance and plan. No credit is charged. Use it to validate a freshly-issued key, surface remaining credits in your UI, or trigger a top-up flow before a batch job. Rate limit still applies — 120 requests per minute per key.

Request

curl https://api.transcriptmagic.com/api/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "credits": 487,
  "plan": "credits"
}
FieldTypeDescription
creditsintegerRemaining credits on the account. 0 means out of credits — transcript endpoints will return 403 no_credits until you top up.
planstringOne of "free", "credits", or a subscription plan slug (e.g. "plus", "pro").

Response headers

Every response carries the standard rate-limit headers:
HeaderDescription
X-RateLimit-LimitAlways 120.
X-RateLimit-RemainingRequests left in the current 60-second window.
X-RateLimit-ResetUnix timestamp when the window resets.

Errors

StatusBodyWhen
401{ "error": "Missing API key" }No Authorization header, or it doesn’t start with Bearer sk_live_.
401{ "error": "Invalid API key" }The key was revoked or never existed.
429{ "error": "Rate limit exceeded. Try again later." }120 requests/minute exceeded. Honor the Retry-After header.
Unlike the transcript endpoints, /api/balance does not return 403 no_credits for empty accounts — it is the canonical way to check whether you should top up before issuing a transcript request.

Common patterns

Call /api/balance once at the start of a batch of 1,000 URLs. If credits < 1000, fail fast rather than burning through credits mid-run and getting partial results.
Use /api/balance as your smoke test in deploy pipelines — a 200 confirms the key is valid and points at a real account. Cheaper and faster than POSTing a real video URL.
Cache the response for ~30 seconds in your app shell. Refresh after every successful transcript call (which already returns credits in its response body) so users see the deduction immediately.