Dokumentation

In 2 Minuten startklar.

Die Geraikita-AI-API unterstützt zwei Formate zugleich: OpenAI Chat Completions und Anthropic Messages. Nutze das OpenAI SDK, Anthropic SDK, Claude Code CLI, Cline und andere Tools — einfach Base-URL und API-Key ändern.

Base-URL (OpenAI)https://ai.geraikita.com/v1
Base-URL (Anthropic)https://ai.geraikita.com
AuthentifizierungBearer gk-... (oder x-api-key: gk-...)
Wichtig — schreibe /v1 nicht doppelt.
OpenAIhttps://ai.geraikita.com/v1OpenAI-Clients hängen /chat/completions an die Base-URL an — die Base endet also mit /v1.
Anthropic / Claude Code CLIhttps://ai.geraikita.comAnthropic-Clients (Claude Code CLI, Anthropic SDK) hängen /v1/messages selbst an — die Base kommt also ohne /v1.

Falsch gemacht wird der Pfad zu /v1/v1/messages → Fehler 400.

Der Free Tier (Bansos) nutzt einen SEPARATEN KEY — nicht deinen bezahlten Key.

Ein Bansos-Key muss zuerst abgeholt werden auf der Bansos-Seite (Login + verifizierte WhatsApp-Nummer + Beitritt zu Telegram-Kanal & -Gruppe, gratis, ein Key pro Konto). Ein bezahlter gk--Key aus dem Dashboard funktioniert nicht auf dem Bansos-Endpunkt, und umgekehrt — bei Verwechslung kommt 401 unauthorized zurück.

Die Bansos-Base-URL ist ebenfalls anders als die bezahlte oben:

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/claudeDas SDK hängt /v1/messages selbst an → https://ai.geraikita.com/v1/claude/v1/messages.
Modell-DiscoveryGET https://ai.geraikita.com/v1/claude/models

Kostenlose Modelle: deepseek-v4-flash, glm-5.3-flash, qwen3.8-flash, qwen3.8-max. Andere Modelle liefern 404; die aktuelle Liste gibt es unter GET /models.

Alles andere ist exakt gleich wie beim bezahlten Endpunkt.

Authentifizierung

Jeder Request trägt deinen gk--API-Key im Header Authorization: Bearer gk-.... Keys werden im Dashboard erstellt und nur einmal bei der Erstellung angezeigt — bewahre sie sicher auf. Du kannst jeden Key auf bestimmte Modelle beschränken (Allowlist).

Erster 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 nutzt das Anthropic-Format. Setze die Base-URL auf die Root (https://ai.geraikita.com — ohne /v1) und führe dann claude aus. Nutze die Modelle claude-sonnet-5 / claude-opus-5 / claude-haiku-4-5.

# Base-URL = ROOT ohne /v1 (Claude Code hängt /v1/messages selbst an)
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 & weitere Tools

Cline / Roo (OpenAI Compatible): Provider OpenAI Compatible, Base-URL https://ai.geraikita.com/v1, API-Key gk-..., Modell-ID claude-sonnet-5.

Cline (Anthropic): Provider Anthropic, Base-URL https://ai.geraikita.com, API-Key gk-....

Erkennt dein Tool Modelle automatisch? Der Endpunkt GET https://ai.geraikita.com/v1/models ist verfügbar. Gibt es ein Feld „Gateway Base URL“, das automatisch /v1/models anhängt, trage dort https://ai.geraikita.com (Root) ein, damit nicht /v1/v1/models daraus wird.

OpenCode

OpenCode liest seine Provider aus einer Konfigurationsdatei. Registriere Geraikita als OpenAI-kompatiblen Provider in ~/.config/opencode/opencode.json oder in einer projektweiten opencode.json.

~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "geraikita": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Geraikita AI",
      "options": {
        "baseURL": "https://ai.geraikita.com/v1",
        "apiKey": "{env:GERAIKITA_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": { "name": "Claude Sonnet 5" },
        "gpt-5.6-sol": { "name": "GPT 5.6 Sol" },
        "deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }
      }
    }
  }
}

Exportiere dann deinen Key und starte OpenCode. Das Modell wählst du mit /models — es erscheint als geraikita/claude-sonnet-5.

bash
export GERAIKITA_API_KEY=gk-xxxxxxxx
opencode

Wichtig: die Schlüssel unter models werden unverändert an die API gesendet und müssen daher exakt den öffentlichen Modell-IDs von Geraikita entsprechen.

Denk daran: schreibe den Modellnamen genau so wie auf der Preisseite — ohne Prefix.

9router

9router ist ein lokaler Proxy, der Anfragen auf viele Provider verteilt und unter http://localhost:20128 läuft. Du richtest deine Tools nicht direkt auf Geraikita — stattdessen registrierst du Geraikita als einen der Upstream-Provider von 9router.

  1. Öffne das 9router-Dashboard unter http://localhost:20128/dashboard.
  2. Gehe zu Providers und füge einen custom OpenAI-compatible Endpunkt hinzu: Base URL https://ai.geraikita.com/v1, API-Key gk-xxxxxxxx.
  3. Deine Coding-Tools zeigen weiterhin auf 9router (http://localhost:20128/v1); wähle dort einfach ein Geraikita-Modell — 9router leitet diese Anfragen an Geraikita weiter.
9router-Dashboardhttp://localhost:20128/dashboard
Provider-Base-URLhttps://ai.geraikita.com/v1
API-Keygk-xxxxxxxx
Base URL für deine Toolshttp://localhost:20128/v1
bash
# dein Tool zeigt weiter auf 9router, nicht direkt auf Geraikita
export OPENAI_BASE_URL="http://localhost:20128/v1"

So behältst du Routing und Fallback über mehrere Provider von 9router, während die Tokens von deinen Geraikita-GeraiPoints bezahlt werden.

Denk daran: schreibe den Modellnamen genau so wie auf der Preisseite — ohne Prefix.

Hermes

Hermes (der Hermes Agent von NousResearch) funktioniert mit jedem OpenAI-kompatiblen Endpunkt. Richte ihn in ~/.hermes/config.yaml auf Geraikita.

~/.hermes/config.yaml
model:
  default: claude-sonnet-5
  provider: custom
  base_url: https://ai.geraikita.com/v1
  api_key: gk-xxxxxxxx   # oder in ~/.hermes/.env ablegen

Oder führe hermes model aus, wähle Custom OpenAI-compatible endpoint und gib Base URL und Key ein — Hermes erkennt die verfügbaren Modelle dann selbst über GET https://ai.geraikita.com/v1/models.

Denk daran: schreibe den Modellnamen genau so wie auf der Preisseite — ohne Prefix.

GeraiPoints

1 GP = Rp1. Du wirst pro Token nach dem realen Verbrauch jedes Requests abgerechnet — keine feste Gebühr pro Request, nur ein kleiner Mindestbetrag pro Request je Modell (Floor). Lade GeraiPoints im Dashboard auf; dein Guthaben verfällt nie und gilt für jedes Modell. Keine Abos oder Monatskontingente.

Modellliste

Die model-Werte, die du senden kannst. Die Tarife der einzelnen Modelle findest du auf der Preisseite.

Schreibe den Modellnamen GENAU wie gelistet — ohne Präfix. Sende claude-sonnet-5, nicht gp/claude-sonnet-5 oder openai/claude-sonnet-5. Manche Clients/CLIs stellen dem Modell einen Provider-Namen voran (z. B. ein Profil namens gp → das Modell heißt dann gp/claude-sonnet-5) → das Ergebnis ist 404 unknown model. Das Präfix gk- ist für API-Keys (den Authorization-Header), nicht für Modellnamen.
Tier Token verfügbar. Modelle mit dem Suffix -token (z. B. claude-opus-5-token) sind die günstige Pro-Token-Option — abgerechnet pro Token wie Premium, aber über Partner-Seller. Gleiche Basis-URL https://ai.geraikita.com/v1, gleicher API-Key.

API-Key erstellen

Öffne das Dashboard → API-Key erstellen, gib ihm einen Namen und beschränke ihn (optional) auf bestimmte Modelle. Der Roh-Key wird nur einmal angezeigt. Bis zu 5 aktive Keys pro Konto — widerrufe einen alten, um einen neuen zu erstellen.

Fehlercodes

StatusBedeutung
400Falsche Base-URL / Body — stelle sicher, dass /v1 nicht doppelt vorkommt (z. B. /v1/v1/messages)
401Ungültiger API-Key / falsche Spur — bezahlter Key ≠ Bansos-Key. Prüfe die Base-URL: bezahlt nutzt /v1, Bansos nutzt /v1/claude
402Nicht genug GeraiPoints — bitte aufladen
403Modell für diesen Key nicht erlaubt
404Unbekanntes Modell — sende den EXAKTEN MODELLNAMEN (z. B. claude-sonnet-5), ohne Präfix. Namen wie gp/claude-sonnet-5 oder openai/... ergeben 404
429Zu viele Requests