Text to Speech API
One endpoint, every major voice model. Send text to /v1/audio/speech with the model you want and get back a hosted audio file. Priced per character of input, paid per call, no account.
15 models from 6 providers: xAI, OpenAI, MiniMax, Inworld, Google, ElevenLabs.
Models
| Model | Provider | Price |
|---|---|---|
| grok-tts | xAI | $0.000028 Per character |
| tts-1-hd | OpenAI | $0.000054 Per character |
| tts-1 | OpenAI | $0.000028 Per character |
| speech-2.8-turbo | MiniMax | $0.000108 Per character |
| speech-2.8-hd | MiniMax | $0.000180 Per character |
| tts-2 | Inworld | $0.000063 Per character |
| tts-1.5-max | Inworld | $0.000063 Per character |
| tts-1.5-mini | Inworld | $0.000046 Per character |
| gemini-3.1-flash-tts | $0.000039 Per character | |
| eleven-v3 | ElevenLabs | $0.000120 Per character |
| eleven-multilingual-v2 | ElevenLabs | $0.000120 Per character |
| eleven-turbo-v2-5 | ElevenLabs | $0.000060 Per character |
| eleven-flash-v2-5 | ElevenLabs | $0.000060 Per character |
| gemini-3.8-flash-tts | $0.000029 Per character | |
| gemini-3.8-flash-lite-tts | $0.000020 Per character |
Call it
The first response is 402 with the exact price and every way to pay. Pay,
repeat the request with the proof, and you get the result.
curl -X POST https://api.glianalabs.com/v1/audio/speech \
-H 'content-type: application/json' \
-d '{"model":"grok-tts","input":"Selamat pagi! Your order has shipped."}'How it works
The endpoint follows the OpenAI audio/speech shape: `input` is the text and `model` picks the provider. Each model keeps its own options (voice, speed, output format), listed by GET /v1/schema?model=<id>. The audio is stored and returned as a stable URL.
Limits worth knowing
The price scales with the length of the text, so it is quoted for the exact request before you pay. Voices and languages differ by model; check the schema rather than assuming one model has another’s voice. Audio URLs expire after 7 days, so download what you keep.
Questions
How is text to speech priced?
Per character of input, at each model’s own rate. GET /v1/price returns the exact cost of a request before you send it.
Can I keep using the OpenAI SDK?
Yes. The request shape matches OpenAI’s audio/speech, so point the SDK’s base URL at https://api.glianalabs.com/v1 and wrap its fetch with a payment client.
Which languages are supported?
It depends on the model. Multilingual models such as ElevenLabs Multilingual v2 and Google’s Gemini TTS cover Indonesian and many others; the schema for each model lists its language options.
Is there a free tier?
No. Every call is paid individually, with no plan or minimum. A request that fails validation is refused before it runs, so it is never charged.
Do I need an account or an API key?
No. The first response is HTTP 402 with the exact price; pay it with USDC from your own wallet and repeat the request. To prepay instead, top up a balance in rupiah and send a gk_ key.