Skip to main content
Cursor sends chat completions to whatever base URL you set. The integration is two fields and a model name. Cursor gives you nowhere to set start_within, so the deadline goes on the key. Create one first (see agent keys). Pick a tier rather than Flex race. Cursor sends Chat Completions parameters that a race refuses, and Troubleshooting below explains why. Cursor keeps these settings in its own UI, with no config file to write, so this page has no agent setup prompt. The steps below take under a minute by hand.

Configure Cursor

  1. Open Cursor settings with Cmd+, on macOS, or Ctrl+, on Windows and Linux.
  2. Click Models in the sidebar.
  3. Enable Override OpenAI Base URL. Enter the router URL, including the /v1 suffix.
  4. Paste your agent key into the OpenAI API Key field.
  5. Add gpt-5.6-sol to the model list. Cursor sends this name to us verbatim.
  6. Click Verify.
Cursor appends /chat/completions to the base URL and sends the key as a bearer token. The key supplies the deadline.

Confirm the key applied

Every response comes with x-flexinference-defaults-applied. Cursor doesn’t show response headers, so read the request in the dashboard under Logs instead.

Troubleshooting

400 unsupported_parameter on every request. Cursor sent a Chat Completions parameter we don’t translate, and on a non-OpenAI model we refuse any one of them. Switch to a gpt-* model. The full list is seed, stop, presence_penalty, frequency_penalty, logit_bias, logprobs, top_logprobs, prediction, audio, modalities, and web_search_options. 400 key_default_not_applicable. Your key holds a duration and Cursor sent one of those parameters beside it, which a flex race can’t go with. Edit the key to Standard, Priority, or Auto. A 401 that doesn’t look like ours. The base URL is blank or wrong, so Cursor sent your key to api.openai.com and OpenAI refused it. Set both the base URL and the key field. 422 on Claude models. That refusal isn’t ours. We run claude-* on Chat Completions by translating the request onto Anthropic’s Messages API, as long as the body has no native Chat parameter. Cursor’s own Claude path through an overridden base URL fails this way on its side. Use a gpt-* slug to move on, or send the same request to us directly to see which side refuses it. Claude worked yesterday, 422 today. Turning Anthropic BYOK on in Cursor also turns the base URL override on without saying so. Turn one of the two off. Tab autocomplete never appears in your logs. Cursor runs Tab on its own backend, and the override applies to chat only. Nothing is wrong. Verify passed but requests still fail. Verify checks the key format and that the endpoint answers, not every feature path. Send one chat request to check it works. See errors for every refusal we return, and agent keys for the ones that are not specific to Cursor.