Get started in 2 minutes.
The Geraikita AI API supports two formats at once: OpenAI Chat Completions and Anthropic Messages. Use the OpenAI SDK, Anthropic SDK, Claude Code CLI, Cline, and other tools — just change the base URL and API key.
https://ai.geraikita.com/v1https://ai.geraikita.comBearer gk-... (or x-api-key: gk-...)https://ai.geraikita.com/v1OpenAI clients append /chat/completions to the base URL — so the base ends with /v1.https://ai.geraikita.comAnthropic clients (Claude Code CLI, Anthropic SDK) append /v1/messages themselves — so the base goes without /v1.Get it wrong and the path becomes /v1/v1/messages → 400 error.
A bansos key must be claimed first on the Bansos page (login + Telegram verification, free, once per account). A paid gk- key from the Dashboard does not work on the bansos endpoint, and vice versa — mixing them up returns 401 unauthorized.
The bansos base URL is also different from the paid one above:
https://ai.geraikita.com/v1/claudehttps://ai.geraikita.com/v1/claude/chat/completionsANTHROPIC_BASE_URL=https://ai.geraikita.com/v1/claudeThe SDK appends /v1/messages itself → https://ai.geraikita.com/v1/claude/v1/messages.GET https://ai.geraikita.com/v1/claude/modelsEverything else is exactly the same as the paid endpoint.
Authentication
Every request carries your gk- API key in the Authorization: Bearer gk-... header. Keys are created in the dashboard and shown only once at creation — store them safely. You can restrict each key to specific models (allowlist).
First request
from openai import OpenAI client = OpenAI( base_url="https://ai.geraikita.com/v1", api_key="gk-xxxxxxxx", ) resp = client.chat.completions.create( model="claude-sonnet-5", messages=[{"role": "user", "content": "Halo!"}], ) print(resp.choices[0].message.content)
Claude Code CLI
Claude Code uses the Anthropic format. Set the base URL to the root (https://ai.geraikita.com — without /v1), then run claude. Use the models claude-sonnet-5 / claude-opus-5 / claude-haiku-4-5.
# Base URL = ROOT without /v1 (Claude Code appends /v1/messages itself) export ANTHROPIC_BASE_URL="https://ai.geraikita.com" export ANTHROPIC_AUTH_TOKEN="gk-xxxxxxxx" export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5" export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5" export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5" claude
Cline & other tools
Cline / Roo (OpenAI Compatible): provider OpenAI Compatible, Base URL https://ai.geraikita.com/v1, API key gk-..., Model ID claude-sonnet-5.
Cline (Anthropic): provider Anthropic, Base URL https://ai.geraikita.com, API key gk-....
Does your tool auto-discover models? The GET https://ai.geraikita.com/v1/models endpoint is available. If there is a "Gateway base URL" field that automatically appends /v1/models, fill it with https://ai.geraikita.com (root) so it doesn't become /v1/v1/models.
GeraiPoints
Model list
The model values you can send. See the pricing page for each model's rates.
Create an API key
Error codes
| Status | Meaning |
|---|---|
| 400 | Wrong base URL / body — make sure there is no double /v1 (e.g. /v1/v1/messages) |
| 401 | Invalid API key / wrong lane — paid key ≠ bansos key. Check the base URL: paid uses /v1, bansos uses /v1/claude |
| 402 | Not enough GeraiPoints — please top up |
| 403 | Model not allowed for this key |
| 404 | Unknown model — send the EXACT MODEL NAME (e.g. claude-sonnet-5), no prefix. Names like gp/claude-sonnet-5 or openai/... will 404 |
| 429 | Too many requests |