API Reference
Complete reference for Tokligence Gateway API endpoints.
Base URL
http://localhost:8081
Authentication
All requests require an API key (unless TOKLIGENCE_AUTH_DISABLED=true):
curl http://localhost:8081/v1/chat/completions \
-H "Authorization: Bearer YOUR_GATEWAY_KEY"
OpenAI-Compatible Endpoints
Chat Completions
POST /v1/chat/completions
Request:
{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"temperature": 0.7,
"max_tokens": 1000,
"stream": true,
"tools": [...]
}
Response:
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-4",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 10,
"total_tokens": 30
}
}
Responses API
POST /v1/responses
Used by Codex CLI v0.55.0+ with session management and tool calling.
Request:
{
"model": "claude-3-5-sonnet-20241022",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}
Models
GET /v1/models
Lists available models from configured providers.
Embeddings
POST /v1/embeddings
{
"model": "text-embedding-ada-002",
"input": "Hello world"
}
Anthropic Native Endpoints
Messages
POST /anthropic/v1/messages
Native Anthropic protocol with correct SSE envelopes. Compatible with Claude Code.
Request:
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "Hello"}]
}
Headers:
anthropic-version: 2023-06-01
Content-Type: application/json
Count Tokens
POST /anthropic/v1/messages/count_tokens
Estimate token count before sending a request.
Gemini Native Endpoints
Generate Content
POST /v1beta/models/{model}:generateContent
Stream Generate Content
POST /v1beta/models/{model}:streamGenerateContent
Count Tokens
POST /v1beta/models/{model}:countTokens
List Models
GET /v1beta/models
OpenAI-Compatible (on Gemini)
POST /v1beta/openai/chat/completions
Admin Endpoints
Health Check
GET /health
Response:
{
"status": "ok"
}
User Management
GET /api/v1/admin/users
POST /api/v1/admin/users
DELETE /api/v1/admin/users/{id}
API Key Management
GET /api/v1/admin/api-keys
POST /api/v1/admin/api-keys
DELETE /api/v1/admin/api-keys/{id}
Streaming
All chat endpoints support SSE streaming:
curl -N http://localhost:8081/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}'
SSE Events:
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"Hello"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"!"}}]}
data: [DONE]
Error Responses
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"code": 401
}
}
SDK Compatibility
Use any OpenAI-compatible SDK by changing the base URL:
Python
from openai import OpenAI
client = OpenAI(
api_key="your-gateway-key",
base_url="http://localhost:8081/v1"
)
Node.js
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: 'your-gateway-key',
baseURL: 'http://localhost:8081/v1',
});
LangChain
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4",
api_key="your-gateway-key",
base_url="http://localhost:8081/v1"
)