Limitation de débit
Politique de limitation de débit et bonnes pratiques d'utilisation.
Limites par défaut
L'API applique un rate limiting intelligent par utilisateur (basé sur la clé API) pour garantir la qualité du service.
| Plan | Requêtes / minute | Requêtes / jour |
|---|---|---|
| Gratuit | 30 | 1 000 |
| Standard | 60 | 10 000 |
Stratégie de cache
Les réponses sont mises en cache pour optimiser les performances et réduire la charge sur les services BCE/KBO.
| Endpoint | Cache | Stale-While-Revalidate |
|---|---|---|
/api/companies/search | 10 minutes | 20 minutes |
/api/companies/address | 10 minutes | 20 minutes |
/api/companies/:id | 1 heure | 2 heures |
/api/peppol/check | 1 heure | 2 heures |
Gestion du rate limiting
Lorsque la limite est atteinte, l'API retourne un code 429. Implémentez un backoff exponentiel :
Backoff exponentiel
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
// Backoff exponentiel: 1s, 2s, 4s
const delay = Math.pow(2, i) * 1000;
console.log(`Rate limited. Retry in ${delay}ms...`);
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
return response;
}
throw new Error('Max retries exceeded');
}Bonnes pratiques
- Cachez les résultats localement — Évitez les requêtes répétées pour les mêmes données.
- Utilisez la pagination — Ne chargez que les pages nécessaires.
- Implémentez un backoff exponentiel — En cas de code 429, attendez progressivement plus longtemps.
- Évitez les requêtes en rafale — Espacez vos appels API de manière homogène.
- Surveillez vos statistiques — Consultez votre tableau de bord pour suivre votre consommation.