curl
Copy-paste curl blocks for every supported protocol. All examples use https://codegate.dev as the base URL and a placeholder sk-... key. Replace sk-... with a real key from codegate.dev/console/token.
OpenAI Chat Completions
bash
curl https://codegate.dev/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "In one sentence, what is CodeGate?"}
]
}'OpenAI Responses API
bash
curl https://codegate.dev/v1/responses \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"input": "Give me a one-sentence summary of CodeGate."
}'Anthropic Messages
bash
curl https://codegate.dev/v1/messages \
-H "x-api-key: sk-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4-8",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Say hello."}]
}'Route Claude via the OpenAI shape
You can send Claude model IDs to the OpenAI Chat Completions endpoint. CodeGate translates the request to the Anthropic Messages format upstream and translates the response back.
bash
curl https://codegate.dev/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "Say hello."}]
}'Use the OpenAI shape when your client only speaks OpenAI (Codex, opencode). Use the Anthropic endpoint when you want native Messages semantics (streaming event types, tool-use round-trip).
Streaming (Server-Sent Events)
Set "stream": true in the body and pass -N to curl to disable output buffering.
OpenAI stream
bash
curl -N https://codegate.dev/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"stream": true,
"messages": [{"role": "user", "content": "Count to five slowly."}]
}'Anthropic stream
bash
curl -N https://codegate.dev/v1/messages \
-H "x-api-key: sk-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4-8",
"max_tokens": 512,
"stream": true,
"messages": [{"role": "user", "content": "Count to five slowly."}]
}'Notes
- All endpoints live under the same host:
https://codegate.dev. There is no separateapi.subdomain. - Not currently shipped:
/v1/completions,/v1/embeddings,/v1/models,/v1/audio/*, Gemini's/v1beta/models/*. Image generation is coming soon. - If a request fails with 429, back off and retry.