GeraikitaGeraikita AI
Documentation

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.

Base URL (OpenAI)https://ai.geraikita.com/v1
Base URL (Anthropic)https://ai.geraikita.com
AuthenticationBearer gk-... (or x-api-key: gk-...)
Important — don't write /v1 twice.
OpenAIhttps://ai.geraikita.com/v1OpenAI clients append /chat/completions to the base URL — so the base ends with /v1.
Anthropic / Claude Code CLIhttps://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.

The free tier (Bansos) uses a SEPARATE KEY — not your paid key.

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:

Bansos base URLhttps://ai.geraikita.com/v1/claude
OpenAIhttps://ai.geraikita.com/v1/claude/chat/completions
Anthropic / Claude Code CLIANTHROPIC_BASE_URL=https://ai.geraikita.com/v1/claudeThe SDK appends /v1/messages itself → https://ai.geraikita.com/v1/claude/v1/messages.
Model discoveryGET https://ai.geraikita.com/v1/claude/models

Everything 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.comwithout /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

1 GP = Rp1. You are billed per token from each request's real usage — no fixed per-request fee, only a small per-request minimum for each model (floor). Top up GeraiPoints in the dashboard; your balance never expires and works with any model. No subscriptions or monthly quotas.

Model list

The model values you can send. See the pricing page for each model's rates.

Write the model name EXACTLY as listed — no prefix. Send claude-sonnet-5, not gp/claude-sonnet-5 or openai/claude-sonnet-5. Some clients/CLIs prepend a provider name to the model (e.g. a profile named gp → the model reads gp/claude-sonnet-5) → the result is 404 unknown model. The gk- prefix is for API keys (the Authorization header), not for model names.

Create an API key

Open the DashboardCreate API key, give it a name, and (optionally) restrict it to specific models. The raw key is shown only once. Up to 5 active keys per account — revoke an old one to create a new one.

Error codes

StatusMeaning
400Wrong base URL / body — make sure there is no double /v1 (e.g. /v1/v1/messages)
401Invalid API key / wrong lane — paid key ≠ bansos key. Check the base URL: paid uses /v1, bansos uses /v1/claude
402Not enough GeraiPoints — please top up
403Model not allowed for this key
404Unknown model — send the EXACT MODEL NAME (e.g. claude-sonnet-5), no prefix. Names like gp/claude-sonnet-5 or openai/... will 404
429Too many requests