One base-URL swap. The same snippets the console shows under How to connect, for curl, Python, Node, VS Code and OpenCode.
How-toFor developers
Your client talks to Gatekeeper on your own machine, and Gatekeeper talks to the router only after the router's evidence checks out. Same OpenAI SDK, same model id, same key; only the base URL changes.
Direct works, and everything on this site about metering and billing is the same either way. What you give up without Gatekeeper is the only complete verification: your data is still protected, but you have no proof. Production traffic should go through it.
The snippets
These are the console's, as API Keys → How to connect prints them before a key exists. Replace sk-tee-v1-… with the key you copied and <model-id> with an id from Models; the console fills both in for you once you have a key.
The two file-based entries, VS Code and OpenCode, have a page of their own: IDEs and agents.
Keep the key out of your code
The official SDKs read OPENAI_API_KEY by default. Set it to your router key and omit api_key from the constructor; only the base URL stays in code.
sh
exportOPENAI_API_KEY=sk-tee-v1-...
Streaming works unchanged: pass stream=True and read the chunks. The router forwards each chunk as it arrives and ends the stream with data: [DONE]. Details on Endpoints.
Which model id
The deployment publishes the models it serves at GET /v1/models, filtered to what your key may call. The console's Models screen shows the same list with context length and price per million tokens.