Skip to main content
The API’s version is the version of its OpenAPI document, which the API Reference is generated from. Each entry below is the customer-visible part of one version; the document itself carries the full reasoning.

0.11.0

  • Removed three operations that were declared but never served: GET /v1/jobs (job groups are the unit of work; list and read them through /v1/groups), GET /v1/shows/{show_id} (search and charts carry the metadata, the episodes listing carries the catalogue), and /v1/preferences.
  • Added GET /v1/resolve, a pointer to canonical ids and cache and price hints without a job, and GET /v1/languages, the supported-language table.
  • POST /v1/billing/refund stays declared and says on its own operation that it is not yet routed.
  • request_id may contain hyphens: a refusal generated at the edge carries the gateway’s own id.
  • Search results are ordered by title match, then catalogue size; an exact title search and a fuzzy search are merged so the show a name means is always a candidate.
  • The quote ceiling is the estimate plus 25%, up from 10%, because feeds routinely under-state their length.

0.10.0

  • Checkout, the Customer Portal and the invoice list are served from the dashboard, and the billing address gets GET and PUT /v1/billing/address.
  • Checkout takes a plan tier, never a Stripe price identifier.
  • New error code tier_unchanged for a checkout against the plan already held.
  • Quote responses carry balance_credits and reserved_credits, so an API-key caller sees what it holds before it confirms.

0.9.0

  • The API key operations are served: create, list, revoke. A create shows the plaintext key exactly once.
  • New error code api_key_limit_reached; the limit travels in the message.
  • Test-mode keys (hk_test_) remain declared and refused: the fixture corpus that makes them useful does not exist yet.

0.8.0 and 0.8.1

  • GET /v1/usage and GET /v1/limits are served, for the dashboard’s session only. 0.8.1 withdrew the declaration that an API key could call them; an API-key caller reads its balance from any quote response instead.
  • Usage gains a daily series for the current period, the plan’s included credits, the credits held beyond them, and when the allowance resets.

0.7.0

  • POST /v1/session establishes the dashboard’s session and repairs an account whose sign-up trigger was cut short, so a confirmed sign-in always has an account behind it.

0.6.0

  • Account state is a typed refusal: account_suspended, account_closed and account_not_found, on writes only. Reads keep working until the account’s keys are revoked.
  • GET /v1/reads/{read_id} is new: the transcript behind a cached read a confirm already paid for, in every format, charging nothing.

0.5.0

  • New error codes request_in_progress (retry with the same idempotency key), quote_unverified and expected_total_mismatch.
  • A confirm may restate the quote’s total as expected_total_credits; the API refuses to spend past it.
  • Cache hits at submit time carry the X-Transcript-* and X-Credits-Charged headers.

0.4.0

  • Transcript delivery is served: GET /v1/transcripts/{job_id} and GET /v1/episodes/{episode_id}/transcript, in json, text, srt, vtt and md.

0.3.0

  • The write surface: confirm a quote into a job group, list groups, read a group, cancel a group. Every job belongs to a group; a single submit is a group of one.

0.2.0

  • The credential travels only as Authorization: Bearer hk_live_...; the x-api-key alias is gone.
  • Show search marks music-led shows instead of dropping them. Category charts and quotes are new.