Skip to main content
Geko exposes an OpenAI-compatible speech endpoint at POST /v1/audio/speech. If you already use OpenAI’s TTS, switch to Geko by changing the base URL and model — the rest of your code stays the same.

Node (openai SDK)

Python (openai SDK)

Notes & differences

  • Voices are Geko voice names (Aigerim, Arman, …) — not OpenAI’s (alloy, etc.). Fetch the live list from /v1/voices.
  • model: OpenAI ids (tts-1, tts-1-hd, gpt-4o-mini-tts) are accepted and mapped to Geko’s default model; or pass a Geko model id like tokay-kk-v1.
  • response_format: wav (default) and pcm (raw 16-bit PCM @ 24 kHz) are supported. mp3/opus/aac/flac return 400 for now — convert with ffmpeg or use the native SDK.
  • For streaming and the full typed surface, prefer the @gekoai/sdk client.
This endpoint is a thin compatibility shim over the same engine as POST /v1/tts — handy for dropping Geko into tools that already speak OpenAI.

Next steps

TypeScript SDK

The native client with streaming and the full typed surface.

API reference

The raw HTTP endpoints behind the compatibility shim.

Playing & saving audio

Turn the response bytes into files or playback.

Pick a voice

Geko voice names to pass as voice.