Skip to main content
GET
Re-read a transcript this account has already paid for

Authorizations

Authorization
string
header
required

Authorization: Bearer hk_live_... for live keys or Authorization: Bearer hk_test_... for test-mode keys. hk_test_ keys resolve real public catalog metadata but return deterministic committed fixtures, never call inference, and never mutate live credits. This is the only transport for the credential: the x-api-key alias once documented was removed in 0.2.0, because the edge authorizer reads Authorization as its single identity source and a request on any other header is refused before it is authenticated.

Never accepted on a dashboardJwt operation, and there are no exceptions. GET /v1/usage and GET /v1/limits briefly declared both schemes (0.8.0); that was withdrawn in 0.8.1 because no deployed route could honor it — both operations are served by the control-plane API, whose authorizer verifies a Cognito token and refuses an hk_live_ credential on shape, and the customer API does not route either path. An API-key holder reads its balance and reservation from QuoteResponse, which carries balance_credits and reserved_credits on every quote. Every operation in this document takes one scheme or the other and refuses the wrong one as unauthenticated.

Path Parameters

read_id
string
required

The id a settled transcript read was charged under — a cached_read group member's read_id, or a completed job's job_id. Job-shaped: the two are minted from one generator, so one read is one id whichever way the transcript was obtained. Opaque, server-generated job identifier.

Maximum string length: 40
Pattern: ^job_[A-Za-z0-9]{16,32}$

Query Parameters

format
enum<string>
default:json

The derived output to return once the transcript is available, and with it the response media type: jsonapplication/json, texttext/plain, srtapplication/x-subrip, vtttext/vtt, mdtext/markdown. An oversized payload is application/json in every format — the one documented content-type switch, described on each operation. Delivering content is the whole point of the operations that use this parameter, so omitting it defaults to json rather than withholding the transcript (contrast PollFormatQueryParam, which has no default).

Delivery-only: never affects the cache key or the produced transcript content. Delivery-only: never affects the cache key or the produced transcript content. Every format is derived at read time from the one canonical transcript. Response media type per format: jsonapplication/json, texttext/plain, srtapplication/x-subrip, vtttext/vtt, mdtext/markdown. The one exception is an oversized payload, which is application/json in every format (see TranscriptUrlRef).

Available options:
json,
text,
srt,
vtt,
md

Response

The paid transcript, inline for format=json under the inline limit, as a raw body for text|srt|vtt|md, or as a transcript_url reference for an oversized payload in any format. Never a charge.

A synchronous JSON transcript read: a cache hit or publisher passthrough (POST /v1/transcripts), a direct cached fetch (GET /v1/episodes/{episode_id}/transcript), or the re-delivery of a read that was already paid for (GET /v1/reads/{read_id}). credits_charged is what this request charged, which is why it is 0 on the last of the three and the cached-read price for this account on the other two. format is always json here — a text|srt|vtt|md read of the same transcript is delivered as a raw body with X-Credits-Charged carrying this envelope's credits_charged. See the comment above for why this shape is self-contained rather than composed via allOf.

format
any
required
is_cached
boolean
required
credits_charged
integer
required

A non-negative JavaScript-safe integer credit amount. The upper bound matches Number.MAX_SAFE_INTEGER, which is enforced by the domain ledger so arithmetic and JSON round-trips cannot silently lose cents worth of credit precision.

Required range: 0 <= x <= 9007199254740991
transcript
object
required
transcript_url
string<uri>
Maximum string length: 2048
expires_at
string<date-time>