Référence de l’API
L’API suit le format OpenAI sur https://ai.geraikita.com/v1 et le format Anthropic sur https://ai.geraikita.com. Tous les corps de requête et de réponse sont en JSON (UTF-8).
| Endpoint | Fonction |
|---|---|
| POST /v1/chat/completions | Chat au format OpenAI (avec ou sans stream) |
| POST /v1/messages | Messages au format Anthropic (avec ou sans stream) |
| POST /v1/messages/count_tokens | Comptage des tokens du prompt au format Anthropic — gratuit |
| GET /v1/models | Liste des modèles utilisables |
| POST /v1/images/generations | Génère des images à partir d’un prompt texte, facturé à l’image — voir Génération d’images |
/v1/responses, /v1/embeddings) ne sont pas encore pris en charge.Chat completions (OpenAI)
https://ai.geraikita.com/v1/chat/completionsGénère une réponse à partir d’une liste de messages. En-têtes : Authorization: Bearer gk-… et Content-Type: application/json.
Corps de la requête
| Paramètre | Type | Description |
|---|---|---|
model | string | Obligatoire. Id du modèle exactement comme dans la liste des modèles, sans préfixe. |
messages | array | Obligatoire. Tableau ordonné de messages ; chaque message contient role et content. Au moins un message. |
stream | boolean | true pour recevoir la réponse progressivement via Server-Sent Events. |
max_tokens | integer | Limite de tokens de la réponse. Si le solde ne suffit pas pour la valeur demandée, le serveur peut la réduire automatiquement. |
temperature, top_p, stop | — | Transmis tel quel au modèle. La prise en charge et la plage de valeurs dépendent du modèle. |
tools, tool_choice | array / object | Appel de fonctions (tool calling) au format OpenAI, transmis aux modèles qui le prennent en charge. |
Exemple de requête
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": "Bonjour !"}]
}'Exemple de réponse
{
"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 }
}L’objet usage contient le nombre de tokens servant de base à la facturation — voir Tarifs et facturation.
Messages (Anthropic)
https://ai.geraikita.com/v1/messagesEndpoint natif Anthropic pour le SDK Anthropic et Claude Code CLI. URL de base dans le client = https://ai.geraikita.com (sans /v1).
En-têtes
| En-tête | Valeur | Description |
|---|---|---|
| x-api-key | gk-… | Votre clé API gk- (Authorization: Bearer est aussi accepté). |
| anthropic-version | 2023-06-01 | Version de l’API Anthropic ; envoyée automatiquement par le SDK. |
| content-type | application/json | — |
Corps de la requête
| Paramètre | Type | Description |
|---|---|---|
model | string | Obligatoire. Id du modèle exactement comme dans la liste des modèles, sans préfixe. |
messages | array | Obligatoire. Tableau de messages au format Anthropic, au moins un message. |
max_tokens | integer | Limite de tokens de la réponse (obligatoire au format Anthropic). |
system | string / array | Instructions système (facultatif). |
stream | boolean | true pour recevoir la réponse progressivement via Server-Sent Events. |
Exemple de requête
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": "Bonjour !"}]
}'Besoin de compter les tokens avant l’envoi ? POST https://ai.geraikita.com/v1/messages/count_tokens accepte le même corps et n’est pas facturé.
Liste des modèles
https://ai.geraikita.com/v1/modelsRenvoie la liste des id de modèle utilisables dans le champ model. Appelé avec une clé restreinte par allowlist, il n’affiche que les modèles autorisés. Avec l’en-tête x-api-key ou anthropic-version, la réponse suit le format Anthropic.
curl https://ai.geraikita.com/v1/models \
-H "Authorization: Bearer gk-xxxxxxxx"Streaming (SSE)
Avec "stream": true, la réponse est envoyée en text/event-stream. Le serveur envoie immédiatement les en-têtes, puis une ligne de commentaire keepalive : ka toutes les 10 secondes pendant l’attente, pour que la connexion ne soit pas considérée comme morte. Réglez le timeout total de votre application sur au moins 300 secondes.
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}
: ka
data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}
data: [DONE]- Format OpenAI : chaque fragment est une ligne
data:contenant un JSON avecchoices[].delta, et le flux se termine pardata: [DONE]. - Format Anthropic : événements
message_start,content_block_delta, …,message_stop, comme dans l’API Anthropic. - Ignorez les lignes commençant par deux-points (
:) : ce sont des keepalive, pas des données. Les guides par outil se trouvent dans Réglages des outils agentiques.