?
GuideavancéVérifié le 2025-05

Batch API : traiter 10k requêtes à -50%

Utiliser l'API batch pour les traitements massifs avec une réduction de coût significative.

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, canceled

Ré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_id qui 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

Sources

APIbatchscale