Limitation de debit et quotas
L'API v2 applique des limites de debit par heure et des quotas mensuels selon votre plan d'abonnement. Ces limites garantissent une qualite de service optimale pour tous les utilisateurs.
Quotas mensuels par plan
Chaque plan dispose d'un quota de requetes mensuel. Le compteur est reinitialise le premier jour de chaque mois a minuit UTC.
| Plan | Quota mensuel | Limite horaire |
|---|---|---|
| Free | 1 000 / mois | 100 / heure |
| Starter | 10 000 / mois | 500 / heure |
| Pro | 50 000 / mois | 2 000 / heure |
| Enterprise | Illimite | 10 000 / heure |
En-tetes de reponse
Chaque reponse de l'API inclut des en-tetes HTTP vous permettant de suivre votre consommation en temps reel.
| En-tete | Description | Exemple |
|---|---|---|
X-RateLimit-Limit | Nombre maximum de requetes dans la fenetre horaire | 500 |
X-RateLimit-Remaining | Requetes restantes avant d'atteindre la limite | 487 |
X-RateLimit-Reset | Timestamp Unix (secondes) de la prochaine reinitialisation | 1713362400 |
Depassement de limite
Lorsque vous depassez la limite horaire ou le quota mensuel, l'API retourne un code 429 avec un message indiquant la raison. L'en-tete X-RateLimit-Reset vous indique quand vous pourrez de nouveau envoyer des requetes.
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1713362400
{
"success": false,
"error": "Rate limit exceeded. Please try again later.",
"timestamp": "2026-04-17T12:00:00.000Z"
}async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
const resetTimestamp = response.headers.get('X-RateLimit-Reset');
const waitMs = resetTimestamp
? (Number(resetTimestamp) * 1000) - Date.now()
: Math.pow(2, i) * 1000;
console.log(`Limite atteinte. Nouvelle tentative dans ${Math.ceil(waitMs / 1000)}s...`);
await new Promise(resolve => setTimeout(resolve, Math.max(waitMs, 1000)));
continue;
}
return response;
}
throw new Error('Nombre maximum de tentatives atteint');
}Surveiller votre utilisation
Utilisez l'endpoint GET /api/v2/me pour consulter votre consommation en cours, les limites de votre plan et l'historique de vos cles API.
curl -H "X-API-Key: ${API_KEY}" -H "X-API-Secret: ${API_SECRET}" \
https://companybelgium.be/api/v2/me{
"success": true,
"data": {
"plan": {
"name": "Starter",
"requestsPerHour": 500,
"requestsPerMonth": 10000
},
"usage": {
"currentMonth": {
"requests": 3456,
"startDate": "2026-04-01T00:00:00.000Z"
}
}
},
"timestamp": "2026-04-17T12:00:00.000Z"
}Bonnes pratiques
- Mettez en cache les reponses — Les donnees BCE ne changent qu'une fois par jour. Cachez les reponses cote client pendant au moins 1 heure pour reduire votre consommation.
- Regroupez vos appels — Plutot que de faire 10 appels individuels, utilisez les endpoints granulaires v2 pour ne recuperer que les donnees dont vous avez besoin.
- Surveillez les en-tetes — Lisez les en-tetes
X-RateLimit-*pour anticiper les limites avant qu'elles ne soient atteintes. - Implementez un backoff exponentiel — En cas de reponse 429, attendez progressivement plus longtemps entre chaque tentative (1s, 2s, 4s, etc.).
- Utilisez les webhooks — Pour surveiller les changements sur des entreprises specifiques, configurez des webhooks plutot que de faire du polling repetitif.