Skip to main content
Geko bills by input characters — the text you send to synthesize. Billing is per organization, tracked as a credit balance.

Pricing

As a rough feel: $1 ≈ 25,000 characters ≈ ~30 minutes of Kazakh speech (Kazakh runs ~14 characters per second of audio). Only successful synthesis is billed, on the input character count (the X-Tokay-Chars response header reports it). The catalog endpoints — /v1/models, /v1/voices, /health — are open and free.

Running out

When your balance hits zero, synthesis requests return HTTP 429 with a detail telling you you’re out of credits. Top up in the console. The SDK surfaces this as a GekoError with status === 429 and does not retry it (see Errors & retries) — a retry can’t create credits.

Managing credits

  • Balance & history: view your current balance and per-request usage in the console.
  • Top up: add credits in the console’s billing section.
  • Estimate before you send: chars = text.length, cost_usd = chars / 25000.
Streaming (tts.stream) and the OpenAI-compatible endpoint bill identically to tts.create — by input characters, once per request. Pricing is subject to change; the console always shows the current rate.

Next steps

Limits & constraints

Request limits, rate limits, and cold starts.

Errors & retries

How the SDK surfaces a 429 out-of-credits response.

FAQ & troubleshooting

Common questions about usage and metering.