預期: A body starting {"id":"msg_… — the URL and the credential both work.
No /v1 in the base URL. Claude Code appends /v1/messages itself; adding it yields /v1/v1/messages, which this endpoint answers 404.
ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY both work here — tested. Prefer AUTH_TOKEN: API_KEY triggers a one-time approval prompt in interactive sessions, and if it was ever declined the key is ignored with no error.
A value in ~/.claude/settings.json BEATS a shell export, which is the opposite of what most people expect. A stale entry there will quietly override a fresh export.
Setting only the base URL does not switch billing. Without a credential variable a saved claude.ai login stays active — run /status inside the CLI and check it names an auth token, not a login method.
Codex CLI
https://proxystation.co/v1
安裝
npm install -g @openai/codex
設定~/.codex/config.toml
# 1. Put the key in your shell, under the name config.toml will reference:
export PROXYSTATION_API_KEY=sk-XXXXXXXXXXXXXXXX
# 2. ~/.codex/config.toml
model_provider = "proxystation"
model = "gpt-5.6-luna"
[model_providers.proxystation]
name = "proxystation"
base_url = "https://proxystation.co/v1"
env_key = "PROXYSTATION_API_KEY"
wire_api = "responses"
預期: A body with "choices" — the same call the extension makes.
apiBase keeps /v1 even when you set provider: anthropic. Continue appends only the method path, unlike the Anthropic SDK.
The same config.yaml is read by the VS Code extension, the JetBrains plugin and the cn CLI — configure once.
Cline
https://proxystation.co/v1
安裝
Install the Cline extension from the VS Code marketplace.
設定~/.cline/data/settings/providers.json
In the extension: Settings → API Provider → OpenAI Compatible
Base URL https://proxystation.co/v1
API Key sk-XXXXXXXXXXXXXXXX
Model ID gpt-5.6-luna
The CLI and the extension share ~/.cline/data/settings/providers.json.
預期: A body with "choices". Cursor keeps the key in secure storage, so this curl is the only way to check the endpoint separately from the editor.
No environment variable and no config file. The key lives in Cursor’s secure storage, so there is nothing to edit by hand and nothing to commit by accident.
Add the model id to the model list first, or the override has nothing to apply to.
SDK
OpenAI SDK
https://proxystation.co/v1
安裝
pip install openai · npm install openai
設定
export OPENAI_BASE_URL=https://proxystation.co/v1
export OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXX
# or in code
from openai import OpenAI
client = OpenAI(api_key="sk-XXXXXXXXXXXXXXXX", base_url="https://proxystation.co/v1")
export ANTHROPIC_BASE_URL=https://proxystation.co
export ANTHROPIC_API_KEY=sk-XXXXXXXXXXXXXXXX
# or in code — note the base URL carries no /v1
from anthropic import Anthropic
client = Anthropic(api_key="sk-XXXXXXXXXXXXXXXX", base_url="https://proxystation.co")