> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slng.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Unified STT

> Stream audio to any WebSocket-capable STT model over SLNG's native protocol. Send `init`, then audio as base64 `audio` messages or raw binary frames; the gateway returns `ready`, `partial_transcript`, `final_transcript`, provider-dependent `utterance_end`, and flat `error` frames. A `final_transcript` is a finalized segment that may be empty and is never a completion signal; `finalize` requests processing while input stays open; `close` is the definitive end of input, after which the client drains remaining results until the gateway closes the WebSocket with code 1000. Send `keepalive` every 3–5 seconds whenever input is open without audio (Nova); a WebSocket ping is not a keepalive. Optional `utterance_final` and `finalize_result` booleans report provider speech endpoints and finalize provenance and must not be treated as acknowledgements. The gateway emits no `duration` or `language` on transcripts.



## AsyncAPI

````yaml api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/stt/{model_variant}
id: /v1/bridges/unmute/stt/{model_variant}
title: Unmute STT Bridge
description: >-
  Stream audio to any WebSocket-capable STT model over SLNG's native protocol.
  Send `init`, then audio as base64 `audio` messages or raw binary frames; the
  gateway returns `ready`, `partial_transcript`, `final_transcript`,
  provider-dependent `utterance_end`, and flat `error` frames. A
  `final_transcript` is a finalized segment that may be empty and is never a
  completion signal; `finalize` requests processing while input stays open;
  `close` is the definitive end of input, after which the client drains
  remaining results until the gateway closes the WebSocket with code 1000. Send
  `keepalive` every 3–5 seconds whenever input is open without audio (Nova); a
  WebSocket ping is not a keepalive. Optional `utterance_final` and
  `finalize_result` booleans report provider speech endpoints and finalize
  provenance and must not be treated as acknowledgements. The gateway emits no
  `duration` or `language` on transcripts.
servers:
  - id: production
    protocol: wss
    host: api.slng.ai
    bindings: []
    variables: []
address: /v1/bridges/unmute/stt/{model_variant}
parameters: []
bindings:
  - protocol: ws
    version: latest
    value:
      method: GET
    schemaProperties:
      - name: method
        type: string
        description: GET
        required: false
operations:
  - &ref_2
    id: unmuteSttBridgeReceiveInit
    title: Unmute stt bridge receive init
    description: Initialize session on Unmute STT Bridge
    type: receive
    messages:
      - &ref_12
        id: UnmuteSttInitMessage
        contentType: application/json
        payload:
          - name: Init (Unmute STT)
            description: Initialize Unmute STT session with configuration.
            type: object
            properties:
              - name: type
                type: string
                description: init
                required: true
              - name: config
                type: object
                description: Session configuration.
                required: false
                properties:
                  - name: language
                    type: string
                    description: ISO-639-1 language code.
                    enumValues:
                      - en
                      - ja
                      - zh
                      - de
                      - hi
                      - fr
                      - ko
                      - pt
                      - it
                      - es
                      - id
                      - nl
                      - tr
                      - fil
                      - pl
                      - sv
                      - bg
                      - ro
                      - ar
                      - cs
                      - el
                      - fi
                      - hr
                      - ms
                      - sk
                      - da
                      - ta
                      - uk
                      - ru
                      - hu
                      - 'no'
                      - vi
                    required: false
                  - name: sample_rate
                    type: integer
                    description: Audio sample rate in Hz.
                    enumValues:
                      - 8000
                      - 16000
                      - 22050
                      - 24000
                      - 32000
                      - 44100
                      - 48000
                    required: false
                  - name: channels
                    type: integer
                    description: >-
                      Input channel count. Optional on SLNG-hosted Nova routes
                      (defaults to 1); used to meter raw audio exactly.
                    required: false
                  - name: encoding
                    type: string
                    description: >-
                      Input audio encoding. SLNG-hosted Nova routes accept
                      `linear16` (8000/16000 Hz); other targets may accept the
                      remaining values.
                    enumValues:
                      - linear16
                      - LINEAR16
                      - pcm_s16le
                      - pcm_l16
                      - pcm_raw
                      - pcm_f32le
                      - wav
                      - mulaw
                      - mp3
                      - opus
                    required: false
                  - name: enable_vad
                    type: boolean
                    description: >-
                      Enable voice activity detection where the provider
                      supports it.
                    required: false
                  - name: enable_partials
                    type: boolean
                    description: >-
                      Enable interim `partial_transcript` results. Required for
                      Nova `utterance_end` events.
                    required: false
                  - name: description
                    type: string
                    description: >-
                      Provider-specific (Deepgram) silence detector. Integer
                      milliseconds of silence before a segment is finalized, or
                      `false` to disable. Controls segment finalization, not
                      utterance end.
                    required: false
                  - name: utterance_end_ms
                    type: integer
                    description: >-
                      Provider-specific (Deepgram) word-gap detector in
                      milliseconds that produces `utterance_end` events.
                      Requires `enable_partials: true`.
                    required: false
                  - name: keyterm
                    type: array
                    description: Keyterms to boost recognition on Deepgram Nova 3 models.
                    required: false
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Optional session configuration sent before audio. Besides the fields
            below, any provider-specific option declared by the selected model
            is passed through unchanged (Deepgram-backed models also accept
            `punctuate`, `smart_format`, `diarize`, `numerals`,
            `profanity_filter`). On SLNG-hosted Nova HTTP routes
            `smart_format=true` currently fails upstream while `punctuate=true`
            works; WebSocket `smart_format` on hosted routes has not been
            qualified.
          required:
            - type
          properties:
            type:
              type: string
              const: init
              x-parser-schema-id: <anonymous-schema-2>
            config:
              type: object
              description: Session configuration.
              properties:
                language:
                  type: string
                  description: ISO-639-1 language code.
                  enum:
                    - en
                    - ja
                    - zh
                    - de
                    - hi
                    - fr
                    - ko
                    - pt
                    - it
                    - es
                    - id
                    - nl
                    - tr
                    - fil
                    - pl
                    - sv
                    - bg
                    - ro
                    - ar
                    - cs
                    - el
                    - fi
                    - hr
                    - ms
                    - sk
                    - da
                    - ta
                    - uk
                    - ru
                    - hu
                    - 'no'
                    - vi
                  x-parser-schema-id: LanguageCode
                sample_rate:
                  type: integer
                  description: Audio sample rate in Hz.
                  enum:
                    - 8000
                    - 16000
                    - 22050
                    - 24000
                    - 32000
                    - 44100
                    - 48000
                  x-parser-schema-id: SampleRate
                channels:
                  type: integer
                  minimum: 1
                  maximum: 16
                  description: >-
                    Input channel count. Optional on SLNG-hosted Nova routes
                    (defaults to 1); used to meter raw audio exactly.
                  x-parser-schema-id: <anonymous-schema-4>
                encoding:
                  type: string
                  description: >-
                    Input audio encoding. SLNG-hosted Nova routes accept
                    `linear16` (8000/16000 Hz); other targets may accept the
                    remaining values.
                  enum:
                    - linear16
                    - LINEAR16
                    - pcm_s16le
                    - pcm_l16
                    - pcm_raw
                    - pcm_f32le
                    - wav
                    - mulaw
                    - mp3
                    - opus
                  x-parser-schema-id: <anonymous-schema-5>
                enable_vad:
                  type: boolean
                  description: >-
                    Enable voice activity detection where the provider supports
                    it.
                  x-parser-schema-id: <anonymous-schema-6>
                enable_partials:
                  type: boolean
                  description: >-
                    Enable interim `partial_transcript` results. Required for
                    Nova `utterance_end` events.
                  x-parser-schema-id: <anonymous-schema-7>
                endpointing:
                  description: >-
                    Provider-specific (Deepgram) silence detector. Integer
                    milliseconds of silence before a segment is finalized, or
                    `false` to disable. Controls segment finalization, not
                    utterance end.
                  x-parser-schema-id: <anonymous-schema-8>
                utterance_end_ms:
                  type: integer
                  minimum: 1000
                  maximum: 5000
                  description: >-
                    Provider-specific (Deepgram) word-gap detector in
                    milliseconds that produces `utterance_end` events. Requires
                    `enable_partials: true`.
                  x-parser-schema-id: <anonymous-schema-9>
                keyterm:
                  type: array
                  description: Keyterms to boost recognition on Deepgram Nova 3 models.
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-11>
                  x-parser-schema-id: <anonymous-schema-10>
              x-parser-schema-id: <anonymous-schema-3>
          x-parser-schema-id: <anonymous-schema-1>
        title: Init (Unmute STT)
        description: Initialize Unmute STT session with configuration.
        example: |-
          {
            "type": "init",
            "config": {
              "language": "en",
              "sample_rate": 16000,
              "channels": 1,
              "encoding": "linear16",
              "enable_partials": true
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttInitMessage
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: /v1/bridges/unmute/stt/{model_variant}
  - &ref_3
    id: unmuteSttBridgeReceiveAudio
    title: Unmute stt bridge receive audio
    description: Send audio to Unmute STT Bridge
    type: receive
    messages:
      - &ref_13
        id: UnmuteSttAudioMessage
        contentType: application/json
        payload:
          - name: Audio (Unmute STT)
            description: Send audio data to Unmute STT Bridge.
            type: object
            properties:
              - name: type
                type: string
                description: audio
                required: true
              - name: data
                type: string
                description: Base64-encoded audio bytes.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Base64 audio in a JSON text frame. The same bytes may instead be
            sent as raw binary WebSocket frames; both forms are metered as input
            audio in the encoding declared by `init`. Silent PCM advances the
            audio stream and is metered; use `keepalive` for silence instead.
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: audio
              x-parser-schema-id: <anonymous-schema-13>
            data:
              type: string
              format: byte
              description: Base64-encoded audio bytes.
              x-parser-schema-id: <anonymous-schema-14>
          x-parser-schema-id: <anonymous-schema-12>
        title: Audio (Unmute STT)
        description: Send audio data to Unmute STT Bridge.
        example: |-
          {
            "type": "audio",
            "data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEA..."
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttAudioMessage
    bindings: []
    extensions: *ref_0
  - &ref_4
    id: unmuteSttBridgeReceiveFinalize
    title: Unmute stt bridge receive finalize
    description: >-
      Request processing of buffered audio on Unmute STT Bridge without closing
      input
    type: receive
    messages:
      - &ref_14
        id: UnmuteSttFinalizeMessage
        contentType: application/json
        payload:
          - name: Finalize (Unmute STT)
            description: Request processing of buffered audio without closing input.
            type: object
            properties:
              - name: type
                type: string
                description: finalize
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Requests processing and leaves input open. Nova does not guarantee a
            response and does not correlate results to this request: zero, one,
            or several final segments (including empty ones) may follow, and a
            later result may carry `finalize_result: true` as provenance only.
            Keep receiving and keep sending keepalives; do not pair finals with
            finalize requests or implement a completion timeout. Use `close` for
            a complete input stream.
          required:
            - type
          properties:
            type:
              type: string
              const: finalize
              x-parser-schema-id: <anonymous-schema-16>
          x-parser-schema-id: <anonymous-schema-15>
        title: Finalize (Unmute STT)
        description: Request processing of buffered audio without closing input.
        example: |-
          {
            "type": "finalize"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttFinalizeMessage
    bindings: []
    extensions: *ref_0
  - &ref_5
    id: unmuteSttBridgeReceiveClose
    title: Unmute stt bridge receive close
    description: Close audio input on Unmute STT Bridge and drain remaining results
    type: receive
    messages:
      - &ref_15
        id: UnmuteSttCloseMessage
        contentType: application/json
        payload:
          - name: Close (Unmute STT)
            description: Close audio input and drain remaining results.
            type: object
            properties:
              - name: type
                type: string
                description: close
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Signals that no more audio will be sent. The gateway forwards the
            provider's close-stream control, keeps delivering every remaining
            result, and then closes the WebSocket with code 1000. Successful
            closure after `close` is the only definitive completion signal; a
            final transcript or utterance boundary alone is not. Use a new
            connection for the next independent input.
          required:
            - type
          properties:
            type:
              type: string
              const: close
              x-parser-schema-id: <anonymous-schema-18>
          x-parser-schema-id: <anonymous-schema-17>
        title: Close (Unmute STT)
        description: Close audio input and drain remaining results.
        example: |-
          {
            "type": "close"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttCloseMessage
    bindings: []
    extensions: *ref_0
  - &ref_6
    id: unmuteSttBridgeReceiveKeepalive
    title: Unmute stt bridge receive keepalive
    description: Send application keepalive on Unmute STT Bridge
    type: receive
    messages:
      - &ref_16
        id: UnmuteSttKeepaliveMessage
        contentType: application/json
        payload:
          - name: Keepalive (Unmute STT)
            description: Application keepalive while input is open without audio.
            type: object
            properties:
              - name: type
                type: string
                description: keepalive
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Carries no audio and produces no reply. For Nova, send every 3–5
            seconds whenever input remains open without audio; the provider ends
            idle streams after roughly ten seconds. The gateway forwards it as
            the provider's native keepalive and resets its own idle timeout, but
            it never extends the maximum session duration. A WebSocket ping is
            answered but is not an application keepalive.
          required:
            - type
          properties:
            type:
              type: string
              const: keepalive
              x-parser-schema-id: <anonymous-schema-20>
          x-parser-schema-id: <anonymous-schema-19>
        title: Keepalive (Unmute STT)
        description: Application keepalive while input is open without audio.
        example: |-
          {
            "type": "keepalive"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttKeepaliveMessage
    bindings: []
    extensions: *ref_0
  - &ref_7
    id: unmuteSttBridgeSendReady
    title: Unmute stt bridge send ready
    description: Receive ready signal from Unmute STT Bridge
    type: send
    messages:
      - &ref_17
        id: UnmuteSttReadyMessage
        contentType: application/json
        payload:
          - name: Ready (Unmute STT)
            description: Unmute STT session is ready.
            type: object
            properties:
              - name: type
                type: string
                description: ready
                required: true
              - name: session_id
                type: string
                description: Gateway request identifier for this session.
                required: true
              - name: slng_request_id
                type: string
                description: >-
                  SLNG request identifier (same value as `session_id`) for log
                  correlation.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Sent once after the upstream session is open. `session_id` and
            `slng_request_id` carry the same gateway request identifier; quote
            it when reporting problems.
          required:
            - type
            - session_id
            - slng_request_id
          properties:
            type:
              type: string
              const: ready
              x-parser-schema-id: <anonymous-schema-22>
            session_id:
              type: string
              description: Gateway request identifier for this session.
              x-parser-schema-id: <anonymous-schema-23>
            slng_request_id:
              type: string
              description: >-
                SLNG request identifier (same value as `session_id`) for log
                correlation.
              x-parser-schema-id: <anonymous-schema-24>
          x-parser-schema-id: <anonymous-schema-21>
        title: Ready (Unmute STT)
        description: Unmute STT session is ready.
        example: |-
          {
            "type": "ready",
            "session_id": "2c9953d7-d4b4-4385-bb27-f64e0d979be5",
            "slng_request_id": "2c9953d7-d4b4-4385-bb27-f64e0d979be5"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttReadyMessage
    bindings: []
    extensions: *ref_0
  - &ref_8
    id: unmuteSttBridgeSendPartialTranscript
    title: Unmute stt bridge send partial transcript
    description: Receive partial transcript from Unmute STT Bridge
    type: send
    messages:
      - &ref_18
        id: UnmuteSttPartialTranscript
        contentType: application/json
        payload:
          - name: Partial Transcript (Unmute STT)
            description: Interim (revisable) transcription result.
            type: object
            properties:
              - name: type
                type: string
                description: partial_transcript
                required: true
              - name: transcript
                type: string
                description: Interim text so far.
                required: true
              - name: confidence
                type: number
                description: Provider confidence (0-1) when reported.
                required: false
              - name: utterance_final
                type: boolean
                description: >-
                  Present only when the provider reports a speech endpoint for
                  this result (Nova `speech_final`). Not stream completion and
                  not a turn acknowledgement.
                required: false
              - name: finalize_result
                type: boolean
                description: >-
                  Present only when the provider attributes this result to
                  finalize processing (Nova `from_finalize`). Informational
                  provenance; uncorrelated with any specific `finalize` and not
                  proof that all submitted audio was processed.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Revisable segment text; replace provisional text with the latest
            partial. Only `type` and `transcript` are always present.
          required:
            - type
            - transcript
          properties:
            type:
              type: string
              const: partial_transcript
              x-parser-schema-id: <anonymous-schema-26>
            transcript:
              type: string
              description: Interim text so far.
              x-parser-schema-id: <anonymous-schema-27>
            confidence:
              type: number
              description: Provider confidence (0-1) when reported.
              x-parser-schema-id: <anonymous-schema-28>
            utterance_final:
              type: boolean
              description: >-
                Present only when the provider reports a speech endpoint for
                this result (Nova `speech_final`). Not stream completion and not
                a turn acknowledgement.
              x-parser-schema-id: <anonymous-schema-29>
            finalize_result:
              type: boolean
              description: >-
                Present only when the provider attributes this result to
                finalize processing (Nova `from_finalize`). Informational
                provenance; uncorrelated with any specific `finalize` and not
                proof that all submitted audio was processed.
              x-parser-schema-id: <anonymous-schema-30>
          x-parser-schema-id: <anonymous-schema-25>
        title: Partial Transcript (Unmute STT)
        description: Interim (revisable) transcription result.
        example: |-
          {
            "type": "partial_transcript",
            "transcript": "Hello wor",
            "confidence": 0.85
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttPartialTranscript
    bindings: []
    extensions: *ref_0
  - &ref_9
    id: unmuteSttBridgeSendFinalTranscript
    title: Unmute stt bridge send final transcript
    description: Receive a finalized segment (possibly empty) from Unmute STT Bridge
    type: send
    messages:
      - &ref_19
        id: UnmuteSttFinalTranscript
        contentType: application/json
        payload:
          - name: Final Transcript (Unmute STT)
            description: A finalized segment, possibly empty.
            type: object
            properties:
              - name: type
                type: string
                description: final_transcript
                required: true
              - name: transcript
                type: string
                description: Finalized segment text; may be an empty string.
                required: true
              - name: confidence
                type: number
                description: Provider confidence (0-1) when reported.
                required: false
              - name: utterance_final
                type: boolean
                description: >-
                  Present only when the provider reports a speech endpoint for
                  this result (Nova `speech_final`). Not stream completion and
                  not a turn acknowledgement.
                required: false
              - name: finalize_result
                type: boolean
                description: >-
                  Present only when the provider attributes this result to
                  finalize processing (Nova `from_finalize`). Informational
                  provenance; uncorrelated with any specific `finalize` and not
                  proof that all submitted audio was processed.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            A finalized segment. Append nonempty text in arrival order and keep
            receiving: segment finality does not close input or complete the
            stream, and an empty segment is never a completion sentinel. Only
            `type` and `transcript` are always present. The gateway emits no
            `duration`, `language`, or timing fields on this message; absent
            optional booleans mean the provider did not report them (they are
            never filled with `false`).
          required:
            - type
            - transcript
          properties:
            type:
              type: string
              const: final_transcript
              x-parser-schema-id: <anonymous-schema-32>
            transcript:
              type: string
              description: Finalized segment text; may be an empty string.
              x-parser-schema-id: <anonymous-schema-33>
            confidence:
              type: number
              description: Provider confidence (0-1) when reported.
              x-parser-schema-id: <anonymous-schema-34>
            utterance_final:
              type: boolean
              description: >-
                Present only when the provider reports a speech endpoint for
                this result (Nova `speech_final`). Not stream completion and not
                a turn acknowledgement.
              x-parser-schema-id: <anonymous-schema-35>
            finalize_result:
              type: boolean
              description: >-
                Present only when the provider attributes this result to
                finalize processing (Nova `from_finalize`). Informational
                provenance; uncorrelated with any specific `finalize` and not
                proof that all submitted audio was processed.
              x-parser-schema-id: <anonymous-schema-36>
          x-parser-schema-id: <anonymous-schema-31>
        title: Final Transcript (Unmute STT)
        description: A finalized segment, possibly empty.
        example: |-
          {
            "type": "final_transcript",
            "transcript": "Hello world",
            "confidence": 0.95
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttFinalTranscript
    bindings: []
    extensions: *ref_0
  - &ref_10
    id: unmuteSttBridgeSendUtteranceEnd
    title: Unmute stt bridge send utterance end
    description: Receive provider-dependent utterance end marker from Unmute STT Bridge
    type: send
    messages:
      - &ref_20
        id: UnmuteSttUtteranceEnd
        contentType: application/json
        payload:
          - name: Utterance End (Unmute STT)
            description: Provider-dependent end-of-utterance marker.
            type: object
            properties:
              - name: type
                type: string
                description: utterance_end
                required: true
              - name: last_word_end
                type: number
                description: >-
                  Audio timestamp in seconds of the last transcribed word, when
                  reported.
                required: false
              - name: channel
                type: array
                description: Provider channel index for the boundary, when reported.
                required: false
                properties:
                  - name: item
                    type: integer
                    required: false
              - name: stream_id
                type: integer
                description: Provider stream identifier (Gradium only).
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Emitted independently of `final_transcript` when the provider
            reports a word-gap utterance boundary. It is not stream completion
            and does not cover queued audio. Nova sends it only when
            `utterance_end_ms` is set together with `enable_partials: true`,
            with `last_word_end` and `channel`; `stream_id` is supplied by
            Gradium only. Providers without endpoint detection never send it.
          required:
            - type
          properties:
            type:
              type: string
              const: utterance_end
              x-parser-schema-id: <anonymous-schema-38>
            last_word_end:
              type: number
              description: >-
                Audio timestamp in seconds of the last transcribed word, when
                reported.
              x-parser-schema-id: <anonymous-schema-39>
            channel:
              type: array
              description: Provider channel index for the boundary, when reported.
              items:
                type: integer
                x-parser-schema-id: <anonymous-schema-41>
              x-parser-schema-id: <anonymous-schema-40>
            stream_id:
              type: integer
              description: Provider stream identifier (Gradium only).
              x-parser-schema-id: <anonymous-schema-42>
          x-parser-schema-id: <anonymous-schema-37>
        title: Utterance End (Unmute STT)
        description: Provider-dependent end-of-utterance marker.
        example: |-
          {
            "type": "utterance_end",
            "last_word_end": 2.395,
            "channel": [
              0
            ]
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttUtteranceEnd
    bindings: []
    extensions: *ref_0
  - &ref_11
    id: unmuteSttBridgeSendError
    title: Unmute stt bridge send error
    description: Receive error from Unmute STT Bridge
    type: send
    messages:
      - &ref_21
        id: UnmuteSttErrorMessage
        contentType: application/json
        payload:
          - name: Error (Unmute STT)
            description: Error occurred during Unmute STT session.
            type: object
            properties:
              - name: type
                type: string
                description: error
                required: true
              - name: code
                type: &ref_1
                  - string
                  - integer
                description: >-
                  Error code. Gateway codes are strings; a verbatim provider
                  passthrough keeps the provider's value, which may be numeric.
                required: true
              - name: message
                type: string
                description: Human-readable error description; wording may change.
                required: true
              - name: slng_request_id
                type: string
                description: >-
                  SLNG request identifier for log correlation; present on every
                  gateway-generated or gateway-translated error, absent on a
                  verbatim provider passthrough.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Flat error frame; there is no nested `data` envelope.
            Gateway-generated codes are `config_error`, `processing_error`,
            `provider_error`, and `rate_limit` (oversize payloads and
            message-rate breaches both report `rate_limit`); these and provider
            errors translated by the gateway always carry `slng_request_id`. A
            provider frame that already has `type: error` and that the
            provider's catalog does not declare is forwarded verbatim (reson8),
            so `code` is then the provider's own value (possibly numeric) and
            `slng_request_id` is absent. Branch on `code`, not on `message`
            text. Authentication failures are rejected at the HTTP upgrade and
            never arrive as this message.
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              const: error
              x-parser-schema-id: <anonymous-schema-44>
            code:
              type: *ref_1
              description: >-
                Error code. Gateway codes are strings; a verbatim provider
                passthrough keeps the provider's value, which may be numeric.
              x-parser-schema-id: <anonymous-schema-45>
            message:
              type: string
              description: Human-readable error description; wording may change.
              x-parser-schema-id: <anonymous-schema-46>
            slng_request_id:
              type: string
              description: >-
                SLNG request identifier for log correlation; present on every
                gateway-generated or gateway-translated error, absent on a
                verbatim provider passthrough.
              x-parser-schema-id: <anonymous-schema-47>
          x-parser-schema-id: <anonymous-schema-43>
        title: Error (Unmute STT)
        description: Error occurred during Unmute STT session.
        example: |-
          {
            "type": "error",
            "code": "provider_error",
            "message": "STT provider completed before input close",
            "slng_request_id": "2c9953d7-d4b4-4385-bb27-f64e0d979be5"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttErrorMessage
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_2
  - *ref_3
  - *ref_4
  - *ref_5
  - *ref_6
receiveOperations:
  - *ref_7
  - *ref_8
  - *ref_9
  - *ref_10
  - *ref_11
sendMessages:
  - *ref_12
  - *ref_13
  - *ref_14
  - *ref_15
  - *ref_16
receiveMessages:
  - *ref_17
  - *ref_18
  - *ref_19
  - *ref_20
  - *ref_21
extensions:
  - id: x-parser-unique-object-id
    value: /v1/bridges/unmute/stt/{model_variant}
securitySchemes:
  - id: bearer
    name: bearer
    type: http
    description: >
      API key issued by SLNG. Pass as `Authorization: Bearer <token>` in the
      WebSocket upgrade request headers.
    scheme: bearer
    extensions: []

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.