API Documentation
Get started with the KiroGate API
๐
Authentication
All API requests must include an API key in the header. Three authentication modes are supported:
Mode 1: User API Key (sk-xxx format) โญ Recommended
# OpenAI format Authorization: Bearer sk-xxxxxxxxxxxxxxxx # Anthropic format x-api-key: sk-xxxxxxxxxxxxxxxx
Generate one in the user center after login. Uses your added tokens or the public token pool automatically.
Mode 2: Combined Mode (user-supplied REFRESH_TOKEN)
# OpenAI format Authorization: Bearer YOUR_PROXY_API_KEY:YOUR_REFRESH_TOKEN # Anthropic format x-api-key: YOUR_PROXY_API_KEY:YOUR_REFRESH_TOKEN
Mode 3: Simple Mode (uses server-configured REFRESH_TOKEN)
# OpenAI format Authorization: Bearer YOUR_PROXY_API_KEY # Anthropic format x-api-key: YOUR_PROXY_API_KEY
๐ก Recommended Usage
- โข Regular users: After login, generate an API key in
sk-xxxformat - the simplest option. - โข Self-hosted users: Use combined mode with your own REFRESH_TOKEN - no server config needed.
- โข Cache optimization: Each user's auth info is cached (up to 100 users) for improved performance.
๐ก
Endpoints
GET
/
Health check endpoint
GET
/health
Detailed health check; returns token status and cache info
GET
/v1/models
List available models (authentication required)
POST
/v1/chat/completions
OpenAI-compatible chat completions API (authentication required)
POST
/v1/messages
Anthropic-compatible messages API (authentication required)
๐ก
Usage Examples
๐ OpenAI SDK (Python)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="YOUR_PROXY_API_KEY"
)
response = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end="")
๐ค Anthropic SDK (Python)
import anthropic
client = anthropic.Anthropic(
base_url="http://localhost:8000",
api_key="YOUR_PROXY_API_KEY"
)
message = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
print(message.content[0].text)
$ cURL
curl http://localhost:8000/v1/chat/completions \
-H "Authorization: Bearer YOUR_PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "Hello!"}]
}'
๐ค
Available Models
autoclaude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5claude-sonnet-4claude-haiku-4-5deepseek-3-2minimax-m2-5minimax-m2-1glm-5qwen3-coder-next