Accueil / L'API Claude pour ceux qui construisent
La requête, une seule porte d'entrée
Toute interaction avec Claude passe par un seul point d'entrée HTTP, la requête POST /v1/messages, qui reçoit un tableau de tours et rend toujours la même structure de réponse.
L'API Claude ne compte qu'une seule porte d'entrée : la requête POST /v1/messages, appelée l'API Messages. Chaque échange, qu'il tienne en un seul tour ou qu'il enchaîne une longue conversation, passe par ce même point d'entrée, avec un corps qui porte un tableau messages et un modèle choisi. Un client HTTP ordinaire suffit : aucune autre route à mémoriser, quel que soit le modèle interrogé ou la nature de la demande.
Un champ obligatoire, sans valeur par défaut
Le corps de la requête porte un champ nommé exactement max_tokens, qui fixe le nombre maximal de jetons que le modèle peut générer avant de s'arrêter. Ce champ n'a pas de valeur par défaut : il est obligatoire sur chaque requête, au même titre que le modèle et le tableau messages. Ce champ conditionne aussi le coût et la durée de la génération, sans pour autant l'imposer : le modèle peut très bien s'arrêter avant d'atteindre cette limite, dès qu'il juge sa réponse achevée. Un cas particulier existe : envoyer max_tokens à 0 ne demande aucune génération, seulement le pré remplissage du cache de prompt en vue d'une requête suivante.
// Corps minimal d'une requête à l'API Messages
{
"model": "claude-sonnet-5",
"max_tokens": 300,
"messages": [
{ "role": "user", "content": "Résume ce texte en une phrase." }
]
}
Une réponse toujours structurée de la même façon
La réponse rendue par l'API suit toujours la même forme, quel que soit le modèle interrogé. Le champ content porte un tableau de blocs, le champ model confirme le modèle réellement utilisé, et le champ stop_reason indique pourquoi la génération s'est arrêtée : end_turn pour une réponse achevée naturellement, max_tokens pour une coupure sur la limite fixée, stop_sequence pour une séquence d'arrêt rencontrée, et selon le contexte de la requête, tool_use, refusal, pause_turn ou model_context_window_exceeded. Quand une séquence d'arrêt a déclenché la coupure, elle est répétée dans le champ stop_sequence.
Le champ usage ferme la réponse avec quatre compteurs : input_tokens, output_tokens, cache_creation_input_tokens et cache_read_input_tokens. Ces quatre nombres suffisent à calculer le coût exact d'un échange sans consulter aucune autre source, et ils reviennent sur chaque requête, même la plus simple. Lire input_tokens avant d'envoyer le tour suivant permet aussi de savoir combien de marge reste disponible dans la conversation en cours.
Cette même structure de réponse revient dans la déclaration d'un outil, où le champ stop_reason prend la valeur tool_use pour signaler une demande d'usage plutôt qu'une réponse achevée.
Le trajet d'une requête à l'API Messages
Un développeur construit le corps d'une requête à l'API Messages avec le champ model et le champ messages, puis l'envoie à l'API. Le serveur renvoie un code d'erreur 400 avant que la génération ne commence.
Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.
Ce que cela établit : Ceci établit que le champ max_tokens est nécessaire dans le corps d'une requête à l'API Messages, puisqu'un corps qui ne comporte que model et messages est rejeté avant toute génération.
Ce que cela n’établit pas : Ceci n'établit pas quelle valeur de max_tokens convient à ce cas d'usage, puisque le développeur n'a pas encore fourni de valeur à tester.
Les trois calibrages faux les plus courants
- Trop large Cette situation prouve que tous les champs possibles du corps d'une requête à l'API Messages sont obligatoires.
- Trop étroit Cette situation ne prouve rien puisqu'une seule requête a été envoyée.
- À côté Cette situation montre que l'API Messages met plus de temps à répondre lorsque le corps de la requête est incomplet.
- Le seul point d'entrée de l'API Claude est la requête POST /v1/messages, quelle que soit la longueur de la conversation échangée.
- Le champ max_tokens n'a pas de valeur par défaut : il est obligatoire sur chaque requête, au même titre que le modèle et le tableau messages.
- Le modèle peut s'arrêter avant d'atteindre la limite fixée par max_tokens, dès qu'il juge sa réponse achevée.
- Le champ stop_reason de la réponse porte des valeurs distinctes selon le contexte, dont end_turn, max_tokens, stop_sequence, tool_use, refusal, pause_turn et model_context_window_exceeded.
- Les quatre compteurs du champ usage, input_tokens, output_tokens, cache_creation_input_tokens et cache_read_input_tokens, suffisent à calculer le coût exact d'une réponse.
Ouvrez un fichier vide et écrivez le corps JSON d'une requête à l'API Messages pour votre propre projet, avec le modèle que vous utilisez, un champ max_tokens et un tableau messages contenant un seul message utilisateur. Ne l'envoyez pas : relisez-le et vérifiez que les trois champs obligatoires y figurent.
Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.
- Anthropic, API Messages, référence des paramètres de la requête consultée le 2026-09-02