CompanyBelgium

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.

PlanQuota mensuelLimite horaire
Free1 000 / mois100 / heure
Starter10 000 / mois500 / heure
Pro50 000 / mois2 000 / heure
EnterpriseIllimite10 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-teteDescriptionExemple
X-RateLimit-LimitNombre maximum de requetes dans la fenetre horaire500
X-RateLimit-RemainingRequetes restantes avant d'atteindre la limite487
X-RateLimit-ResetTimestamp Unix (secondes) de la prochaine reinitialisation1713362400

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.

429 Too Many Requests
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"
}
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) {
      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.

Verifier votre quota
curl -H "X-API-Key: ${API_KEY}" -H "X-API-Secret: ${API_SECRET}" \
  https://companybelgium.be/api/v2/me
Reponse
{
  "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.

Besoin d'aide ?

Notre equipe de support est disponible pour vous aider avec l'integration de l'API.