API Claude : Guide Pratique Python & TypeScript (2026)
By Learnia Team
API Claude : Guide Complet — Messages, Batch, SDKs et Intégrations
📅 Dernière mise à jour : 10 mars 2026 — Couvre l'API Claude v2024-06-01, les SDKs officiels et le pricing actuel.
📚 Guides spécialisés : Tool Use | Extended Thinking | Vision | Computer Use | Evals | Bedrock | Vertex AI | Prompt Caching | Hackathon
Pourquoi Utiliser l'API Claude ?
L'API Claude est le moyen le plus direct d'intégrer l'intelligence artificielle d'Anthropic dans vos applications. Contrairement à l'interface web claude.ai, l'API vous donne un contrôle total sur :
- →Le modèle utilisé (Opus, Sonnet, Haiku)
- →Les paramètres de génération (température, max tokens, stop sequences)
- →Les fonctionnalités avancées (tool use, vision, extended thinking, streaming)
- →L'architecture d'intégration (temps réel, batch, webhooks)
Architecture de l'API
L'API Claude repose sur une architecture REST simple avec un seul endpoint principal :
POST https://api.anthropic.com/v1/messages
Chaque requête inclut :
- →Un modèle (
claude-sonnet-4-20250514,claude-opus-4-20250918, etc.) - →Des messages (conversation sous forme de tableau)
- →Des paramètres optionnels (température, max_tokens, tools, etc.)
import anthropic
client = anthropic.Anthropic() # Utilise ANTHROPIC_API_KEY
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explique les microservices en 3 phrases."}
]
)
print(message.content[0].text)
Authentification et Configuration
Obtenir une Clé API
- →Créez un compte sur console.anthropic.com
- →Naviguez vers Settings > API Keys
- →Cliquez Create Key et nommez-la descriptivelement
- →Copiez la clé (elle ne sera plus affichée)
Configurer la Clé API
# Variable d'environnement (recommandé)
export ANTHROPIC_API_KEY="sk-ant-api03-..."
# Ou dans un fichier .env
echo 'ANTHROPIC_API_KEY=sk-ant-api03-...' >> .env
# Python - Automatique via variable d'environnement
client = anthropic.Anthropic()
# Python - Explicite
client = anthropic.Anthropic(api_key="sk-ant-api03-...")
// TypeScript - Automatique via variable d'environnement
const client = new Anthropic();
// TypeScript - Explicite
const client = new Anthropic({ apiKey: "sk-ant-api03-..." });
L'API Messages en Détail
L'API Messages est le cœur de l'interaction avec Claude. Voici la structure complète d'une requête :
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
temperature=0.7,
system="Tu es un expert en architecture logicielle.",
messages=[
{
"role": "user",
"content": "Quels sont les avantages des microservices ?"
},
{
"role": "assistant",
"content": "Les microservices offrent plusieurs avantages clés..."
},
{
"role": "user",
"content": "Et les inconvénients ?"
}
],
stop_sequences=["\n\nHuman:"]
)
print(response.content[0].text)
print(f"Tokens: {response.usage.input_tokens} in / {response.usage.output_tokens} out")
Paramètres Clés
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
model | string | ID du modèle à utiliser | Requis |
max_tokens | int | Nombre maximum de tokens en sortie | Requis |
messages | array | Historique de conversation | Requis |
system | string | Prompt système | Aucun |
temperature | float | Créativité (0.0 - 1.0) | 1.0 |
top_p | float | Nucleus sampling | 1.0 |
top_k | int | Top-K sampling | Aucun |
stop_sequences | array | Séquences d'arrêt | Aucune |
stream | bool | Activer le streaming | false |
tools | array | Outils disponibles pour Claude | Aucun |
metadata | object | Métadonnées (ex: user_id) | Aucune |
Structure de la Réponse
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Les microservices offrent..."
}
],
"model": "claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 42,
"output_tokens": 156
}
}
Streaming
Le streaming permet d'afficher la réponse de Claude en temps réel, token par token. Indispensable pour les interfaces utilisateur interactives.
import anthropic
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "Écris un poème sur le code."}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const stream = client.messages.stream({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "Écris un poème sur le code." }],
});
for await (const event of stream) {
if (
event.type === "content_block_delta" &&
event.delta.type === "text_delta"
) {
process.stdout.write(event.delta.text);
}
}
Événements de Streaming
| Événement | Description |
|---|---|
message_start | Début du message, contient les métadonnées |
content_block_start | Début d'un bloc de contenu |
content_block_delta | Fragment de texte (le contenu réel) |
content_block_stop | Fin d'un bloc de contenu |
message_delta | Mise à jour du message (stop_reason, usage) |
message_stop | Fin du message |
API Batch : Traitement en Masse
L'API Batch permet d'envoyer jusqu'à 100 000 requêtes dans un seul lot, avec un coût réduit de 50% et un délai de traitement allant jusqu'à 24 heures.
import anthropic
client = anthropic.Anthropic()
# Créer un batch
batch = client.batches.create(
requests=[
{
"custom_id": "req-1",
"params": {
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Résume cet article : ..."}
]
}
},
{
"custom_id": "req-2",
"params": {
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Traduis ce texte : ..."}
]
}
}
]
)
# Vérifier le statut
status = client.batches.retrieve(batch.id)
print(f"Statut: {status.processing_status}")
# Récupérer les résultats quand c'est prêt
if status.processing_status == "ended":
for result in client.batches.results(batch.id):
print(f"{result.custom_id}: {result.result.message.content[0].text}")
Quand Utiliser l'API Batch ?
| Cas d'usage | Messages API | Batch API |
|---|---|---|
| Chatbot temps réel | ✅ | ❌ |
| Analyse de 10 000 documents | ❌ | ✅ |
| Traduction de contenu en masse | ❌ | ✅ |
| Classification de tickets support | ⚠️ (coûteux) | ✅ |
| Assistant interactif | ✅ | ❌ |
| Génération de rapports périodiques | ⚠️ | ✅ |
SDKs Officiels
Anthropic fournit des SDKs pour les principaux langages de programmation :
| SDK | Langage | Installation | Maintenu par |
|---|---|---|---|
anthropic | Python | pip install anthropic | Anthropic |
@anthropic-ai/sdk | TypeScript/JS | npm install @anthropic-ai/sdk | Anthropic |
anthropic-java | Java | Maven/Gradle | Anthropic |
anthropic-go | Go | go get github.com/anthropics/anthropic-sdk-go | Anthropic |
anthropic-ruby | Ruby | gem install anthropic | Anthropic |
Exemple Java
import com.anthropic.client.AnthropicClient;
import com.anthropic.models.*;
AnthropicClient client = AnthropicClient.builder()
.apiKey(System.getenv("ANTHROPIC_API_KEY"))
.build();
MessageCreateParams params = MessageCreateParams.builder()
.model("claude-sonnet-4-20250514")
.maxTokens(1024)
.addUserMessage("Bonjour Claude !")
.build();
Message message = client.messages().create(params);
System.out.println(message.content().get(0).text());
Exemple Go
package main
import (
"context"
"fmt"
"github.com/anthropics/anthropic-sdk-go"
)
func main() {
client := anthropic.NewClient()
message, err := client.Messages.New(context.Background(),
anthropic.MessageNewParams{
Model: anthropic.ModelClaudeSonnet4_20250514,
MaxTokens: 1024,
Messages: []anthropic.MessageParam{
anthropic.NewUserMessage(
anthropic.NewTextBlock("Bonjour Claude !"),
),
},
},
)
if err != nil {
panic(err)
}
fmt.Println(message.Content[0].Text)
}
Gestion d'Erreurs
L'API Claude utilise des codes HTTP standard et des messages d'erreur descriptifs.
| Code HTTP | Signification | Action recommandée |
|---|---|---|
| 400 | Requête invalide | Vérifiez les paramètres |
| 401 | Clé API invalide | Vérifiez votre clé API |
| 403 | Permission refusée | Vérifiez les permissions du modèle |
| 429 | Rate limit atteint | Attendez et réessayez avec backoff |
| 500 | Erreur serveur | Réessayez après quelques secondes |
| 529 | API surchargée | Réessayez avec exponential backoff |
Gestion Robuste des Erreurs
import anthropic
import time
client = anthropic.Anthropic()
def call_claude_with_retry(messages, max_retries=3):
for attempt in range(max_retries):
try:
return client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=messages
)
except anthropic.RateLimitError:
wait = 2 ** attempt # Exponential backoff
print(f"Rate limited. Attente de {wait}s...")
time.sleep(wait)
except anthropic.APIStatusError as e:
if e.status_code >= 500:
time.sleep(1)
continue
raise
raise Exception("Nombre maximum de tentatives atteint")
Rate Limits
Les rate limits protègent la stabilité de l'API et varient selon votre tier d'utilisation.
| Tier | Requêtes/min | Tokens entrée/min | Tokens sortie/min |
|---|---|---|---|
| Tier 1 (par défaut) | 4 000 | 400 000 | 80 000 |
| Tier 2 | 8 000 | 800 000 | 160 000 |
| Tier 3 | 16 000 | 1 600 000 | 320 000 |
| Tier 4 | 32 000 | 3 200 000 | 640 000 |
Les headers de réponse incluent vos limites actuelles :
anthropic-ratelimit-requests-limit: 4000
anthropic-ratelimit-requests-remaining: 3999
anthropic-ratelimit-requests-reset: 2026-03-10T12:00:30Z
anthropic-ratelimit-tokens-limit: 400000
anthropic-ratelimit-tokens-remaining: 399800
Tarification
| Modèle | Entrée ($/M tokens) | Sortie ($/M tokens) | Cache Write | Cache Read |
|---|---|---|---|---|
| Claude Opus 4.6 | 15.00 | 75.00 | 18.75 | 1.50 |
| Claude Sonnet 4 | 3.00 | 15.00 | 3.75 | 0.30 |
| Claude Haiku 3.5 | 0.80 | 4.00 | 1.00 | 0.08 |
Calcul rapide : Une conversation typique (500 tokens in + 500 tokens out) avec Sonnet coûte environ $0.009 — moins d'un centime.
Patterns Courants
Conversation Multi-tours
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
system="Tu es un assistant de développement Python expert.",
messages=conversation
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
# Utilisation
print(chat("Comment créer une API REST avec FastAPI ?"))
print(chat("Ajoute de l'authentification JWT."))
print(chat("Maintenant ajoute des tests."))
Sortie Structurée (JSON)
import json
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{
"role": "user",
"content": """Analyse ce texte et retourne un JSON structuré :
"Le produit est excellent, livraison rapide mais emballage abîmé."
Format attendu :
{"sentiment": "positif|négatif|mixte", "aspects": [...], "score": 0-10}"""
}]
)
result = json.loads(response.content[0].text)
print(result)
# {"sentiment": "mixte", "aspects": [...], "score": 7}
System Prompt avec Contexte
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
system="""Tu es un assistant pour la plateforme e-commerce "TechShop".
Règles :
- Réponds toujours en français
- Recommande uniquement des produits du catalogue
- Si tu ne connais pas la réponse, redirige vers le support
Catalogue actuel :
- MacBook Pro M4 : 2499€
- iPhone 16 Pro : 1299€
- iPad Air M3 : 799€""",
messages=[
{"role": "user", "content": "Quel ordinateur portable me recommandez-vous ?"}
]
)
Accès via les Clouds
L'API Claude est également disponible via les principaux fournisseurs cloud :
| Plateforme | Avantage principal | Guide dédié |
|---|---|---|
| Amazon Bedrock | Intégration AWS native, facturation unifiée | Guide Bedrock |
| Google Vertex AI | Intégration GCP native, model garden | Guide Vertex AI |
| API directe | Accès immédiat, dernières fonctionnalités | Ce guide |
Bonnes Pratiques
- →Utilisez des variables d'environnement pour les clés API — jamais en dur dans le code
- →Implémentez le retry avec backoff exponentiel pour gérer les erreurs transitoires
- →Monitorez votre usage via la console Anthropic pour éviter les surprises
- →Utilisez le streaming pour les interfaces utilisateur interactives
- →Préférez l'API Batch pour les traitements en masse (50% d'économie)
- →Activez le prompt caching pour les prompts systèmes répétitifs
- →Choisissez le bon modèle : Haiku pour les tâches simples, Sonnet pour l'usage général, Opus pour le raisonnement complexe
Ressources
| Ressource | Lien |
|---|---|
| Documentation officielle | docs.anthropic.com |
| Console Anthropic | console.anthropic.com |
| SDK Python | github.com/anthropics/anthropic-sdk-python |
| SDK TypeScript | github.com/anthropics/anthropic-sdk-typescript |
| Cookbook | github.com/anthropics/anthropic-cookbook |
Pour aller plus loin
- →Streaming API avec Claude : guide pratique — Maîtrisez le streaming SSE pour des réponses en temps réel
- →Sorties structurées et mode strict — Garantissez des sorties JSON valides avec le paramètre strict
Module 0 — Prompting Fundamentals
Build your first effective prompts from scratch with hands-on exercises.
Weekly AI Insights
Tools, techniques & news — curated for AI practitioners. Free, no spam.
Free, no spam. Unsubscribe anytime.
→Related Articles
FAQ
Combien coûte l'API Claude ?+
Les prix varient selon le modèle : Claude 4.6 Opus coûte 15$/M tokens en entrée et 75$/M en sortie. Claude Sonnet est à 3$/M en entrée et 15$/M en sortie. Le prompt caching réduit les coûts jusqu'à 90%.
Comment obtenir une clé API Claude ?+
Créez un compte sur console.anthropic.com, accédez à Settings > API Keys, puis générez une nouvelle clé. Ajoutez des crédits à votre compte pour commencer à utiliser l'API.
Quelle est la différence entre l'API Messages et l'API Batch ?+
L'API Messages traite les requêtes en temps réel (réponse en quelques secondes). L'API Batch traite des lots de requêtes de manière asynchrone, avec un coût réduit de 50% et un délai de traitement allant jusqu'à 24 heures.
Quels SDKs sont disponibles pour l'API Claude ?+
Anthropic fournit des SDKs officiels pour Python, TypeScript/JavaScript, Java, Go et Ruby. Des SDKs communautaires existent pour d'autres langages comme Rust, PHP et C#.
Quelles sont les rate limits de l'API Claude ?+
Les rate limits par défaut sont de 4 000 requêtes/minute et 400 000 tokens/minute pour le tier 1. Vous pouvez demander une augmentation via la console Anthropic en fonction de votre usage.
Quel est le prix d'un token Claude API ?+
Les prix varient par modèle : Haiku 4.5 coûte 0,80$/M tokens en entrée et 4$/M en sortie. Sonnet 4.6 coûte 3$/M en entrée et 15$/M en sortie. Opus 4.6 coûte 15$/M en entrée et 75$/M en sortie. Le prompt caching réduit les coûts de 90% sur les tokens en cache.
Ai-je besoin de Claude Pro pour utiliser l'API ?+
Non. L'API Claude et l'abonnement Claude Pro sont deux produits séparés. L'API nécessite une clé API (créée sur console.anthropic.com) et fonctionne avec un modèle de paiement à l'usage. Claude Pro est un abonnement mensuel pour l'interface web claude.ai.
Comment utiliser l'API Anthropic en Python ?+
Installez le SDK avec 'pip install anthropic', puis créez un client avec votre clé API. Un appel basique : client.messages.create(model='claude-sonnet-4-6-20260610', max_tokens=1024, messages=[{'role': 'user', 'content': 'Votre question'}]). Consultez notre section 'Premier appel API' pour un tutoriel complet.