Cursor does not see your models after changing the base URL
The key is in, the URL is replaced, and the model list is empty or verification fails. Four causes by frequency.
2 min · · cursor · setup · errors
Cursor connects to a third-party API through its OpenAI key settings. The setup is simple, but it has a few non-obvious places where nearly everyone stumbles.
The URL needs /v1
Cursor speaks through the OpenAI SDK, which treats the versioned prefix as the base. The correct value is:
https://api.zukko.pro/v1
Without /v1 requests land at the root and you get a 404. This is cause number one — check it first.
You must press the verify button
Cursor will not use a third-party key until verification succeeds. Filling the fields and closing settings is not enough: the toggle stays off, the IDE keeps using its own backend, and you believe you are connected.
The order is: paste the key, paste the URL, press verify, wait for the green result, and only then close the dialog.
Model names must be added by hand
Cursor does not fetch the model catalogue automatically. The list keeps its built-in names, which may not exist on a third-party gateway — a request goes out for gpt-4o, we have no such model, and back comes a 404 about a missing model.
Add the names you need manually, exactly as they appear in the catalogue. To see the exact identifiers:
curl -s https://api.zukko.pro/v1/modelsIt is worth removing the leftover built-in names: picking one by accident produces a confusing error.
Not every Cursor mode uses your key
This is a limitation of the editor, not the gateway. Ordinary chat and in-editor edits go through the API you configured. Some proprietary features — inline autocomplete, certain agent modes — run on Cursor's own infrastructure and never touch your key.
Hence the familiar complaint: "my usage history is empty although I worked all day". What is billed is what actually passed through the gateway, not everything you did.
Confirming it worked
Ask anything in chat, then open the usage history in your dashboard. An event means the connection works. No event but an answer means Cursor replied from its own backend — go back to the verify-button step.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- OpenAI API Keys in the Open: Why You Should Not Use ThemWhere free keys on GitHub come from, why using them is dangerous for you and for the owner, and how to protect your own key from the same leak.
- GLM API Errors: Why the Request Fails and How to Fix ItA wrong model id, an overflowing 128K context, the key, the balance, limits: the typical causes of GLM API errors and a quick way to find yours.
- This organization has been disabled in the Claude API: What to DoAn Anthropic key suddenly answers "organization has been disabled". What the error is, what to check, and how to move the SDK and Claude Code to another provider.
- JetBrains AI Assistant not working: causes and workaroundsAI Assistant will not activate, stays silent or is off for some files. We go through the causes in the JetBrains docs and connect your own models via a gateway.