Skip to content

Integration & Compatibility

External call returns 403 block / 403 Forbidden

Check in order:

  1. Whether the token group matches the current model type
  2. Whether the Base URL has the wrong /v1 (Claude types omit it, Codex needs it)
  3. Whether the User-Agent header is missing or set to the wrong model type (don't reuse Claude's UA for Codex)
  4. Whether the client actually sent the headers (some clients show them in the UI but don't send them)
  5. Whether Authorization is still in Bearer sk-*** format

How to set User-Agent? Examples per scenario

Claude integration:

"User-Agent": "claude-cli/2.0.76 (external, cli)"

Codex integration:

"User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal"

Domestic model integration (use a browser-type UA):

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0"

Does the Base URL need /v1 or not?

  • Claude-type (Anthropic Messages protocol): https://your-request-address (without /v1)
  • Codex-type (OpenAI Responses protocol): https://your-request-address/v1 (with /v1)

The most common mistake is adding /v1 to a Claude address, or omitting /v1 from a Codex address.

Which 5 things to confirm before integrating?

Before configuring, line up these 5 — any mismatch can cause 403 / 401 / model unavailable:

  • Group: which model and group the Key belongs to
  • Protocol: whether the client uses Anthropic Messages or OpenAI Responses
  • Base URL: Claude-type omits /v1, Codex-type includes /v1
  • Headers: integrations need the matching User-Agent
  • Model: some groups allow leaving it blank, others require an exact model ID

JetBrains IDE shows the plugin but calls return 401

Check first:

  1. Whether the IDE picked up stale local auth state (OAuth leftovers)
  2. Whether the Key is on the correct group
  3. Whether the plugin overrode the local settings.json

Recommended: configure Claude Code or Codex locally with CC Switch first, confirm the CLI works, then reuse that local environment in the IDE.

JetBrains / Trae — local CLI works but IDE doesn't

The problem isn't the Key, it's the IDE-side config. Check whether the IDE read the wrong config file, didn't send the headers, or has extra restrictions on the local proxy/certificate.

Changed the Base URL in Trae but still can't connect

Check first:

  1. Whether the Claude / Codex Base URLs are swapped (Claude without /v1, Codex with /v1)
  2. Whether the plugin allows saving a full custom address
  3. Whether the current plugin version actually supports integration
  4. If Claude works but Codex doesn't, most likely the Codex /v1 is missing, or model is still set to a Claude model name