Skip to main content
POST
/
audio
/
speech
Generate speech
curl --request POST \
  --url https://api.orcarouter.ai/v1/audio/speech \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "openai/tts-1",
  "input": "<string>",
  "voice": "<string>",
  "instructions": "<string>",
  "speed": 2.125,
  "stream_format": "<string>",
  "response_format": "mp3"
}
'

Authorizations

Authorization
string
header
required

OrcaRouter API keys look like sk-orca-.... Pass them in the Authorization: Bearer sk-orca-... header.

Body

application/json
model
string
required

OpenAI TTS model — openai/tts-1, openai/tts-1-hd, openai/gpt-4o-mini-tts. Gemini TTS preview models are not served on this endpoint; use Gemini's native /v1beta/ surface with responseModalities: ["AUDIO"] instead.

Example:

"openai/tts-1"

input
string
required
voice
string
required

Voice identifier. The gateway forwards this field to the upstream unchanged — use whichever voice name the upstream model supports.

Examples:

"alloy"

"echo"

"fable"

"onyx"

"nova"

"shimmer"

instructions
string

Optional voice direction (e.g. style, tone). Honored by models that support it, such as openai/gpt-4o-mini-tts.

speed
number

Playback rate. Default 1.0.

Required range: 0.25 <= x <= 4
stream_format
string

When set, response is streamed in this format chunk-by-chunk (subject to upstream support).

response_format
enum<string>
default:mp3
Available options:
mp3,
opus,
aac,
flac,
wav,
pcm

Response

Binary audio content.