Hear2Text

Overview

Transcribe audio and video from your own server. Included with a paid subscription, authenticated with an API key, polled rather than pushed.

What it does

You send a recording — a file you upload or a public link — and the API gives you back a transcript with timings and speaker labels. The same engine that powers the apps does the work, so the accuracy, the languages and the diarization are identical.

curl https://heartotext.com/api/public/v1/transcriptions \
  -H "Authorization: Bearer $H2T_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F file=@meeting.m4a \
  -F language=en

Who can use it

Subscribers only. The API is included with a paid Hear2Text subscription — there is no separate API plan, no per-minute API pricing and no free tier for it. If the account is not subscribed, every request answers 403 subscription_required.

If a subscription lapses, your keys are kept. Requests start failing with that same 403 and start working again the moment the subscription is active, so a failed card is not a re-integration. Guest accounts cannot hold keys at all.

The shape of the API

  • Base URL: https://heartotext.com/api/public/v1
  • Authentication: Authorization: Bearer h2t_live_…, created in your profile and shown once.
  • Server-side only. CORS is switched off here on purpose. A key in a browser is a key in everybody’s browser.
  • No webhooks in v1. You create a recording and poll it. The polling page says how to do that without wasting requests.
  • No database identifiers. Recordings are addressed by an opaque id, languages by ISO code, workspaces by name.
  • One error shape for every refusal: { "error", "message" }.
  • Machine-readable: OpenAPI 3.1 document and a Postman collection, both generated from the same source as these pages.

Where to go next

  • Quickstart — Three requests: create a recording, poll it, read the transcript.
  • Authentication & keys — Creating keys, where they belong, and what happens when a subscription lapses.
  • Creating transcriptions — Files and URLs, supported sources, languages, limits.
  • Polling — There are no webhooks in v1. How to wait well.
  • Results — Segments, speakers, and the export formats.
  • Errors — The envelope, and every code the API can answer with.
  • Rate limits & fair use — The numbers, the headers, and what to do about a 429.
  • Idempotency — Retrying a create without paying for it twice.
  • Versioning & deprecation — What may change inside v1, and what we promise before it does.
  • Changelog — Every change to the public API, newest first.
  • API reference — Every endpoint, generated from the OpenAPI document.