CompanyBelgium

How to integrate the BCE/KBO API into your application

Complete guide to integrating the Crossroads Bank for Enterprises API into your web and mobile applications. Authentication, requests, and best practices.

March 10, 20268 min read

In brief

The BCE/KBO API gives access to official data on more than 2 million Belgian companies registered with the Crossroads Bank for Enterprises. Within minutes you can authenticate requests with an API key, query the database by name or BCE number and enrich your application with up-to-date data.

Introduction

The BCE/KBO API gives you access to official data from over 2 million Belgian companies. In this guide, we'll walk through how to integrate it step by step into your application.

Prerequisites

Before getting started, make sure you have:

  • An account on our platform
  • An active API key (public and secret)
  • Node.js 18+ or any other environment capable of making HTTP requests

Step 1: Get your API keys

Log in to your dashboard and go to the "API Keys" section. Create a new key pair. You'll receive:

  • Public key (pk_live_...): identifies your application
  • Secret key (sk_live_...): authenticates your requests (never expose on client side)

Step 2: First request

Here's an example in JavaScript/TypeScript:

TypeScript
1
2
3
4
5
6
7
8
9
const response = await fetch(class="code-string">'https:class="code-comment">//companybelgium.be/api/companies/search?q=Proximus', {
  headers: {
    class="code-string">'X-API-Key': class="code-string">'pk_live_your_public_key',
    class="code-string">'X-API-Secret': class="code-string">'sk_live_your_secret_key',
  },
});

const data = await response.json();
console.log(data.results);

The API supports several search types:

  • By name: /api/companies/search?q=name
  • By BCE number: /api/companies/{id}
  • By address: /api/companies/address?zipCode=1000
  • Peppol verification: /api/peppol/check?vatNumber=BE0123456789

Best practices

  • Cache results: BCE data doesn't change frequently
  • Handle errors: always check the HTTP return code
  • Respect rate limiting: don't exceed your plan's limits
  • Secure your keys: use environment variables
  • Conclusion

    Integrating the BCE/KBO API is simple and fast. In just a few minutes, you can enrich your application with official Company Belgium data. Go further with the Node.js and TypeScript guide for the BCE API, the Python tutorial with FastAPI, the API security best practices guide and the full BCE endpoints reference.

    Frequently asked questions

    How do I get an API key to access BCE/KBO company data in Belgium?

    Create an account on Company Belgium (companybelgium.be) and go to the API Keys section in your dashboard. You receive a public key (pk_live_...) and a secret key (sk_live_...). The secret key must never be exposed on the client side: store it in a server-side environment variable.

    What search types are available through the BCE/KBO API?

    The API offers four main modes: company name search, direct lookup by BCE number, search by address or postcode, and Peppol registration check for electronic invoicing. Each endpoint returns a structured JSON object with status, legal form, address and NACE activities.

    How do I handle rate limiting when integrating the BCE/KBO API?

    The BCE/KBO API enforces quotas based on your pricing plan. To avoid hitting them, cache results (BCE data rarely changes in real time), use exponential retry on 429 errors, and group calls into batches for bulk processing. See our batch processing guide for an optimized architecture.

    Can the BCE/KBO API be integrated into a mobile application?

    Yes, but your API keys must never appear in the mobile app code. Create an intermediate backend (Node.js, Python, etc.) that calls the BCE/KBO API server-side and exposes its own secured endpoints to your mobile app. This protects your credentials and lets you control caching and throughput.

    Ready to get started?

    Create your free account and get your API keys in minutes.

    Comments

    Loading comments…

    Leave a comment

    Not published — used only to notify you.

    Comments are moderated before publication.

    Related articles