Skip to content

Providers

GPT-5 family

OpenAI language: GPT-5 family, with every setting it accepts, the allowed value and the default.

The GPT-5 generation: these models think before they answer, which costs both latency and tokens.

Reached through the LiveKit Inference gateway.

temperature and maxTokens are set on the model catalogue entry rather than in a provider body; everything else here is sent to the gateway exactly as written, so these use the upstream spelling. The two generations differ in what they honour, and the GPT-5 models ignore several settings rather than refusing them. There is no list of permitted settings on this route, so a name that is not a chat-completions parameter at all is not caught by OnCore: it fails inside the client LiveKit calls the provider with, before any request goes out, and automatic failover answers that turn instead, so the reply comes from a different model than the one you selected. A value the provider refuses ends the same way, and that is what the If invalid column means on this page. Every language model on this platform runs behind automatic failover, so a refused setting never reaches the caller as an error: another model answers that turn on its own settings, and the reply reads perfectly normally. Measured on 2026-09-03, an in-range frequency_penalty that Gemini refuses outright came back as an ordinary answer written by the failover model, with nothing in it to say so. Send only the settings listed here.

Read this before using GPT-5 family

The token budget covers internal reasoning as well as the reply, and the reasoning is spent first, so allow at least 2000 tokens when reasoning_effort is set. gpt-5 and gpt-5-mini also timed out mid-call on every test call, and failover answered in their place, so prefer gpt-5.1 or gpt-5.2 for a live assistant. temperature, top_p, frequency_penalty and presence_penalty are accepted by these models and then ignored, so a temperature set on an assistant using one of them does nothing. max_tokens and stop are refused outright; use max_completion_tokens.

Settings#

Every setting is optional. Leave one out and OnCore sends nothing for it, so the Default applies. If invalid is what the provider does with a value it does not accept.

SettingTypeAllowedDefaultIf invalid
maxTokensinteger1 or greaterProvider's ownRefused, failover answers
max_completion_tokensinteger1 or greaterthe model entry's maxTokensRefused, failover answers
reasoning_effortstringlow, medium, highthe model's own defaultUsed as sent

Overriding on a single call#

Return this from your assistant-request webhook to apply these settings to one call. This is the only route that carries them. A model in your catalogue stores the model id, temperature and maxTokens, and nothing else, so every other setting on this page is sent per call or not at all.

json
{
  "data": {
    "overrides": {
      "model": {
        "settings": {
          "maxTokens": 250,
          "max_completion_tokens": 2000,
          "reasoning_effort": "low"
        }
      }
    }
  }
}

Send only the keys you want. A key you leave out is not sent at all, so the Default applies rather than a stored value. Add "id" beside "settings" to swap the whole model for another one from your catalogue at the same time.

max_completion_tokens: The raw form of maxTokens, and the only token limit these models accept. max_tokens is refused by every GPT-5 model, so prefer maxTokens on the model entry unless you need to override it for a single call.

reasoning_effort: Only the GPT-5 models act on this. The value is not checked, so a misspelling is accepted and silently does nothing.

Models this page covers#

gpt-5, gpt-5-mini, gpt-5.1 and gpt-5.2. All four accept exactly the settings above and reject the same ones, so they share a page. Where they differ is speed and how much thinking they do, and that difference matters on a phone call.

Token budget and the reasoning phase#

These models think before they speak, and the thinking is paid for out of the same token budget as the reply. The budget comes from maxTokens on the model entry, or from max_completion_tokens if you override it for a single call. Reasoning is spent first, so a budget that looks generous for a spoken sentence can be consumed entirely before any words exist.

Measured on one deliberately hard question, each model spent:

Modelreasoning_effort: lowhighnot set
gpt-51,663no answer within 90 seconds5,472
gpt-5-mini1,2908,0632,793
gpt-5.11,3146,809418
gpt-5.21,3543,358305

Leaving reasoning_effort unset does not keep the spend small. The model still decides how much to think, and on a question it finds hard it will think a great deal: gpt-5 spent 5,472 tokens with nothing set at all.

Leaving headroom

Because thinking is charged to the same budget and spent before the reply, the limit has to cover both. Allow at least 2000 tokens whenever reasoning_effort is set, and more if the assistant handles questions that need working out. A budget that only fits the spoken sentence leaves nothing for the thinking that has to happen first.

Latency, and which of these to pick#

gpt-5 and gpt-5-mini are slow enough to be a problem on a live call. Across three test calls each, at both a 400 and a 2000 token budget, every single call hit a request timeout mid-conversation. Automatic failover kept the call alive and answered it, so the caller heard a pause of several seconds and then a reply produced by a different model than the one selected. gpt-5.1 and gpt-5.2 never timed out across the same tests.

For a voice assistant, prefer gpt-5.1 or gpt-5.2. Treat reasoning_effort: high as unusable on any of them: it cost five times the tokens of low, and on gpt-5 no answer arrived within 90 seconds. All of that thinking happens before the caller hears a word.

Next steps#