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).
| Endpoint | Functie |
|---|---|
| POST /v1/chat/completions | Chat in OpenAI-formaat (stream & non-stream) |
| POST /v1/messages | Messages in Anthropic-formaat (stream & non-stream) |
| POST /v1/messages/count_tokens | Prompttokens tellen in Anthropic-formaat — gratis |
| GET /v1/models | Lijst met bruikbare modellen |
| POST /v1/images/generations | Genereert afbeeldingen uit een tekstprompt, gefactureerd per afbeelding — zie Afbeeldingen genereren |
/v1/responses, /v1/embeddings) worden nog niet ondersteund.Chat completions (OpenAI)
https://ai.geraikita.com/v1/chat/completionsGenereert een antwoord op basis van een lijst berichten. Headers: Authorization: Bearer gk-… en Content-Type: application/json.
Request-body
| Parameter | Type | Toelichting |
|---|---|---|
model | string | Verplicht. Model-id precies zoals in de modellenlijst, zonder prefix. |
messages | array | Verplicht. Geordende array met berichten; elk bericht bevat role en content. Minstens één bericht. |
stream | boolean | true om het antwoord stapsgewijs te ontvangen via Server-Sent Events. |
max_tokens | integer | Maximaal 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_choice | array / object | Functieaanroepen (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
{
"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)
https://ai.geraikita.com/v1/messagesNative Anthropic-endpoint voor de Anthropic SDK en Claude Code CLI. Base URL in de client = https://ai.geraikita.com (zonder /v1).
Headers
| Header | Waarde | Toelichting |
|---|---|---|
| x-api-key | gk-… | Je gk--API-key (Authorization: Bearer wordt ook geaccepteerd). |
| anthropic-version | 2023-06-01 | Versie van de Anthropic-API; wordt automatisch meegestuurd door de SDK. |
| content-type | application/json | — |
Request-body
| Parameter | Type | Toelichting |
|---|---|---|
model | string | Verplicht. Model-id precies zoals in de modellenlijst, zonder prefix. |
messages | array | Verplicht. Array met berichten in Anthropic-formaat, minstens één bericht. |
max_tokens | integer | Maximaal aantal tokens voor het antwoord (verplicht in Anthropic-formaat). |
system | string / array | Systeeminstructie (optioneel). |
stream | boolean | true 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
https://ai.geraikita.com/v1/modelsGeeft 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.
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 diechoices[].deltabevat, afgesloten metdata: [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.