Documentation de l’API CBE2JSON

CBE2JSON vous donne accès aux données officielles d’entreprises belges de la Banque-Carrefour des Entreprises (CBE / BCE / KBO) via une API REST simple. La référence interactive ci-dessous documente chaque endpoint, ses paramètres et des exemples de réponses JSON.

Démarrage rapide

1. Obtenez votre clé API

Créez un compte gratuit (50 crédits par mois, sans carte de crédit), puis générez une clé dans votre dashboard. Une clé se compose d'un clientId et d'une secretKey.

Créer un compte gratuit J'ai déjà un compte

2. Envoyez votre première requête

Chaque endpoint reçoit un POST avec un corps JSON : vos identifiants et un objet data. Cet exemple recherche Proximus par son numéro d'entreprise. Les points et le préfixe BE sont facultatifs : 0202239951 et BE0202.239.951 fonctionnent aussi.

curl -X POST https://api.cbe2json.be/byCBE \
  -H "Content-Type: application/json" \
  -d '{"clientId": "YOUR_CLIENT_ID", "secretKey": "YOUR_SECRET_KEY", "data": {"cbe": "0202.239.951"}}'

Pour rechercher par nom, envoyez un POST à /byDenomination avec "data": {"denomination": "Proximus", "limit": 10, "offset": 0}.

Pour retrouver des entreprises par activité (NACE), code postal, commune, rue et numéro, forme juridique ou situation juridique, envoyez un POST à /search avec par exemple "data": {"zipcode": "1000", "street": "Rue de la Loi", "houseNumber": "16"}. Les filtres NACE et adresse doivent correspondre au même siège ou à la même unité d'établissement. Les résultats sont triés par numéro d'entreprise croissant, ce qui rend la pagination par offset et limit stable. Utilisez cette recherche pour rechercher ou vérifier des entreprises, par exemple qui est domicilié à une adresse donnée ou si un fournisseur dispose d'un code d'activité précis — la licence BCE Open Data exclut le marketing direct.

/search/numbers accepte les mêmes filtres et ne renvoie que les numéros d'entreprise, jusqu'à 1000 par page, dans le même ordre croissant.

SDK JavaScript & TypeScript CBE2JSON

3. Traitez la réponse

Un appel réussi renvoie du JSON. À partir de la version 2 de l'API, la réponse a la forme { data, meta } : data contient l'entreprise (ou la liste d'entreprises), et meta indique la date du jeu de données BCE servi, les crédits utilisés par l'appel et les crédits restants. Vérifiez d'abord le statut HTTP : les erreurs de l'API renvoient un corps JSON comme {"errorCode": "…", "message": "…"}, avec l'un de ces codes :

Statut HTTP errorCode Signification
400
VALIDATION_FAILED
Le corps de la requête est invalide : champ manquant ou inconnu, ou numéro d'entreprise invalide.
400
QUOTA_EXHAUSTED
Vos crédits du mois sont épuisés, ou cette requête renverrait plus de résultats que les crédits qui vous restent (réduisez data.limit). Passez à un plan supérieur ou attendez la remise à zéro mensuelle.
401
BAD_CLIENT_SECRET
Le clientId et la secretKey ne correspondent à aucune clé API.
403
ORIGIN_NOT_ALLOWED
La requête provient d'un site web absent des origines autorisées de cette clé. Les navigateurs l'affichent comme une erreur CORS ; les origines bloquées sont listées dans votre dashboard.
404
ENTERPRISE_NOT_FOUND
Aucune entreprise ne correspond à ce numéro ou à ce nom. En version 1, byDenomination le renvoie aussi pour une page au-delà du dernier résultat ; en version 2, la réponse est une liste vide.
400
UNSUPPORTED_API_VERSION
L'en-tête CBE2JSON-Version indique une version qui n'existe pas.

byCBE consomme 1 crédit par entreprise trouvée. byDenomination et search consomment 1 crédit par entreprise renvoyée. search/numbers consomme 1 crédit par page avec résultats. Les requêtes en échec et les résultats vides ne consomment aucun crédit. Les réponses indiquent aussi vos crédits dans des en-têtes : CBE2JSON-Credits-Used, -Remaining, -Limit et -Reset.

Versions de l'API

Chaque clé API est liée à un format de réponse : le JSON que vous traitez ne change jamais à votre insu. Les nouvelles clés démarrent sur la dernière version ; vous pouvez changer la version d'une clé dans votre dashboard à tout moment, et revenir en arrière.

  • Version 1 — le format original. Toutes les clés créées avant le versionnement l'utilisent.
  • Version 2 — enveloppe chaque réponse dans { data, meta } : data contient l'entreprise ou la liste d'entreprises ; meta donne la date du jeu de données (dataUpdatedAt), les crédits (creditsUsed, creditsRemaining, creditsLimit, creditsResetAt) et, pour byDenomination, la page (total, limit, offset, hasNext). byDenomination accepte une limit de 100 au maximum et répond à une recherche sans résultat par une liste vide au lieu d'une erreur 404.

Pour essayer une autre version sur une seule requête, envoyez l'en-tête CBE2JSON-Version (par exemple 2). Chaque réponse porte ce même en-tête, avec la version utilisée.

Toute modification d'un format de réponse existant fait l'objet d'une nouvelle version. Les anciennes versions restent prises en charge au moins 12 mois après la sortie d'une version plus récente, et nous vous prévenons par e-mail avant d'en retirer une.

Référence de l'API

CBE2JSON API
 1.0.0 
OAS3

/swagger.json

Official Belgian company data from the Crossroads Bank for Enterprises (CBE / BCE / KBO) as JSON.

Authentication. Every endpoint is a POST with a JSON body holding your credentials and a data object: {"clientId": "…", "secretKey": "…", "data": { … }}. Generate a key in your dashboard.

Credits. byCBE uses 1 credit per enterprise found; byDenomination and /search use 1 credit per enterprise returned; /search/numbers uses 1 credit per non-empty page of up to 1,000 numbers. Each is refused (400 QUOTA_EXHAUSTED, nothing charged) when it would exceed the credits left. Failed requests and empty results use no credits; total is always free. Every response to an identified key carries the credits in headers: CBE2JSON-Credits-Used, CBE2JSON-Credits-Remaining, CBE2JSON-Credits-Limit and CBE2JSON-Credits-Reset (the last three are left out when they do not apply).

Errors. Check the HTTP status first. API errors return {"errorCode": "…", "message": "…"} with the status listed under each endpoint; other failures (malformed JSON, server errors) can return a different body.

Versions. Each API key is pinned to a response format: version 1 is the original format; version 2 wraps every response in { "data": …, "meta": { … } }, where meta gives the dataset date, the credits and, for searches, the page. Version 2 also caps limit at 100 for byDenomination and /search (1000 for /search/numbers) and answers an empty search with 200 and an empty list. New keys start on the latest version; switch a key in your dashboard. Send the CBE2JSON-Version header to use another version for one request; every response carries that header with the version used. Older versions stay supported for at least 12 months after a newer one ships.

Browser access (CORS). By default an API key works from any website. In your dashboard you can restrict a key to a list of origins, or block browser access entirely. Origins are matched as globs: https://app.example.com matches exactly that origin; https://*.example.com matches app.example.com and a.b.example.com but not the bare https://example.com; http://localhost:* matches any local port. A request from a disallowed origin returns 403 ORIGIN_NOT_ALLOWED and consumes no quota.

CORS is enforced by browsers only — a script, server or mobile app can still use the key, so keep your secret key secret.

proprietary license
Servers

default