Sanas · AsyncAPI Specification

Sanas Stream API

Version v3

Real-time speech-to-speech translation over a single persistent WebSocket connection. Supports consecutive and simultaneous modes. Modeled by API Evangelist from the published Sanas WebSocket API and Stream message-layer documentation; not a Sanas-published AsyncAPI document.

View Spec View on GitHub CompanySpeech AIVoice AIAccent TranslationLanguage TranslationSpeech EnhancementReal-Time AudioSDKWebSocketContact CenterAsyncAPIEventsWebSockets

Channels

stream
Bidirectional WebSocket carrying JSON control text frames and PCM audio binary frames.

Messages

init
init
Opens the session and declares input/output sample rates.
configure
configure
Sets or reconfigures the translation pipeline (languages, voice, glossary, features); server replies with configured when ready. Carries optional request_id for correlation.
flush
flush
Manually finalizes the current turn; server confirms when fully processed.
configured
configured
Confirms the pipeline is ready to accept audio; echoes request_id.
transcript
transcript
Source and target transcript segments delivered as JSON.
error
error
Application-level error event on the stream.
audioFrame
audioFrame
Raw PCM audio bytes carried as a WebSocket binary frame (not JSON/base64).

Servers

wss
production
Sanas real-time translation Stream endpoint

AsyncAPI Specification

Raw ↑
generated: '2026-07-21'
method: searched
source: https://developer.sanas.ai/Docs/Language-Translation/WebSocket-API.md
spec_type: AsyncAPI
asyncapi: 3.0.0
info:
  title: Sanas Stream API
  version: v3
  description: >-
    Real-time speech-to-speech translation over a single persistent WebSocket
    connection. Supports consecutive and simultaneous modes. Modeled by API
    Evangelist from the published Sanas WebSocket API and Stream message-layer
    documentation; not a Sanas-published AsyncAPI document.
servers:
  production:
    host: api.sanaslt.com
    pathname: /v3/stream
    protocol: wss
    description: Sanas real-time translation Stream endpoint
    security:
    - $ref: '#/components/securitySchemes/apiKeyQuery'
    - $ref: '#/components/securitySchemes/bearerQuery'
channels:
  stream:
    address: /v3/stream
    description: Bidirectional WebSocket carrying JSON control text frames and PCM audio binary frames.
    messages:
      init:
        $ref: '#/components/messages/init'
      configure:
        $ref: '#/components/messages/configure'
      flush:
        $ref: '#/components/messages/flush'
      configured:
        $ref: '#/components/messages/configured'
      transcript:
        $ref: '#/components/messages/transcript'
      error:
        $ref: '#/components/messages/error'
      audioIn:
        $ref: '#/components/messages/audioFrame'
      audioOut:
        $ref: '#/components/messages/audioFrame'
operations:
  sendControl:
    action: send
    channel:
      $ref: '#/channels/stream'
    messages:
    - $ref: '#/channels/stream/messages/init'
    - $ref: '#/channels/stream/messages/configure'
    - $ref: '#/channels/stream/messages/flush'
  receiveEvents:
    action: receive
    channel:
      $ref: '#/channels/stream'
    messages:
    - $ref: '#/channels/stream/messages/configured'
    - $ref: '#/channels/stream/messages/transcript'
    - $ref: '#/channels/stream/messages/error'
components:
  securitySchemes:
    apiKeyQuery:
      type: httpApiKey
      in: query
      name: api_key
      description: Developer Console API key passed as a query parameter (validated before WebSocket upgrade).
    bearerQuery:
      type: httpApiKey
      in: query
      name: token
      description: JWT bearer token (from Supabase) passed as a query parameter.
  messages:
    init:
      title: init
      summary: Opens the session and declares input/output sample rates.
      contentType: application/json
    configure:
      title: configure
      summary: >-
        Sets or reconfigures the translation pipeline (languages, voice, glossary,
        features); server replies with configured when ready. Carries optional
        request_id for correlation.
      contentType: application/json
    flush:
      title: flush
      summary: Manually finalizes the current turn; server confirms when fully processed.
      contentType: application/json
    configured:
      title: configured
      summary: Confirms the pipeline is ready to accept audio; echoes request_id.
      contentType: application/json
    transcript:
      title: transcript
      summary: Source and target transcript segments delivered as JSON.
      contentType: application/json
    error:
      title: error
      summary: Application-level error event on the stream.
      contentType: application/json
    audioFrame:
      title: audioFrame
      summary: Raw PCM audio bytes carried as a WebSocket binary frame (not JSON/base64).
      contentType: application/octet-stream

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/sanas-stream-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.