IronStratum

GET /v1/audio/transcriptions/stream

Streaming transcription over WebSocket (VASR; unit-billed, audio-seconds)

No models currently served on this endpoint.

Task #19 specialty route (route_type: transcriptions, the streaming INPUT transport): a WebSocket upgrade. SUCCESS is the 101 protocol switch — there is deliberately no 200 row; the documented HTTP statuses are exactly the pre-hijack set {401, 402, 403, 500} (auth and the balance guard run on the UPGRADE request as plain HTTP). After the upgrade: the first client frame is a JSON text config frame — model (required) and format (required; pcm_s16le only — 400-class refusals ride error FRAMES after the hijack, not HTTP), sample_rate (optional, 16000) and channels (optional, 1); the model is validated before the format. Then binary PCM frames (16 kHz mono s16le) flow gateway→card; the card's transcription.partial / transcription.final events (with speaker labels and per-final durations) flow back as JSON text frames verbatim. End-of-audio is the client's CLOSE FRAME (read side open) — forwarded to the card as a TEXT flush marker {"action":"flush"} (never a close control frame, so the card's remaining events drain FULLY before the card initiates the close); mid-stream failures are ONE §6-shape error frame ({"error":{"code":...,"retryable":...}}) then close — never a bare drop. Metering: unit_type='audio_seconds' = ceil of the summed final-event durations when any final carried one, else the stream wall-clock. The POST fallback legs (session-create + SSE out) are designed but UNBUILT — documented == built == test-exercised.

Request

No request body.

Responses

401 401

401 response fields for streamTranscription
Field Type Required Description
error object yes

402 402

402 response fields for streamTranscription
Field Type Required Description
error object yes

403 403

403 response fields for streamTranscription
Field Type Required Description
error object yes

500 500

500 response fields for streamTranscription
Field Type Required Description
error object yes

Example

curl https://api.ironstratum.com/v1/audio/transcriptions/stream \
  -H "Authorization: Bearer $IRONSTRATUM_API_KEY"

All operations · interactive reference · openapi.yaml