Skip to main content

Realtime Transcription API

Send audio over WebSocket and receive transcripts for each utterance. Use model kitsch-stt-v1.

WSS /v1/realtime?intent=transcription

Send Authorization: Bearer <KITSCH_API_KEY> during the handshake.

Request​

{"type":"session.update","session":{"type":"transcription","audio":{"input":{"format":{"type":"audio/pcm","rate":24000},"transcription":{"model":"kitsch-stt-v1"},"turn_detection":null}}}}
{"type":"input_audio_buffer.append","audio":"<BASE64_AUDIO>"}
{"type":"input_audio_buffer.commit"}

Send session.update, input_audio_buffer.append, and input_audio_buffer.commit. The server returns session and commit events, followed by transcription delta and completed events.

PCM input is signed PCM16 little-endian, mono, 24 kHz. audio/pcmu and audio/pcma inputs use 8 kHz. Each decoded audio event is limited to 256 KiB; each connection is limited to 30 seconds.

Response​

{"type":"conversation.item.input_audio_transcription.delta","item_id":"item_1","content_index":0,"delta":"Hello."}
{"type":"conversation.item.input_audio_transcription.completed","item_id":"item_1","content_index":0,"transcript":"Hello.","usage":{"type":"duration","seconds":1}}