Skip to content

AI API

MethodPathPurpose
POST/v1/{app_id}/chat/completionsChat completion (OpenAI-compatible)
POST/v1/{app_id}/embeddingsGenerate embeddings
GET/v1/{app_id}/ai/configGet AI configuration
PUT/v1/{app_id}/ai/configUpdate AI configuration
GET/v1/{app_id}/ai/usageGet AI usage statistics
POST /v1/{app_id}/chat/completions
Authorization: Bearer {token}
{
"model": "anthropic/claude-3.5-sonnet",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Hello!" }
],
"max_tokens": 500,
"temperature": 0.7,
"stream": false
}

Standard OpenAI-compatible response format. Set "stream": true for server-sent events.

POST /v1/{app_id}/embeddings
Authorization: Bearer {token}
{
"model": "openai/text-embedding-3-small",
"input": "What is Butterbase?",
"encoding_format": "float"
}
ParameterDescription
modelEmbedding model ID (required)
inputString or array of strings (required)
encoding_format"float" (default) or "base64"
ModelIDDimensions
Text Embedding 3 Smallopenai/text-embedding-3-small1536
Text Embedding 3 Largeopenai/text-embedding-3-large3072
Text Embedding Ada 002openai/text-embedding-ada-0021536
PUT /v1/{app_id}/ai/config
{
"defaultModel": "anthropic/claude-3.5-sonnet",
"byokKey": "sk-or-...",
"maxTokensPerRequest": 4096,
"allowedModels": ["anthropic/claude-3.5-sonnet"]
}
FieldDescription
defaultModelModel used when none specified
byokKeyYour OpenRouter API key (encrypted)
maxTokensPerRequestToken limit per request (1-100,000)
allowedModelsRestrict allowed models
GET /v1/{app_id}/ai/usage?startDate=2026-01-01&endDate=2026-01-31

Response:

{
"totalTokens": 150000,
"totalCost": 0.45,
"byModel": {
"anthropic/claude-3.5-sonnet": {
"tokens": 120000,
"cost": 0.40,
"requests": 25
}
}
}