En bref
Claude Opus 4.7 (claude-opus-4-7) est le modèle GA le plus performant d'Anthropic. Il prend en charge une fenêtre contextuelle d'un million de jetons, une sortie maximale de 128 000 jetons, une pensée adaptative, un nouveau niveau d'effort xhigh, des budgets de tâches, une vision haute résolution (3,75 MP) et l'utilisation d'outils. Ce guide couvre la configuration de l'API, l'authentification et des exemples de code fonctionnels en Python, TypeScript et cURL pour toutes les capacités majeures.
Introduction
Anthropic a publié Claude Opus 4.7 le 16 avril 2026. C'est le modèle le plus puissant de la famille Claude et le choix idéal pour le raisonnement complexe, les agents autonomes et les workflows axés sur la vision.
Si vous avez déjà utilisé l'API Claude, la plupart de l'interface vous est familière. Mais Opus 4.7 introduit plusieurs nouvelles capacités et des changements incompatibles qui nécessitent des mises à jour de code. Les budgets de pensée étendue ont disparu. Les paramètres d'échantillonnage (temperature, top_p, top_k) ont disparu. Le mode de pensée ne prend désormais en charge que la pensée adaptative, et il est désactivé par défaut.
Ce guide vous accompagne à chaque étape : obtenir votre clé API, faire votre première requête, utiliser la pensée adaptative, envoyer des images haute résolution, configurer l'utilisation d'outils, configurer les budgets de tâches et diffuser les réponses. Chaque exemple est testé et prêt à être copié. Vous verrez également comment déboguer et tester vos appels API avec Apidog, ce qui rend l'inspection des conversations multi-tours d'utilisation d'outils bien plus facile que l'analyse de JSON brut.
Démarrage rapide
Obtenez votre clé API
- Inscrivez-vous sur console.anthropic.com
- Naviguez vers Clés API dans le tableau de bord
- Cliquez sur Créer une clé et copiez la clé
- Stockez-la en tant que variable d'environnement :
export ANTHROPIC_API_KEY="sk-ant-votre-cle-ici"
Installer le SDK
Python:
pip install anthropic
TypeScript/Node.js:
npm install @anthropic-ai/sdk
Point de terminaison de l'API
Toutes les requêtes vont à :
POST https://api.anthropic.com/v1/messages
En-têtes requis :
x-api-key: VOTRE_CLE_API
anthropic-version: 2023-06-01
content-type: application/json
Requête de texte de base
L'appel API le plus simple. Envoyez un message, obtenez une réponse.
Python:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{"role": "user", "content": "Expliquez comment fonctionne le push serveur HTTP/2 en trois phrases."}
]
)
print(message.content[0].text)
TypeScript:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const message = await client.messages.create({
model: "claude-opus-4-7",
max_tokens: 1024,
messages: [
{ role: "user", content: "Expliquez comment fonctionne le push serveur HTTP/2 en trois phrases." }
],
});
console.log(message.content[0].text);
cURL:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Expliquez comment fonctionne le push serveur HTTP/2 en trois phrases."}
]
}'
Pensée adaptative
La pensée adaptative est le seul mode de pensée pris en charge par Opus 4.7. Elle permet à Claude d'allouer dynamiquement des jetons de raisonnement en fonction de la complexité de la tâche. Elle est désactivée par défaut — vous devez l'activer explicitement.
Python:
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=16384,
thinking={
"type": "adaptive",
"display": "summarized" # facultatif : voir le résultat de la pensée
},
messages=[
{"role": "user", "content": "Analysez la complexité temporelle de cet algorithme et suggérez des optimisations :\n\ndef find_pairs(arr, target):\n result = []\n for i in range(len(arr)):\n for j in range(i+1, len(arr)):\n if arr[i] + arr[j] == target:\n result.append((arr[i], arr[j]))\n return result"}
]
)
for block in message.content:
if block.type == "thinking":
print("Pensée :", block.thinking)
elif block.type == "text":
print("Réponse :", block.text)
Points clés :
"type": "adaptive"active la pensée. Ne définissez pasbudget_tokens— cela renvoie une erreur 400 maintenant"display": "summarized"rend le contenu de la pensée visible dans la réponse. La valeur par défaut est"omitted"- Combinez avec le paramètre
effortpour contrôler la profondeur du raisonnement
Utilisation du paramètre d'effort
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=16384,
thinking={"type": "adaptive"},
output_config={"effort": "xhigh"}, # xhigh | high | medium | low
messages=[
{"role": "user", "content": "Vérifiez cette pull request pour les vulnérabilités de sécurité..."}
]
)
Niveaux d'effort pour Opus 4.7 :
| Niveau | Idéal pour |
|---|---|
xhigh |
Codage, tâches d'agent, raisonnement complexe |
high |
La plupart des travaux sensibles à l'intelligence |
medium |
Équilibre vitesse/qualité |
low |
Tâches simples, réponses rapides |
Vision haute résolution
Opus 4.7 accepte des images jusqu'à 2 576 pixels sur le côté long (3,75 mégapixels). Les coordonnées correspondent pixel par pixel aux pixels réels.
Python — analyser une image à partir d'une URL :
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/architecture-diagram.png"
}
},
{
"type": "text",
"text": "Décrivez ce diagramme d'architecture. Énumérez chaque service et les connexions entre eux."
}
]
}
]
)
print(message.content[0].text)
Python — analyser une image locale avec base64 :
import base64
with open("screenshot.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "Quels bugs d'interface utilisateur voyez-vous dans cette capture d'écran ?"
}
]
}
]
)
Les images de plus haute résolution consomment plus de jetons. Si vous n'avez pas besoin d'une fidélité totale, redimensionnez les images avant de les envoyer pour réduire les coûts.
Utilisation d'outils (appel de fonctions)
L'utilisation d'outils permet à Claude d'appeler les fonctions que vous définissez. Opus 4.7 a tendance à utiliser moins d'appels d'outils par défaut, préférant le raisonnement. Augmentez le niveau d'effort pour augmenter l'utilisation d'outils.
Python:
import json
tools = [
{
"name": "get_weather",
"description": "Obtient la météo actuelle pour une ville. Renvoie la température, les conditions et l'humidité.",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Nom de la ville, par exemple 'San Francisco'"
},
"units": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Unité de température"
}
},
"required": ["city"]
}
}
]
messages = [
{"role": "user", "content": "Quel temps fait-il à Tokyo en ce moment ?"}
]
# Premier appel — Claude demande un outil
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
tools=tools,
messages=messages,
)
# Traiter les appels d'outils
if response.stop_reason == "tool_use":
messages.append({"role": "assistant", "content": response.content})
tool_results = []
for block in response.content:
if block.type == "tool_use":
# Exécuter votre fonction ici
result = {"temperature": 22, "conditions": "Partiellement nuageux", "humidity": 65}
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": json.dumps(result)
})
messages.append({"role": "user", "content": tool_results})
# Deuxième appel — Claude utilise le résultat de l'outil
final_response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
tools=tools,
messages=messages,
)
print(final_response.content[0].text)
Modèle de boucle d'agent
Pour les agents autonomes qui exécutent plusieurs appels d'outils en séquence :
def run_agent(system_prompt: str, tools: list, user_message: str) -> str:
messages = [{"role": "user", "content": user_message}]
while True:
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=16384,
system=system_prompt,
tools=tools,
thinking={"type": "adaptive"},
output_config={"effort": "xhigh"},
messages=messages,
)
messages.append({"role": "assistant", "content": response.content})
if response.stop_reason != "tool_use":
return "".join(
block.text for block in response.content
if hasattr(block, "text")
)
tool_results = []
for block in response.content:
if block.type == "tool_use":
result = execute_tool(block.name, block.input)
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
})
messages.append({"role": "user", "content": tool_results})
Budgets de tâches (Beta)
Les budgets de tâches donnent à Claude une allocation de jetons pour une boucle d'agent entière. Le modèle voit un compte à rebours et termine son travail à mesure que le budget est consommé.
response = client.beta.messages.create(
model="claude-opus-4-7",
max_tokens=128000,
output_config={
"effort": "high",
"task_budget": {"type": "tokens", "total": 128000},
},
messages=[
{"role": "user", "content": "Examinez la base de code et proposez un plan de refactoring."}
],
betas=["task-budgets-2026-03-13"],
)
Contraintes clés :
- Budget minimum : 20 000 jetons
- Consultatif, pas un plafond strict — Claude peut le dépasser
- Différent de
max_tokens(plafond strict que le modèle ne peut pas voir) - Nécessite l'en-tête bêta
task-budgets-2026-03-13
Diffusion des réponses
Diffusez les réponses pour une sortie en temps réel dans les interfaces de chat.
Python:
with client.messages.stream(
model="claude-opus-4-7",
max_tokens=4096,
messages=[
{"role": "user", "content": "Écrivez une fonction Python pour analyser les fichiers CSV avec gestion des erreurs."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
TypeScript:
const stream = await client.messages.stream({
model: "claude-opus-4-7",
max_tokens: 4096,
messages: [
{ role: "user", content: "Écrivez une fonction Python pour analyser les fichiers CSV avec gestion des erreurs." }
],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
Si vous avez activé la pensée adaptative avec display: "summarized", les blocs de pensée sont diffusés en premier, suivis de la réponse textuelle. Sans display: "summarized", les utilisateurs voient une pause pendant la pensée suivie de la sortie textuelle.
Mise en cache des invites
Réduisez les coûts pour les contextes répétés (prompts système, documents longs) en les mettant en cache.
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
system=[
{
"type": "text",
"text": "Vous êtes un réviseur de code senior. Examinez le code pour les vulnérabilités de sécurité, les problèmes de performance et les violations des bonnes pratiques...",
"cache_control": {"type": "ephemeral"}
}
],
messages=[
{"role": "user", "content": "Examinez cette fonction :\n\ndef process_user_input(data):\n return eval(data)"}
]
)
Tarification du cache pour Opus 4.7 :
| Opération | Coût |
|---|---|
| Écriture cache 5 min | 6,25 $ / MTok (1,25x base) |
| Écriture cache 1 heure | 10 $ / MTok (2x base) |
| Lecture/succès cache | 0,50 $ / MTok (0,1x base) |
Une seule lecture du cache paie pour l'écriture du cache de 5 minutes. Deux lectures paient pour l'écriture d'une heure.
Conversations multi-tours
Maintenez le contexte sur plusieurs tours en ajoutant des éléments au tableau de messages.
messages = []
# Tour 1
messages.append({"role": "user", "content": "J'ai besoin de construire une API REST pour une application de liste de tâches."})
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
messages=messages,
)
messages.append({"role": "assistant", "content": response.content})
# Tour 2
messages.append({"role": "user", "content": "Ajoutez l'authentification avec des jetons JWT."})
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
messages=messages,
)
Tester vos appels API avec Apidog
La création d'une intégration API Claude implique des charges utiles complexes : messages multi-tours, définitions d'outils, résultats d'outils, images base64 et réponses en streaming. Un outil comme Apidog simplifie le débogage et les tests.

Configurez votre environnement :
- Créez un nouveau projet dans Apidog et ajoutez le point de terminaison de l'API Claude Messages
- Stockez votre
ANTHROPIC_API_KEYdans les variables d'environnement - Définissez les en-têtes requis (
x-api-key,anthropic-version,content-type)
Tester les flux d'utilisation d'outils :
Apidog vous permet d'enchaîner les requêtes, vous pouvez donc simuler une boucle complète d'utilisation d'outils : envoyer le message initial, inspecter l'appel d'outil de Claude, construire le résultat de l'outil et le renvoyer. L'inspecteur visuel de requête/réponse montre exactement ce qui se trouve dans chaque charge utile.
Comparer les modèles :
Exécutez les mêmes prompts contre claude-opus-4-6 et claude-opus-4-7 pour comparer le nombre de jetons, la qualité de la réponse et la latence. Le lanceur de tests d'Apidog rend les comparaisons A/B reproductibles.
Valider les schémas :
Définissez des schémas JSON pour le format de réponse attendu et laissez Apidog valider automatiquement que les réponses de Claude correspondent. Cela permet de détecter les régressions lorsque vous modifiez les prompts ou changez de modèle.
Erreurs courantes et correctifs
| Erreur | Cause | Correctif |
|---|---|---|
400: thinking.budget_tokens non pris en charge |
Utilisation de la syntaxe de pensée étendue | Passer à thinking: {"type": "adaptive"} |
400: temperature non pris en charge |
Définition de paramètres d'échantillonnage non par défaut | Supprimer temperature, top_p, top_k |
400: max_tokens dépassé |
Le nouveau tokenizer produit plus de jetons | Augmenter max_tokens (jusqu'à 128 000) |
| 429: Limite de taux dépassée | Trop de requêtes | Implémenter un backoff exponentiel ; vérifier les limites de votre niveau |
| Blocs de pensée vides | L'affichage par défaut de la pensée est "omitted" |
Ajouter display: "summarized" à la configuration de la pensée |
Référence de tarification
| Utilisation | Coût |
|---|---|
| Jetons d'entrée | 5 $ / MTok |
| Jetons de sortie | 25 $ / MTok |
| Entrée par lot | 2,50 $ / MTok |
| Sortie par lot | 12,50 $ / MTok |
| Lectures de cache | 0,50 $ / MTok |
| Écritures de cache 5 min | 6,25 $ / MTok |
| Écritures de cache 1 heure | 10 $ / MTok |
Note : Le nouveau tokenizer d'Opus 4.7 peut utiliser jusqu'à 35 % de jetons en plus pour le même texte par rapport à Opus 4.6. Utilisez le point de terminaison /v1/messages/count_tokens pour estimer les coûts avant le déploiement en production.
Conclusion
Claude Opus 4.7 est le modèle le plus performant de la famille Claude. L'API est largement compatible avec Opus 4.6, mais la suppression des budgets de pensée étendue et des paramètres d'échantillonnage nécessite des modifications de code. Les nouvelles capacités — pensée adaptative, effort xhigh, budgets de tâches et vision haute résolution — vous donnent plus de contrôle sur la façon dont le modèle raisonne et sur son coût.
Commencez par la requête de texte de base, ajoutez la pensée adaptative pour les tâches complexes, et intégrez l'utilisation d'outils et les budgets de tâches à mesure que votre agent évolue. Utilisez Apidog pour tester votre intégration, valider les charges utiles et comparer les performances entre les versions du modèle.
