// integration

Cursor with teamToken

Cursor accepts a custom base URL for an OpenAI-compatible provider, which is all this takes. Three fields, but the change lands in the OpenAI slot rather than beside it, and two consequences follow that are better known in advance.

What the tool is

Cursor is a code editor with an assistant, forked from VS Code. The key and base URL for an OpenAI-compatible provider go into its settings; nothing else needs installing.

Three fields

Settings → Models → API Keys

  OpenAI API Key:            <your teamToken key>
  Override OpenAI Base URL:  https://api.teamtoken.store/v1

  + Add model: gpt-5.6-sol

The key goes into the OpenAI key field, the base URL is enabled by the toggle beside it, and then a model is added by name with the button below.

Two things that follow from this being the OpenAI slot

First. Models are added by hand, by exact catalog name. Cursor does not ask the provider for a list, so the name has to be carried across without typos, and it is better taken from GET /v1/models than from memory.

curl https://api.teamtoken.store/v1/models \
  -H "Authorization: Bearer $TEAMTOKEN_KEY"

Second, and it matters more. The override applies to the slot OpenAI used to occupy. You are not adding a provider next to it, you are changing the address of the existing one, so everything on that slot comes here. Usually that is exactly the point, but if you expected to keep both at once, this is not how it works.

Cursor features served by its own infrastructure rather than through the OpenAI slot are not affected by this setting.

Which models to add

gpt-5.6-sol as the default, gpt-5.3-codex for long code edits, and gemini-3.1-pro when a second opinion helps. Take the names from the catalog exactly.

Spend caps per key

An editor reaches for a model often and without asking you, so a separate key with a ceiling makes sense here. The balance stays shared, the cap sits on that key, and revoking it is instant.

When it does not work

The model does not show up
It has to be added by hand, by name. Cursor does not request a list from the provider.
An error about an unknown model
The name has to match the catalog exactly, with no provider prefix. Check GET /v1/models.
The key is rejected
The key must be ours, sitting in the OpenAI key field, with the base URL override switched on. Without the toggle the requests go to OpenAI's address, where our key is not valid.
Related
Kilo CodeCodex CLIZed
Get an API key