L'API Batch de Claude
L'API Batch permet d'envoyer des lots de requêtes à traiter de manière asynchrone. En échange d'un délai de traitement (jusqu'à 24 heures), vous bénéficiez d'une réduction de 50% sur les coûts.
Quand utiliser le Batch API
- Classification de données : Catégoriser des milliers de tickets, emails ou documents
- Extraction d'information : Traiter un corpus de documents en masse
- Évaluation : Exécuter des benchmarks sur un dataset
- Migration de contenu : Transformer ou enrichir un grand volume de texte
- Génération en lot : Produire des descriptions, résumés ou traductions
Créer un batch
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
// Préparer les requêtes
const requests = items.map((item, index) => ({
custom_id: `req-${index}`,
params: {
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [
{ role: "user", content: `Classifie ce ticket : ${item.text}` }
]
}
}));
// Créer le batch
const batch = await client.batches.create({
requests
});
console.log(`Batch créé : ${batch.id}`);
console.log(`Statut : ${batch.processing_status}`);Suivre l'avancement
// Polling du statut
const status = await client.batches.retrieve(batch.id);
console.log(`Progression : ${status.request_counts.succeeded}/${status.request_counts.total}`);
// Statuts possibles : in_progress, ended, canceling, canceledRécupérer les résultats
// Une fois le batch terminé
const results = await client.batches.results(batch.id);
for await (const result of results) {
if (result.result.type === "succeeded") {
console.log(result.custom_id, result.result.message.content[0].text);
} else {
console.error(result.custom_id, result.result.error);
}
}Limites et contraintes
- Taille maximale : 100 000 requêtes par batch
- Délai : Résultats disponibles dans les 24 heures (souvent beaucoup plus rapide)
- Pas de streaming : Les résultats sont disponibles une fois le batch complet
- Expiration : Les résultats restent disponibles 29 jours
Optimiser vos batches
- Combinez avec le prompt caching : Le system prompt commun à toutes les requêtes sera caché automatiquement
- Identifiants parlants : Utilisez des
custom_idqui facilitent le mapping avec vos données - Gestion d'erreurs : Certaines requêtes peuvent échouer individuellement, traitez chaque résultat
- Taille optimale : Regroupez par type de tâche pour un meilleur throughput
Calcul des économies
Pour 10 000 requêtes avec un prompt moyen de 500 tokens input / 200 tokens output : - API standard : Coût normal - Batch API : 50% de réduction sur input ET output - Batch + caching : Jusqu'à 95% de réduction sur les tokens cachés