Compatibility
What each route accepts, what reaches the model unchanged, and what returns 400. Nothing is dropped silently.
Last reviewed 2026-08-25
A parameter that would change the meaning of the output if ignored is rejected with 400 unsupported_parameter and param set to its name. Everything else is passed to the model and works as documented by OpenAI or ElevenLabs. Request bodies are validated against the OpenAI and ElevenLabs schemas.
OpenAI routes
| Route | Rejected parameters |
|---|---|
POST /openai/v1/chat/completions | audio, prediction, web_search_options, functions, function_call, modalities other than ["text"] |
POST /openai/v1/completions | none |
POST /openai/v1/responses | previous_response_id, conversation, background, prompt_cache_key |
POST /openai/v1/embeddings | none |
POST /openai/v1/audio/speech | response_format outside mp3 opus aac flac wav pcm returns 400 invalid_value |
POST /openai/v1/audio/transcriptions | response_format outside json text srt vtt verbose_json returns 400 invalid_value |
WS /openai/v1/realtime | turn_detection.type other than server_vad or null; pcmu and pcma audio formats |
Accepted on chat completions: temperature, top_p, seed, max_tokens, max_completion_tokens, stop, presence_penalty, frequency_penalty, logit_bias, logprobs, top_logprobs, response_format, tools, tool_choice, n, user, reasoning_effort, stream, stream_options.
ElevenLabs routes
| Route | Rejected parameters |
|---|---|
POST /elevenlabs/v1/speech-to-text | diarize, num_speakers (422 unsupported_parameter) |
POST /elevenlabs/v1/voices/add | invalid labels JSON (422 invalid_labels) |
WS /elevenlabs/v1/text-to-speech/{voice_id}/stream-input | unknown output_format closes with 1008 |
Accepted: model_id (any eleven_* id resolves to the model for that voice), voice_settings, output_format (full enum), seed, remove_background_noise.
Model and voice ids
| You send | Resolves to |
|---|---|
tts-1, tts-1-hd, eleven_multilingual_v2, eleven_turbo_v2_5, any eleven_* | kokoro-82m for preset voices, chatterbox for cloned voices |
whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, scribe_v1, scribe_v2 | whisper-large-v3 |
eleven_english_sts_v2, eleven_multilingual_sts_v2 | chatterbox-vc |
| OpenAI voice names, ElevenLabs premade ids | the mserve preset in the voice table |
| Unknown OpenAI model ids | 404 model_not_found, the message names the nearest mserve model |
Tested with the official SDKs
Every route on this page is tested with the official openai and elevenlabs SDKs in Python and Node before each release. Response shapes match the OpenAI and ElevenLabs schemas.