Pourquoi un mode batch ?
Appeler company_get 20 fois de suite prend ~10 secondes (500ms × 20 en séquentiel). company_batch lance les 20 appels en parallèle côté serveur OneMCP et retourne la réponse consolidée en ~800ms — soit 12× plus rapide.
En termes de quota, un appel batch consomme 1 crédit — pas 20. C'est l'option la plus économique pour les traitements en volume.
Appel et structure
{
"tool": "company_batch",
"params": {
"sirens": [
"552032534",
"542051180",
"380129866",
"775671938",
"414728337"
]
}
}
Réponse :
{
"results": [
{
"siren": "552032534",
"name": "BNP PARIBAS",
"is_active": true,
"naf_code": "64.19Z",
"address": "16 Boulevard des Italiens, 75009 Paris"
},
{
"siren": "542051180",
"name": "TOTAL ENERGIES SE",
"is_active": true,
"naf_code": "06.10Z",
"address": "2 Place Jean Millier, 92400 Courbevoie"
}
],
"errors": [],
"provenance": ["recherche-entreprises.api.gouv.fr"]
}
Gestion des erreurs dans la réponse batch
Si un SIREN n'est pas trouvé ou génère une erreur, il apparaît dans le tableau errors — sans bloquer les autres résultats :
{
"results": [...],
"errors": [
{ "siren": "999999999", "error": "not_found" }
]
}
Cela permet un traitement "best effort" : vous obtenez tous les résultats disponibles, et vous traitez séparément les cas problématiques.
Cas d'usage : mise à jour quotidienne du CRM
Scénario : votre CRM contient 500 entreprises. Chaque nuit, vous voulez vérifier que toutes sont encore actives. Avec company_batch (max 20 par appel), le processus est :
- Récupérer la liste des 500 SIRENs depuis le CRM
- Découper en 25 batches de 20 SIRENs
- 25 appels
company_batch= 25 crédits OneMCP consommés - Filtrer les entreprises où
is_activevient de passer àfalse - Envoyer une alerte pour chaque détection
Limitation : 20 SIRENs par appel
La limite de 20 est technique — au-delà, le temps de réponse dépasse le timeout HTTP standard (30s). Pour les volumes plus importants, paginez vos batches avec un délai de 200ms entre chaque appel :
// Batch 1
{ "sirens": ["s1", "s2", ..., "s20"] }
// → attendre 200ms
// Batch 2
{ "sirens": ["s21", "s22", ..., "s40"] }
// → attendre 200ms...
Comparaison : séquentiel vs batch
| Mode | 20 entreprises | Crédits | Code requis |
|---|---|---|---|
| company_get × 20 | ~10 secondes | 20 crédits | Boucle |
| company_batch | ~800ms | 1 crédit | 1 appel |
| company_deep_profile × 20 | ~40 secondes | 20 crédits | Boucle |
Le batch est systématiquement préférable dès que vous avez plus de 3 entreprises à traiter simultanément.