Pointez l'éditeur ou le CLI que vous utilisez déjà vers cet endpoint. Aucune application à installer — une base URL, une clé, et une commande qui prouve que ça marche.
La différence n'est pas cosmétique. Les clients au format OpenAI ajoutent /chat/completions à ce que vous leur donnez : il leur faut le chemin versionné. Claude Code et le SDK Anthropic ajoutent /v1/messages eux-mêmes : il leur faut l'origine nue. Inverser les deux produit /v1/v1/messages, qui répond 404 — et la plupart des clients le signalent comme un échec de connexion, pas comme un mauvais chemin.
Terminal
Claude Code
https://proxystation.co
Installation
npm install -g @anthropic-ai/claude-code
Configuration~/.claude/settings.json
export ANTHROPIC_BASE_URL=https://proxystation.co
export ANTHROPIC_AUTH_TOKEN=sk-XXXXXXXXXXXXXXXX
# Persist it in ~/.claude/settings.json instead of your shell profile:
{
"env": {
"ANTHROPIC_BASE_URL": "https://proxystation.co",
"ANTHROPIC_AUTH_TOKEN": "sk-XXXXXXXXXXXXXXXX"
}
}
Attendu : 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
Installation
npm install -g @openai/codex
Configuration~/.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"
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.
Attendu : 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
Installation
pip install openai · npm install openai
Configuration
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")
No /v1 here. The SDK adds it, and a base URL that already carries one produces /v1/v1/messages — a 404.
Chaque configuration de cette page a été vérifiée sur cet endpoint le 2026-08-30, et chaque commande de vérification ci-dessus a été exécutée. Les outils changent : Codex a retiré la prise en charge de Chat Completions cette année. Si l'une d'elles cesse de correspondre, c'est la commande de vérification qui vous le dira.
La station répond aussi sur des points d'entrée régionaux. Ils fonctionnent avec la même clé, mais la disponibilité et la latence publiées sur la page d'état sont mesurées sur cette origine uniquement — ces chiffres ne décrivent pas un autre point d'entrée.