MenuAPI-referentie

API-referentie

De API volgt het OpenAI-formaat op https://ai.geraikita.com/v1 en het Anthropic-formaat op https://ai.geraikita.com. Alle request- en response-bodies zijn JSON (UTF-8).

EndpointFunctie
POST /v1/chat/completionsChat in OpenAI-formaat (stream & non-stream)
POST /v1/messagesMessages in Anthropic-formaat (stream & non-stream)
POST /v1/messages/count_tokensPrompttokens tellen in Anthropic-formaat — gratis
GET /v1/modelsLijst met bruikbare modellen
POST /v1/images/generationsGenereert afbeeldingen uit een tekstprompt, gefactureerd per afbeelding — zie Afbeeldingen genereren
Op dit moment zijn alleen de endpoints hierboven beschikbaar. Andere OpenAI-endpoints (bijv. /v1/responses, /v1/embeddings) worden nog niet ondersteund.

Chat completions (OpenAI)

POSThttps://ai.geraikita.com/v1/chat/completions

Genereert een antwoord op basis van een lijst berichten. Headers: Authorization: Bearer gk-… en Content-Type: application/json.

Request-body

ParameterTypeToelichting
modelstringVerplicht. Model-id precies zoals in de modellenlijst, zonder prefix.
messagesarrayVerplicht. Geordende array met berichten; elk bericht bevat role en content. Minstens één bericht.
streambooleantrue om het antwoord stapsgewijs te ontvangen via Server-Sent Events.
max_tokensintegerMaximaal aantal tokens voor het antwoord. Als je saldo niet volstaat voor de gevraagde waarde, kan de server die automatisch verlagen.
temperature, top_p, stop—Wordt ongewijzigd aan het model doorgegeven. Ondersteuning en waardebereik verschillen per model.
tools, tool_choicearray / objectFunctieaanroepen (tool calling) in OpenAI-formaat, doorgegeven aan modellen die dit ondersteunen.

Voorbeeldrequest

curl https://ai.geraikita.com/v1/chat/completions \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Hallo!"}]
  }'

Voorbeeldresponse

200 OK · application/json
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 9, "total_tokens": 21 }
}

Het object usage bevat het aantal tokens waarop de facturering is gebaseerd — zie Prijzen & facturering.

Messages (Anthropic)

POSThttps://ai.geraikita.com/v1/messages

Native Anthropic-endpoint voor de Anthropic SDK en Claude Code CLI. Base URL in de client = https://ai.geraikita.com (zonder /v1).

Headers

HeaderWaardeToelichting
x-api-keygk-…Je gk--API-key (Authorization: Bearer wordt ook geaccepteerd).
anthropic-version2023-06-01Versie van de Anthropic-API; wordt automatisch meegestuurd door de SDK.
content-typeapplication/json—

Request-body

ParameterTypeToelichting
modelstringVerplicht. Model-id precies zoals in de modellenlijst, zonder prefix.
messagesarrayVerplicht. Array met berichten in Anthropic-formaat, minstens één bericht.
max_tokensintegerMaximaal aantal tokens voor het antwoord (verplicht in Anthropic-formaat).
systemstring / arraySysteeminstructie (optioneel).
streambooleantrue om het antwoord stapsgewijs te ontvangen via Server-Sent Events.

Voorbeeldrequest

curl https://ai.geraikita.com/v1/messages \
  -H "x-api-key: gk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hallo!"}]
  }'

Wil je tokens tellen voordat je verstuurt? POST https://ai.geraikita.com/v1/messages/count_tokens accepteert dezelfde body en wordt niet gefactureerd.

Modellenlijst

GEThttps://ai.geraikita.com/v1/models

Geeft de lijst met model-id’s terug die je in het veld model kunt meesturen. Roep je dit aan met een key die door een allowlist is beperkt, dan verschijnen alleen de toegestane modellen. Met de header x-api-key of anthropic-version volgt de response het Anthropic-formaat.

curl https://ai.geraikita.com/v1/models \
  -H "Authorization: Bearer gk-xxxxxxxx"

Streaming (SSE)

Met "stream": true wordt het antwoord verstuurd als text/event-stream. De server stuurt meteen de headers en daarna elke 10 seconden een keepalive-commentaarregel : ka tijdens het wachten, zodat de verbinding niet als dood wordt beschouwd. Stel de totale timeout van je app in op minstens 300 seconden.

text/event-stream
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}

: ka

data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}

data: [DONE]
  • OpenAI-formaat: elk stukje is een regel data: met JSON die choices[].delta bevat, afgesloten met data: [DONE].
  • Anthropic-formaat: events message_start, content_block_delta, …, message_stop, net als bij de Anthropic-API.
  • Negeer regels die beginnen met een dubbele punt (:) — dat zijn keepalives, geen data. Handleidingen per tool staan in Instellingen agentic tools.