MenuRéférence de l’API

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).

EndpointFonction
POST /v1/chat/completionsChat au format OpenAI (avec ou sans stream)
POST /v1/messagesMessages au format Anthropic (avec ou sans stream)
POST /v1/messages/count_tokensComptage des tokens du prompt au format Anthropic — gratuit
GET /v1/modelsListe des modèles utilisables
POST /v1/images/generationsGénère des images à partir d’un prompt texte, facturé à l’image — voir Génération d’images
Seuls les endpoints ci-dessus sont disponibles pour le moment. Les autres endpoints OpenAI (par ex. /v1/responses, /v1/embeddings) ne sont pas encore pris en charge.

Chat completions (OpenAI)

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

Gé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ètreTypeDescription
modelstringObligatoire. Id du modèle exactement comme dans la liste des modèles, sans préfixe.
messagesarrayObligatoire. Tableau ordonné de messages ; chaque message contient role et content. Au moins un message.
streambooleantrue pour recevoir la réponse progressivement via Server-Sent Events.
max_tokensintegerLimite 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_choicearray / objectAppel 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

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 }
}

L’objet usage contient le nombre de tokens servant de base à la facturation — voir Tarifs et facturation.

Messages (Anthropic)

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

Endpoint 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êteValeurDescription
x-api-keygk-…Votre clé API gk- (Authorization: Bearer est aussi accepté).
anthropic-version2023-06-01Version de l’API Anthropic ; envoyée automatiquement par le SDK.
content-typeapplication/json—

Corps de la requête

ParamètreTypeDescription
modelstringObligatoire. Id du modèle exactement comme dans la liste des modèles, sans préfixe.
messagesarrayObligatoire. Tableau de messages au format Anthropic, au moins un message.
max_tokensintegerLimite de tokens de la réponse (obligatoire au format Anthropic).
systemstring / arrayInstructions système (facultatif).
streambooleantrue 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

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

Renvoie 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.

text/event-stream
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 avec choices[].delta, et le flux se termine par data: [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.