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 .