Aller au contenu

Référence API

L’API Kloria reprend les formats OpenAI et Anthropic. Les paramètres, le format des réponses et le streaming suivent leurs documentations respectives : cette page décrit ce qui est propre à Kloria et ce que tu dois savoir pour l’utiliser.

Valeur
Adresse de base https://api.kloria.dev
Préfixe des endpoints /v1
Authentification Authorization: Bearer sk-… sur tous les endpoints
Variante format Anthropic x-api-key: sk-… sur /v1/messages et /v1/models

Seul HTTPS est accepté. La clé est celle créée dans la console, sous Clés API.

Méthode Chemin Format Usage
POST /v1/chat/completions OpenAI Conversation, tous les modèles
POST /v1/messages Anthropic Conversation, modèles Claude
POST /v1/responses OpenAI Responses Utilisé par Codex, modèles GPT
GET /v1/models OpenAI ou Anthropic Modèles accessibles avec ta clé

POST /v1/chat/completions accepte le corps standard de l’API OpenAI : model, messages, stream, max_tokens ou max_completion_tokens, temperature, tools, tool_choice, response_format…

Fenêtre de terminal
curl https://api.kloria.dev/v1/chat/completions \
-H "Authorization: Bearer $KLORIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 300,
"messages": [
{"role": "system", "content": "Tu réponds en une phrase."},
{"role": "user", "content": "À quoi sert un index en base de données ?"}
]
}'

Réponse (raccourcie) :

{
"id": "chatcmpl-…",
"object": "chat.completion",
"model": "claude-sonnet-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Un index permet de retrouver des lignes…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 31, "completion_tokens": 24, "total_tokens": 55 }
}

Les modèles Claude appelés dans ce format sont convertis automatiquement : tu peux passer d’un modèle GPT à un modèle Claude en ne changeant que model.

POST /v1/messages accepte le corps de l’API Messages d’Anthropic. max_tokens y est obligatoire, et le prompt système se passe dans le champ system, pas dans messages.

Fenêtre de terminal
curl https://api.kloria.dev/v1/messages \
-H "x-api-key: $KLORIA_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 300,
"system": "Tu réponds en une phrase.",
"messages": [{"role": "user", "content": "À quoi sert un index en base de données ?"}]
}'

Réponse (raccourcie) :

{
"id": "msg_…",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5",
"content": [{ "type": "text", "text": "Un index permet de retrouver des lignes…" }],
"stop_reason": "end_turn",
"usage": { "input_tokens": 27, "output_tokens": 24 }
}

Le format Anthropic est le bon choix pour les fonctions propres à Claude : blocs de contenu, cache de prompt (cache_control), réflexion étendue. C’est aussi celui qu’utilise Claude Code.

GET /v1/models renvoie la liste des modèles accessibles avec ta clé. Avec les en-têtes x-api-key et anthropic-version, la réponse suit le format Anthropic ; sinon le format OpenAI :

{
"object": "list",
"data": [
{ "id": "claude-sonnet-5", "object": "model", "owned_by": "…" },
{ "id": "gpt-6.1-sol", "object": "model", "owned_by": "…" }
]
}

Cet appel ne consomme pas de crédits.

Passe "stream": true dans le corps de la requête. La réponse arrive en Server-Sent Events (text/event-stream) :

  • Format OpenAI : une suite de lignes data: {…} contenant des delta, terminée par data: [DONE]. Pour recevoir le décompte de tokens dans le flux, ajoute "stream_options": {"include_usage": true} : le dernier événement contient alors usage.
  • Format Anthropic : les événements message_start, content_block_delta, message_delta (qui porte usage) puis message_stop.

Les SDK officiels gèrent ces formats pour toi (voir SDK Python et SDK Node.js).

  • Chaque réponse contient un objet usage avec les tokens d’entrée et de sortie facturés.
  • La console affiche, sous Journaux d’utilisation, chaque requête avec son modèle, ses tokens, sa durée et son coût en crédits.
  • Ton solde est visible sous Portefeuille.

Le calcul du coût est détaillé sur la page Modèles et tarifs.

Les erreurs suivent le format du protocole appelé : un objet error avec un message. Le code HTTP indique la catégorie :

Code Signification Que faire
400 Requête invalide : JSON mal formé, paramètre manquant (max_tokens en format Anthropic), modèle inconnu Lis le message, corrige la requête
401 Clé absente, invalide, désactivée ou expirée Vérifie l’en-tête et la clé dans la console
403 Solde épuisé, quota de la clé atteint, ou modèle non autorisé pour cette clé Recharge, augmente le quota de la clé ou ses limites de modèles
429 Trop de requêtes en peu de temps Réessaie après une pause, avec un délai croissant
500, 502, 503 Erreur ou indisponibilité temporaire du modèle Réessaie ; si ça persiste, signale-le avec l’heure de la requête

Les messages les plus fréquents et leur cause sont sur la page Dépannage.

© 2026 Kloria — bêta privée