Quickstart
What is Xisu AI? Supported models, protocols and clients
One key for Claude, GPT, Gemini and Grok over OpenAI, Anthropic and Responses protocols — plus what the service deliberately does not do.
Xisu AI is a model API gateway. You add funds, create one API key, and use that single balance to call Claude, GPT, Gemini, Grok and more. It speaks three protocols — OpenAI Chat Completions, OpenAI Responses and Anthropic Messages — so existing SDKs, Claude Code, Codex CLI and desktop clients such as Cherry Studio and Chatbox usually only need a new base URL and key.
Shortest path: sign up → add funds → create a key → set base_url to
https://api.xisu.ai/v1. The full walkthrough is in the 5-minute quickstart.
The three protocols
All three share the same key and the same balance; only the address and request format differ.
| Protocol | Base URL | Endpoints | Typical use |
|---|---|---|---|
| OpenAI-compatible (Chat Completions) | https://api.xisu.ai/v1 |
/chat/completions, /models, /images/generations, /embeddings |
openai SDK, Cherry Studio, Chatbox and most other clients |
| OpenAI Responses | https://api.xisu.ai/v1 |
/responses |
Codex CLI, new code built on the Responses API |
| Anthropic-native (Messages) | https://api.xisu.ai |
/v1/messages, /v1/messages/count_tokens |
Claude Code, anthropic SDK |
OpenAI-style SDKs and clients use the address with /v1:
https://api.xisu.ai/v1
The Anthropic SDK and Claude Code use the address without /v1 (the SDK appends /v1/messages itself):
https://api.xisu.ai
Chat Completions is the most widely supported; see the quickstart for examples. Here are minimal examples for the other two, both tested.
Responses API (pip install openai):
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["XISU_API_KEY"], base_url="https://api.xisu.ai/v1")
resp = client.responses.create(
model="gpt-6-luna",
input="Explain what an API is in one sentence",
)
print(resp.output_text)
Anthropic Messages API (pip install anthropic):
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["XISU_API_KEY"],
base_url="https://api.xisu.ai", # no /v1
)
msg = client.messages.create(
model="claude-haiku-5-5",
max_tokens=200,
messages=[{"role": "user", "content": "Explain what an API is in one sentence"}],
)
print(msg.content[0].text)
Use the Responses API statelessly:
previous_response_id,backgroundandstore: trueare not supported (they return 400), so send the conversation history ininputyourself. Details: OpenAI Responses endpoint and Anthropic-native endpoint.
Available models (as of 2026-10-16)
| Family | Models | Protocols |
|---|---|---|
| Claude | claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5 | Chat Completions, Responses, Messages |
| GPT | gpt-6-astra, gpt-6.1-sol, gpt-6-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna | Chat Completions, Responses |
| Gemini | gemini-4-argon-high, gemini-3.8-flash-high | Chat Completions, Responses, Messages |
| Grok | grok-4.7, grok-4.6 | Chat Completions, Messages (grok-4.7 also Responses) |
| Image generation | gpt-image-2.5, gpt-image-2.5-flare, gpt-image-2.5-sunburst | Images (/v1/images/generations) |
Models are added and retired over time (gpt-5.5, for example, has been retired), so the model catalog is the source of truth. There you can filter by vendor and protocol, copy the exact model name with one click, and see each model's prices. For help choosing, read How to choose a model.
What you can use it for
| What you want to do | Protocol | Start here |
|---|---|---|
| Call models from your own code (Python, Node.js, curl) | Chat Completions or Responses | Quickstart |
| Code in the terminal with Claude Code | Anthropic Messages | Claude Code setup |
| Code in the terminal with Codex CLI | Responses | Codex CLI setup |
| Chat in desktop clients like Cherry Studio or Chatbox | Chat Completions | Client downloads and setup |
Claude Code and Codex have both been tested end to end. Claude Code's first call writes a large prompt cache, so that call uses a lot of tokens; later calls hit the cache and the same context costs much less.
How you are billed
- Per token, with input and output priced separately; cache reads and cache writes have their own prices too. Images are billed per image, tiered by size and quality.
- Amounts in the console are shown in credits: ¥1 = 100,000 credits.
- Failed requests are free. If a stream is cut off midway, the tokens already generated are billed.
- No starting fee and no monthly charge — no calls, no cost.
- Prepaid only: add funds first; once the balance hits zero, new requests are refused.
Prices are on the model catalog; billing rules are in How billing works; top-up and refund rules are in Top-ups and refunds.
Your data and your keys
By default we do not store request or response bodies. Call records hold only the time, model, tokens, cost, request_id, status and source IP; they are kept for 40 days, after which only daily totals remain. Your data is not used for training and is not sold. See the Privacy Policy.
Each key can have its own IP allowlist, model allowlist and budget, and can be revoked instantly if it leaks — see Key security and rotation. To check for yourself that you are getting the real model, see How to verify the model.
How a request travels
your app / client → Xisu AI gateway → model
↓
usage and cost recorded
The gateway checks the key (and its allowlists and budget), forwards the request to the right model, and records what was actually used. Your code calls api.xisu.ai directly and never goes through the console; the console is only for adding funds, managing keys and reviewing usage.
What it deliberately does not do
Listed here so you know while you are still evaluating, not halfway through integrating:
- A fixed set of endpoints. Only the endpoints in the table above. Images are generation only — no edits or variations — and there is no audio, file upload, fine-tuning or Assistants. The
/v1/embeddingsendpoint exists, but as of 2026-10-16 no embedding model is on sale. - No conversation state in Responses.
previous_response_id,backgroundandstore: trueare not supported. - No credit line or post-payment. When the balance runs out, new requests are refused until you top up.
- No guarantee that model output is correct. Models can be wrong; whether to act on their output is your call.
- No promise of uninterrupted service. A model can be temporarily unable to serve; the catalog then marks it unavailable. That is not a problem with your setup — switch models, and nothing is needed on your side once it recovers.
- No model training, and your data is not used for training.
"Data as of" on the pages
The catalog, balance and usage details all come from the gateway's records; each page shows a snapshot labelled "data as of" with the time it was taken. A call you just made may take a moment to appear, so reconcile against the time shown on the page.