Addis AI

Streaming

Choose the right streaming API for chat, transcription, and speech.

Addis AI streams results over HTTP or WebSocket, depending on what you are building. This page helps you choose the right API, then sends you to the guide that covers it in full.

Choose a streaming API

You want to…UseGuide
Show a chat reply as it is writtenChat stream: trueStreaming and attachments
Transcribe a recording and show progressScribe HTTP streamStream transcript updates after a file upload
Transcribe a microphone as the person speaksScribe live WebSocketConnect live audio with the SDK
Speak one known text with minimal waitText-to-speech HTTP streamHTTP streaming
Speak successive turns or LLM output on one connectionText-to-speech WebSocketPersistent WebSocket
Hold a live two-way voice conversationRealtime API (Beta)Realtime API

Compare streaming APIs

SurfaceTransport and endpointBrowser authAudioBillingKey limitsRecovery
Chat streamingHTTP, stream: true on addis.chat.completions.createServer only (API key)NoneTokens, see PricingCannot be combined with tools, attachments, or audio inputNone
Scribe file streamHTTP POST /api/v1/scribe/transcribe?stream=true; SDK scribe.streamServer only (x-api-key)File upload, up to 25 MB and 180 seconds3.5 ETB per 1,000 final charactersOne transcription per wallet at a timeGET /api/v1/scribe/requests/{id}, scribe.recover
Scribe liveWebSocket at data.websocket_url from POST /api/v1/scribe/sessions; SDK scribe.connect, or createSession and connectScribe in the browserOne-use ticket sent as the first frame (session.authenticate); expires in 60 seconds16 kHz mono PCM16 little-endian; 100 ms frames ideal, up to 2 seconds per frame, up to 180 seconds totalSame as Scribe file streamSame as Scribe file streamSame as Scribe file stream
Text-to-speech HTTP streamHTTP POST /api/v1/voice/generations/stream; SDK voice.streamServer only (x-api-key)mp3_44100 in length-prefixed frames5 ETB per generated minuteNone listedReplay with the same client_request_id
Text-to-speech WebSocketPOST /api/v1/realtime/sessions, then wss://api.addisassistant.com/api/v1/realtime/voice; SDK realtime.connectOne-use session ticketmp3 or wav_mp35 ETB per generated minute10-minute session, 5,000 characters, 100 turns, one turn at a timeReplay with the same request_id
Realtime API (Beta)WebSocket at wss://relay.addisassistant.com/wsSee its pageSee its pageRealtime Audio token rates, see PricingSee its pageSee its page

Two different “realtime” names

The /api/v1/realtime/* endpoints and the addis.realtime.connect SDK method stream text-to-speech. The Realtime API on relay.addisassistant.com is a separate conversation product. They share a word, not a service.

Rules for every stream

  • For transcription and speech streams, save a request ID before you send anything, so you can recover or replay the request.
  • Keep API keys on your server. Browsers connect with one-use tickets that your server creates.
  • Treat partial transcripts and streamed audio as provisional until the completion event confirms the usage.
  • Work the service has accepted is still finished and billed if your connection drops or you stop reading.

Try it

On this page