Skip to content

What you need

  • Base URL: https://api.smouter.ai/v1 — the /v1 suffix matters; leaving it off is the most common setup failure.
  • API key: an sk-smouter-… secret from API keys. It is shown once at creation — if you lost it, create a new key.
  • Model id: copied exactly from the live catalog (or GET /v1/models). Ids are matched verbatim — no vendor prefixes, no renaming.

Point Cursor at Smouter

  1. Open Cursor's settings (⌘⇧J / Ctrl+Shift+J) and go to the Models section.
  2. In the API-keys area, paste your Smouter key into the OpenAI API Key field, enable Override OpenAI Base URL, and set it to https://api.smouter.ai/v1.
  3. Add each Smouter model you want as a custom model, using the exact id from the catalog.
  4. Before clicking Verify, disable the built-in models you won't route through Smouter — Cursor validates the key against the models currently enabled, so one non-Smouter model in the list fails the whole check.
  5. Pick the Smouter model in the chat/agent model dropdown and send a message.
Base URL   https://api.smouter.ai/v1API key    sk-smouter-…            (create at smouter.ai/app/keys)Model id   exactly as listed at smouter.ai/models  (add as a custom model)

Scope note: the override applies to Cursor features that call OpenAI-style chat models. Cursor-native features with their own backend — Tab autocomplete in particular — don't go through a custom endpoint.

Scripting this? Cursor has no editable config file for model providers — these settings live in Cursor's internal state store, with keys held by the OS keychain, so the settings UI is the only supported path. If you want a setup an agent can apply for you, use a file-configured tool instead: Claude Code, Codex CLI, OpenCode, Continue, or Zed.

Verify outside the tool first

Two commands separate a Smouter problem from a tool problem. If both succeed, your key, credit, and model id are fine — whatever remains is the tool's configuration.

# Which model ids can I use right now? (no auth needed)curl -s https://api.smouter.ai/v1/models | jq -r '.data[].id'

If it doesn't work

  • Base URL wrong or missing /v1. OpenAI-style tools need exactly https://api.smouter.ai/v1 — no trailing /chat/completions, no bare api.smouter.ai. Anthropic-style tools (Claude Code) use https://api.smouter.ai with no suffix.
  • 401 auth — the key was pasted wrong, expired, or revoked. Secrets are shown once; create a fresh key in API keys and paste it whole, including the sk-smouter- prefix.
  • 402 insufficient_quota — your wallet or a per-key cap can't cover the request. Top up in Billing or raise the key's cap.
  • 404 model_not_found — the id doesn't match the catalog. Copy it verbatim from the catalog; ids are case-sensitive and carry no openai/-style prefix (where a tool requires one, the tool strips it before sending).
  • 429 — a rate or tokens-per-minute window is exhausted. Honor retry-after; per-key TPM is adjustable in API keys.
  • Scoped key. If the key has a model allowlist, every model the tool may call — including fallbacks — must be on it. When in doubt, test with an unscoped key.
  • The tool's UI moved. Settings get renamed; the three constants don't. Any field asking for an OpenAI(-compatible) base URL, key, and model name takes the values above.

Still stuck? Open a ticket with the request's x-request-id (or the error body) and we'll trace it — or email support@smouter.ai.