Versioning & changelog
Track the versioned v1 API surface, the OpenAPI spec, and the changelog so your integration keeps working across releases.
A machine-readable OpenAPI 3.1 description is available for SDK generators, Postman, and Swagger UI:
What counts as a breaking change
The path prefix is the version. Everything under /api/v1 keeps its existing behaviour: we will not remove an endpoint, remove a response field, rename a field, change a field’s type, add a required request field, or change the meaning of an existing error code inside v1. If we need to do any of those, it happens in a new version prefix, and v1 keeps working.
These changes are additive and can ship at any time without notice, so write clients that tolerate them: new endpoints, new optional request fields, new fields in a response object, and newreason codes on existing error responses. Do not write parsers that fail on unrecognised JSON keys.
Deprecation notice
If a version is ever retired, we commit to at least 12 months’ notice from the announcement to shutdown. During that window the old version continues to work unchanged. We announce in the changelog on this page, by email to every account that has called the affected endpoint in the previous 90 days, and with a Deprecation response header on the affected endpoints so automated clients can detect it without reading docs.
Nothing is deprecated today. v1 is the current and only version, and the older unversioned /api/transcripts routes still work.
SDK versioning
The Python and Node SDKs follow semantic versioning: patch and minor releases never break a working integration, and a breaking change means a major version. Pin a major version and upgrade deliberately.
Status and incidents
Uptime, per-service status, and incident history are published at status.transcriptfetch.com, recorded by an independent monitor. For your own alerting, GET /api/v1/health is a liveness check and GET /api/v1/health/deep performs a real transcript fetch, returning 200 only when actual segments come back. Both are public and need no key.
Changelog
2026-06-15 · v1
- Introduced versioned /api/v1 endpoints with a single, consistent response envelope.
- Added a canonical error object: { error: { code, message, issues? } } on every non-2xx response.
- Added Idempotency-Key support so paid requests can be retried safely without double-billing.
- Added cursor pagination (next_cursor / cursor) to the search, playlist, and channel list endpoints.
- Published a machine-readable OpenAPI 3.1 spec.
- Clarified billing: 1 credit per successful (ok) response, a transcript or a video list.
- The legacy /api/transcripts and /api/transcripts/batch endpoints remain available and unchanged.