Unified multi-protocol AI routing gateway with native OpenAI SDK & Anthropic Claude Code CLI compatibility.
| Method | Path | Description |
|---|---|---|
| GET | /v1/models | Query all dynamically routed models and aliases across active channels. |
| POST | /v1/chat/completions | OpenAI-compatible chat completions with full streaming & tool call support. |
| POST | /v1/messages | Anthropic Claude native Messages API endpoint (supports x-api-key header & Claude Code CLI). |
curl -X POST https://gateway.campusmateai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "claude-sonnet-4-6", "messages": [ {"role": "system", "content": "You are a helpful AI assistant."}, {"role": "user", "content": "Explain quantum computing in one sentence."} ], "stream": false }'
curl -X POST https://gateway.campusmateai.com/v1/messages \ -H "Content-Type: application/json" \ -H "x-api-key: YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Explain quantum computing in one sentence."} ] }'
from openai import OpenAI client = OpenAI( base_url="https://gateway.campusmateai.com/v1", api_key="YOUR_API_KEY" ) response = client.chat.completions.create( model="claude-sonnet-4-6", messages=[ {"role": "user", "content": "Hello from CampusMateAI!"} ] ) print(response.choices[0].message.content)
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://gateway.campusmateai.com/v1", apiKey: "YOUR_API_KEY", }); async function main() { const response = await client.chat.completions.create({ model: "claude-sonnet-4-6", messages: [{ role: "user", content: "Hello from Node.js!" }], }); console.log(response.choices[0].message.content); } main();
Configure Claude Code CLI directly via shell environment variables (natively uses claude-3-7-sonnet):
Universal OpenAI environment variables recognized by standard coding tools: