Common Scenarios
This page offers task-oriented, copyβandβpaste recipes for frequent workflows.
β
Connect official SDKs (OpenAIβcompatible)
export OPENAI_API_KEY="sk-Xvs..."
export OPENAI_BASE_URL="https://api.xaixapi.com/v1"
Node.js:
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, baseURL: process.env.OPENAI_BASE_URL });
const chat = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello" }]
});
Python:
import os
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"), base_url=os.getenv("OPENAI_BASE_URL"))
resp = client.chat.completions.create(model="gpt-4o-mini", messages=[{"role":"user","content":"Hello"}])
β
Route models to Levels (LEVEL_MAPPER)
curl -X PUT https://api.xaixapi.com/x-config \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"LEVEL_MAPPER": "gpt-4*=2, claude*=3"}'
β
Alias legacy models (MODEL_MAPPER)
curl -X PUT https://api.xaixapi.com/x-config \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"MODEL_MAPPER": "gpt-3.5*=gpt-4o-mini"}'
β
Throttle expensive models (MODEL_LIMITS)
curl -X PUT https://api.xaixapi.com/x-config \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"MODEL_LIMITS": "{\n \"gpt-4o\": {\"rpm\": 30, \"tpm\": 90000}\n}"}'
β
Add provider key (autoβmapping)
curl -X POST https://api.xaixapi.com/x-keys \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"SecretKey": "sk-...",
"Name": "OpenAI main",
"Level": 1,
"Provider": "https://api.openai.com",
"Status": true
}'
β
Constrain access (AllowModels/AllowIPs/Resources)
curl -X PUT https://api.xaixapi.com/x-users/42 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"AllowModels": "gpt-4* claude-3*", "AllowIPs": "192.168.1.0/24 10.0.0.5", "Resources": "/v1/chat/completions, /v1/embeddings"}'
β
Query last 30 days usage (/x-bill)
curl "https://api.xaixapi.com/x-bill?days=30" -H "Authorization: Bearer $API_KEY"
β
Selfβrotate key (/x-self)
curl -X POST https://api.xaixapi.com/x-self \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"confirm": "$(date +%F)-ROTATE-SELF"}'
β
Post system/targeted news (/x-news)
curl -X POST https://api.xaixapi.com/x-news \
-H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
-d '{"title":"Update","content":"...","days":7}'
curl -X POST https://api.xaixapi.com/x-news/42 \
-H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
-d '{"title":"Account","content":"..."}'
β
Export sleeping/disabled keys and thresholds (/x-conf)
curl https://api.xaixapi.com/x-conf -H "Authorization: Bearer $API_KEY" | jq .