Speko Docs

Models

GET /v1/models — the adapters this gateway build implements.

GET /v1/models

Unauthenticated. Answers "what does this build implement", with optional filters ?kind=stt|tts and ?provider=<name>:

{
  "protocol": "speko.voice.v0",
  "protocol_revision": 3,
  "runtime": { "name": "go-gateway", "version": "0.1.0", "placement": "sidecar" },
  "models": [
    {
      "id": "elevenlabs:scribe_v2_realtime",
      "provider": "elevenlabs",
      "kind": "stt",
      "adapter": "elevenlabs.stt.v1",
      "transport": "websocket",
      "installed": true
    }
  ]
}

id is always <provider>:<default_model>. installed: false means the row is in the catalog but this deployment did not load the adapter. requires_config appears when a provider needs deployment configuration before it can route (currently only Google STT, which needs SPEKO_GOOGLE_STT_ENDPOINT).

This response shape is specific to the local gateway. The hosted relay's /v1/models is a different endpoint with a different schema — don't conflate them.

The installed catalog

The response from your running gateway is the source of truth for its installed providers, adapters, default models, and configuration requirements. The dashboard's Models page is authoritative for managed availability.

Representative local entries include Deepgram STT (flux-general-en), Deepgram TTS (flux-haley-en), and Soniox TTS (tts-rt-v2). Catalog contents change with gateway releases, so integrations should discover them through /v1/models instead of embedding a provider matrix.

Notes:

  • Adapters are named <provider>.<kind>.v1 and connect over WebSocket except Google TTS/STT, Hume, Inworld TTS, and OpenAI TTS, which are HTTP.
  • Some TTS vendors refuse to open a session without a voice, so those adapters carry a default voice for local BYOK use. Google's default is deliberately empty because its voice names embed the language.
  • Provider endpoints are validated against exact official host allowlists before credentials attach; production connections require TLS on port 443.
  • LLM adapters are not part of the local gateway — language models are served by the relay.

On this page