Processus de demande
Pour utiliser l’API Claude Messages, récupérez d’abord votre API Token depuis la console Ace Data Cloud, et conservez-le pour une utilisation ultérieure.
Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion qui vous invitera à vous inscrire et à vous connecter ; une fois cela terminé, vous reviendrez automatiquement sur la page actuelle.
Un seul API Token permet d’appeler tous les services de la plateforme, sans avoir besoin d’en demander un séparément pour chaque service. La première demande offre un quota gratuit, permettant une expérience gratuite ; lorsque le quota est insuffisant, vous pouvez recharger votre solde universel dans la console.
📘 Documentation complète : Claude Messages API →
Utilisation de base
Le chemin de requête de l’API Claude Messages est/v1/messages, identique à celui de l’API officielle d’Anthropic. Nous devons fournir au minimum trois paramètres obligatoires :
model: sélectionnez le modèle Claude à utiliser.claude-opus-5-5est fourni uniquement via l’API Messages, prend en charge un contexte de 1 million de Token, une sortie maximale de 128K Token, et active toujours la réflexion adaptative. Le dernier modèle phare estclaude-fable-5-1(contexte de 1 million de Token, sortie maximale de 128K Token) ; l’ancienclaude-fable-5reste conservé pour la compatibilité.claude-sonnet-5-5a rejoint l’interface de la série native Messages, prend en charge l’entrée d’images et la réflexion adaptative ; ses prix de référence officiels pour l’entrée, la sortie et la lecture du cache sont respectivement de 2, 10 et 0,20 dollars par million de Token.messages: le tableau des messages d’entrée ; chaque message contientrole(rôle) etcontent(contenu), oùroleprend en chargeuseretassistant.max_tokens: le nombre maximal de tokens de sortie, utilisé pour limiter la longueur d’une réponse unique.
system: l’invite système, utilisée pour définir le comportement et le rôle du modèle.temperature: le caractère aléatoire de la génération, entre 0 et 1 ; plus la valeur est élevée, plus les réponses sont diversifiées.stream: indique si une réponse en streaming est utilisée ; définie surtrue, elle permet un retour caractère par caractère.stop_sequences: séquences d’arrêt personnalisées ; le modèle cesse de générer lorsqu’il rencontre ces textes.top_p: paramètre d’échantillonnage nucléaire, utilisé avec temperature pour contrôler le caractère aléatoire de la génération.top_k: échantillonne uniquement parmi les K options ayant la probabilité la plus élevée.tools: définition des outils, utilisée pour permettre au modèle d’appeler des fonctions externes.tool_choice: contrôle la manière dont le modèle utilise les outils fournis.cache_control: crée automatiquement un point d’arrêt de cache au dernier bloc de contenu pouvant être mis en cache dans la requête ; peut également être écrit sur un bloc de contenu spécifique.
Exemple cURL
Exemple Python
id: l’identifiant unique de ce message.type: toujoursmessage.role: toujoursassistant.content: tableau du contenu de la réponse ; chaque élément contienttype(tel quetext) et le contenu correspondant.model: le nom du modèle qui traite la requête.stop_reason: la raison de l’arrêt. Les valeurs stables incluentend_turn,max_tokens,stop_sequence,tool_use,pause_turn(le contenu actuel de l’assistant peut être renvoyé tel quel pour continuer),refusaletmodel_context_window_exceeded.stop_sequence: si l’arrêt est dû à une séquence d’arrêt personnalisée, affiche le texte de la séquence d’arrêt correspondante.stop_details: lorsquestop_reasonestrefusal, peut contenir la catégorie du refus et une explication.usage: statistiques d’utilisation des tokens.input_tokenscorrespond aux entrées non mises en cache ;cache_creation_input_tokensetcache_read_input_tokenscorrespondent respectivement à l’écriture et à la lecture du cache ;output_tokensest le nombre total de tokens de sortie. Sioutput_tokens_details.thinking_tokensest retourné, cette valeur est un sous-ensemble deoutput_tokens; ne l’ajoutez pas à nouveau lors du calcul du total ou du coût. Ce détail peut êtrenullou omis lorsqu’aucun comptage faisant autorité n’est disponible.usage.cache_creation: détail optionnel du TTL d’écriture du cache, contenantephemeral_5m_input_tokensetephemeral_1h_input_tokens. Lorsque l’objet existe, la somme des deux est égale àcache_creation_input_tokens; un champnullou omis indique qu’aucune ventilation TTL n’est disponible dans la réponse actuelle et ne doit pas être interprété comme0.usage.cost: les réponses non streaming peuvent contenir un objet de consommation de quota enregistré par Ace Data Cloud, dans lequelamountest la consommation réelle de cette requête,currencyest l’unité de mesure, etlist_amountest le montant avant remise (le cas échéant). Le prix de base officiel de lecture du cache pour Fable 5.1 est de 0,25 et 20 $/million de Token ; le prix réel de la plateforme est converti selon les remises du forfait.
Invite système
L’API Claude Messages prend en charge la définition d’une invite système via le champsystem, utilisée pour définir le comportement, le rôle et le contexte du modèle.
Exemple Python
system, vous pouvez contrôler précisément le rôle et le comportement de Claude.
Réponse en streaming
Cette interface prend également en charge les réponses en streaming ; définissez le paramètrestream sur true pour obtenir un retour progressif, ce qui est particulièrement adapté à l’implémentation d’un affichage caractère par caractère sur une page web.
Exemple Python
event: et data:. Les types d’événements de streaming incluent :
message_start: début du message, contenant les informations de base du message et le nom du modèle.content_block_start: début du bloc de contenu.content_block_delta: mise à jour incrémentielle du bloc de contenu, contenant les nouveaux fragments de texte générés.content_block_stop: fin du bloc de contenu.message_delta: mise à jour incrémentielle au niveau du message, contenantstop_reasonet les informations finales deusage. La valeur de référence deoutput_tokens_details.thinking_tokensdoit uniquement être lue depuis le derniermessage_delta.usage, ne l’accumulez pas entre les événements.message_stop: fin du message.
content_block_delta contient le contenu textuel généré progressivement ; en concaténant tous les text_delta, vous pouvez obtenir la réponse complète.
Exemple JavaScript
Conversation multi-tours
Si vous souhaitez intégrer une fonctionnalité de conversation multi-tours, vous devez alterner les messages avec les rôlesuser et assistant dans le tableau messages, en transmettant également l’historique des conversations précédentes.
Exemple Python
messages, Claude peut fournir des réponses précises en tenant compte du contexte.
Modèle de réflexion approfondie
Le thinking et le thinking summary de Claude sont deux concepts différents : le modèle peut effectuer un raisonnement interne, mais l’API ne renvoie pas la chaîne de pensée brute. Lorsqu’il est nécessaire d’afficher le processus de raisonnement, l’API renvoie un résumé traité. Il est actuellement recommandé d’utiliser l’adaptive thinking pour le modèle actuel, et de contrôler l’investissement global de raisonnement viaoutput_config.effort :
display: "summarized"renvoie un résumé de réflexion lisible ; ce n’est pas la chaîne de pensée brute.display: "omitted"renvoiethinking: "", mais conserve toujours unesignatureopaque pour prendre en charge les conversations ultérieures.display: "updates"est le mode beta d’Anthropic, qui nécessiteanthropic-beta: thinking-display-updates-2026-08-18. La définition officielle est de masquer le corps du raisonnement et d’afficher de brèves mises à jour de progression entre les appels d’outils. La plateforme transmet ce paramètre et l’en-tête de requête beta tels quels, sans forcer leur réécriture ensummarized; le contenu réel de la sortie dépend de la prise en charge du modèle sélectionné.thinking,output_config, effort, les paramètres d’échantillonnage et les nouveaux champs d’extension sont transmis tels quels. La plateforme ne maintient pas d’énumérations de valeurs ni de restrictions de combinaisons codées en dur par modèle, et ne réécrit pas automatiquement les modes thinking ; l’acceptation de ces paramètres est déterminée par le modèle sélectionné, et les erreurs de paramètres renvoyées par le modèle seront transmises au client.- Les valeurs par défaut de display pour Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 et Opus 4.7 sont
omitted; Opus 4.6, Sonnet 4.6 et les modèles antérieurs prenant en charge thinking utilisentsummarizedpar défaut. - Display n’affecte que le contenu retourné et la latence de streaming, ne désactive pas le raisonnement et ne réduit pas la facturation des tokens thinking.
- L’activation de thinking par défaut et la valeur par défaut de display sont deux questions indépendantes. Opus 5 et Sonnet 5 activent adaptive thinking par défaut ; pour Opus 5, omettre
thinkingéquivaut à adaptive, et omettreoutput_config.effortéquivaut àhigh. Opus 4.8, 4.7 et 4.6 nécessitent une activation explicite. - Thinking et le corps final partagent le budget de sortie
max_tokens. Si le budget est trop faible, thinking peut consommer la majeure partie du quota, laissant le corps vide ou tronqué ; augmentezmax_tokens, ou utilisez l’effortlow/mediumpour contrôler l’investissement dans le raisonnement. - Pour les modèles qui autorisent la désactivation de thinking, vous pouvez transmettre
thinking: {"type":"disabled"}. Les nouveaux modes tels quebetween_toolsainsi que les combinaisons d’effort dépendent du modèle sélectionné ; la plateforme ne les rejettera pas à l’avance selon les anciennes règles de modèle. - Un budget de réflexion fixe peut être transmis via
budget_tokens; les nouveaux modèles utilisent généralementthinking.type=adaptiveetoutput_config.effort. La prise en charge d’un budget fixe ou de la désactivation de la réflexion dépend des capacités actuelles du modèle sélectionné. - Lors de conversations multi-tours et d’appels d’outils, le bloc thinking complet et la signature renvoyés par l’assistant doivent être retransmis tels quels ; ne modifiez pas et ne générez pas vous-même de signature.
- La transmission directe des paramètres ne signifie pas que chaque modèle prend en charge toutes les fonctionnalités. Les appels inter-protocoles nécessitent toujours une conversion, et la portée de prise en charge ainsi que les erreurs pour des contenus comme
redacted_thinkingsont déterminées par le service de modèle qui traite réellement la requête.
summarized produit thinking_delta ; omitted ne produit pas thinking_delta, et conserve uniquement le cycle de vie du bloc thinking et signature_delta.
Modèles visuels
Claude prend en charge les entrées multimodales et peut traiter simultanément du texte et des images. Dans l’API Messages, les capacités visuelles peuvent être utilisées en définissantcontent au format tableau et en transmettant des blocs de contenu d’image.
Utiliser des images encodées en Base64
Utiliser des images URL
Exemple cURL
image/jpeg, image/png, image/gif, image/webp.
Documents et PDF
Les PDF utilisent des blocs de contenudocument et prennent en charge deux sources stables : Base64 et URL. Les sources Base64 doivent utiliser application/pdf :
{"type":"url","url":"https://example.com/report.pdf"}. document prend également en charge text/plain et les sources content composées de blocs text/image ; les champs optionnels incluent title, context et citations. Les sources file_id de l’API Files constituent une fonctionnalité beta distincte et ne font pas partie du contrat stable de cette interface.
Mise en cache des prompts
Lecache_control de niveau supérieur placera automatiquement le point d’arrêt du cache sur le dernier bloc pouvant être mis en cache :
cache_control sur les blocs de contenu text, image, document, tool_use, tool_result ou sur la définition de l’outil. ttl prend en charge 5m (par défaut) et 1h ; veuillez déterminer l’écriture et l’atteinte du cache via usage.cache_creation_input_tokens et usage.cache_read_input_tokens.
Lorsque la réponse fournit usage.cache_creation, alors ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens. Si cache_creation est null ou omis, cela indique qu’il n’existe qu’un total d’écriture dans le cache, sans répartition TTL faisant autorité ; dans ce cas, ne considérez aucun bucket comme étant connu à 0, la facturation et les totaux restent basés sur le champ aggregate.
Exemple de résultat retourné :
Appel d’outils (Tool Use)
L’API Claude Messages prend nativement en charge la fonctionnalité d’appel d’outils, permettant au modèle d’appeler vos outils/fonctions prédéfinis lorsque nécessaire.Exemple Python
content dans le résultat retourné contient un bloc de contenu de type tool_use :
stop_reason est tool_use, ce qui indique que le modèle doit appeler un outil. Après avoir reçu ce résultat, vous devez exécuter la fonction outil et renvoyer le résultat au modèle sous la forme d’un tool_result :
Différences avec l’API Chat Completion
Ace Data Cloud fournit simultanément deux formats d’API Claude, dont les principales différences sont les suivantes : Le champusage.input_tokens de l’API Messages ne représente que les entrées non mises en cache ; cache_read_input_tokens et cache_creation_input_tokens sont des buckets de facturation indépendants ; les trois sont calculés séparément selon les prix correspondants.
Si votre système est déjà intégré à une API au format OpenAI, vous pouvez utiliser l’API Chat Completion pour basculer de manière transparente. Si vous devez utiliser toutes les capacités natives de Claude, il est recommandé d’utiliser l’API Messages.
Gestion des erreurs
Les réponses d’erreur de l’interface publique utilisent l’enveloppe de la plateforme Ace Data Cloud :error.code est un code d’erreur stable, error.message est une description, et trace_id est utilisé pour diagnostiquer les requêtes. Les statuts HTTP courants incluent :
400: les paramètres de la requête ou le contenu du protocole sont invalides.401: le jeton d’autorisation est invalide, absent ou expiré.403: accès interdit, solde insuffisant ou quota limité.404: l’API ou le modèle n’existe pas.413: le corps de la requête est trop volumineux.429: trop de requêtes.500/503/504: erreur de service, indisponibilité temporaire ou délai de traitement dépassé.
Exemple de réponse d’erreur
error.code.

