My first request is slow or times out
My first request is slow or times out
The GPU scales to zero when idle, so the first call after a quiet period pays a cold start (tens of seconds); the next calls are fast. Keep the SDK’s default 120 s timeout, and for predictable traffic send a lightweight
geko.health() to pre-warm. See Latency & quality.I'm getting 429 (out of credits)
I'm getting 429 (out of credits)
Can I call the API from the browser?
Can I call the API from the browser?
CORS is enabled, so cross-origin calls work — but never ship your API key to the client (it’s public the moment it’s in browser code). Proxy through your own server. See Use it in your app.
How do I get MP3 or Opus instead of WAV?
How do I get MP3 or Opus instead of WAV?
The API returns WAV (and raw
pcm via the OpenAI endpoint) today. Convert locally with ffmpeg — see Playing & saving audio. Native MP3/Opus is on the roadmap.Which voice should I use?
Which voice should I use?
Fetch the live catalog with
geko.tts.voices() (or GET /v1/voices) — each entry has style and best_for to guide the choice. Aigerim is the default.How do I stream audio for a voice agent?
How do I stream audio for a voice agent?
Use
geko.tts.stream() (SDK 0.3.0+), which yields one WAV chunk per sentence so playback can start sooner. It needs the streaming endpoint POST /v1/tts/stream.Is there a Python SDK?
Is there a Python SDK?
Not yet — use the OpenAI-compatible endpoint with the
openai Python package, or call the HTTP API directly. A native Python SDK is on the roadmap.How is usage billed?
How is usage billed?
By input characters, per organization — $0.04 / 1,000 chars. See Billing & credits.
Next steps
Errors & retries
Every status code, when it retries, and how to handle it.
Latency & quality
Cold starts, keep-warm, and the
nfe dial.Billing & credits
How usage is metered and what 429 means.
Authentication
Create keys and fix a 401.