Belgisch Staatsblad Scraper - Moniteur Belge & KBO Filings
Pricing
$4.50 / 1,000 per publication returneds
Belgisch Staatsblad Scraper - Moniteur Belge & KBO Filings
Scrape the Belgian Official Gazette: every company act in the Annexes by KBO/BCE number, name or date — incorporation, statutes, director changes, office moves, dissolutions — with company number (mod-97 checked), legal form, address, act types, publication number and PDF.
Pricing
$4.50 / 1,000 per publication returneds
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
What does Belgisch Staatsblad Scraper do?
Belgisch Staatsblad Scraper reads the Belgian Official Gazette (Belgisch Staatsblad / Moniteur belge / Belgisches Staatsblatt) on ejustice.just.fgov.be and returns one row per company publication from the Annexes (Bijlagen bij het Belgisch Staatsblad / Annexes du Moniteur belge): every incorporation, statute change, director appointment or resignation, registered-office move, capital change, merger and dissolution a Belgian company publishes. Search by KBO/BCE enterprise number (a whole list at once), company name or publication date, filter by act type, legal form, postal code or municipality — or switch to the gazette itself and read its daily table of contents (laws, royal decrees, ministerial orders, notices).
Also known as: Moniteur belge scraper, Staatsblad API, Belgian company filings, KBO publications, BCE publications, Bijlage Rechtspersonen.
- 🏢 Company acts by enterprise number — paste one number or a whole portfolio; each is searched over the whole archive (1983 → today) or your date window.
- 🗓 Every new company of the day — act type "Incorporation" + a date gives the gazette's new-company feed (measured: 11 result pages — over 1,000 incorporations — published 2026-10-09 → 2026-10-15).
- 🧮 The enterprise number checked — normalised to
0417.497.106, mod-97 verified, with the BE VAT number and a link to KBO Public Search. - 🏷 Act types you can filter on — the printed act line split into the gazette's own codes (c01-c16) and English labels; one publication often carries two to five acts.
- 🗣 The filing's own language —
filingLanguagetells you whether the act was filed in Dutch, French or German, whatever interface language you search in. - 🔎 Text inside the act — optionally keep only publications whose PDF text contains a phrase (a person's name, "vereffening", "faillissement"), with a snippet.
- 🔁 Monitoring — "Only new publications" remembers what earlier runs delivered: schedule it daily and get only the new acts of your companies.
- 🔓 No login, no API key, no browser.
What data can you get from the Belgian Official Gazette?
🗓 Publication date publicationDate | 🔢 Publication number publicationNumber | 🆔 Enterprise number enterpriseNumber |
✅ Mod-97 check enterpriseNumberValid | 💶 VAT number vatNumber | 🏢 Company name companyName |
✂️ Abbreviation abbreviation | ⚖️ Legal form legalForm | 📍 Registered address address |
🛣 Street street | 📮 Postal code postalCode | 🏙 City city |
📝 Act types as printed category | 🏷 Act type codes actTypeCodes | 🇬🇧 Act types in English actTypes |
🗣 Filing language filingLanguage | 📄 Official PDF pdfUrl | 🔗 Detail page detailUrl |
🔗 KBO Public Search kboUrl | 📰 Annex or gazette publishedIn | 🔎 Full-text snippet fullTextMatch |
Gazette mode adds: 🔢 numacId · 📜 title · ⚖️ documentType · 🗓 actDate · 🏛 agency · 📚 gazetteSection · 🗺 gazetteSubsection · 📰 edition · 📄 gazettePage · 🔗 articleUrl.
How to scrape the Belgian Official Gazette with Belgisch Staatsblad Scraper
- Create a free Apify account — it comes with free monthly credit.
- Open Belgisch Staatsblad Scraper and keep What to scrape on Company publications.
- Paste one or more enterprise numbers, or type a company name, or leave both empty and pick dates and an act type.
- Set Max results and click Start.
- Download the rows as JSON, CSV or Excel, or read them from the API.
⬇️ Input
| Parameter | Type | Description |
|---|---|---|
| 🔍 What to scrape | ||
section | select | company (default) = the Annexes; gazette = the daily table of contents of the gazette. |
enterpriseNumbers | list | KBO/BCE numbers in any spelling (0417.497.106, BE0417497106, 417497106). One search each. |
companyName | text | The gazette's own name search, e.g. colruyt. |
| 🎯 Filters (the gazette's own search) | ||
dateFrom / dateTo | date | Publication window. Empty: the whole archive for a number or name; otherwise the last 7 days. |
actTypes | multi-select | c01 incorporation · c02 termination · c03 name · c04 registered office · c05 other addresses · c06 purpose · c07 capital · c08 resignations / appointments · c09 general meeting · c10 financial year · c11 articles of association · c12 legal form · c13 restructuring · c14 annual accounts · c15 miscellaneous · c16 ex-officio deletion. |
legalForm | select | BV/SRL, NV/SA, CV/SC, CommV/SComm, VZW/ASBL, older forms (BVBA/SPRL, CVBA/SCRL …), foundations, SE. |
postalCode | text | Registered-office postal code, e.g. 1000. |
municipality | text | Registered-office municipality, e.g. hasselt. |
searchQuery | text | Gazette mode: title or authority contains this text. |
documentType | text | Gazette mode: Koninklijk besluit, Arrêté royal, Decreet, Wet … |
| ✂️ Refine results | ||
onlyIndexed | boolean | Skip publications the gazette lists without address, legal form and act type. Default false. |
fullTextQuery | text | Keep only publications whose own text contains this phrase; adds fullTextMatch. |
| 🔁 Monitoring | ||
onlyNew | boolean | Deliver only publications earlier runs (same monitor name) did not. Default false. |
stateKey | text | The monitor name, default default. |
| 📦 Output | ||
maxResults | integer | Stop after this many rows. Default 50, 0 = no limit. |
language | select | nl (default), fr or de edition of the site. |
| ⚙️ Advanced | ||
proxyConfiguration | proxy | Default: Apify RESIDENTIAL, country BE. |
Input JSON
{"section": "company","enterpriseNumbers": ["0417.497.106", "0403.170.701"],"actTypes": ["c08", "c04"],"dateFrom": "2025-01-01","onlyNew": true,"stateKey": "my-portfolio","maxResults": 500}
Search by number for a company's history, by date for the market
A number or a name with no dates searches the whole archive, newest first (AB InBev's number returns 667 publications from 2026 back to 1991). A search with neither number nor name is a market query: it needs a date window and defaults to the last 7 days. The gazette refuses any search over 10,000 results ("Verfijn uw opzoeking"); the Actor then splits the date window in halves, newest half first, until every part fits — reaching the newest week of September 2026 took three searches.
Pick several act types instead of reading everything
The gazette's form takes one act type per search; the Actor runs one search per type you pick and removes duplicates (a statutes change that is also a capital change is delivered once). Measured on 2026-10-15: of the day's 777 publications, 437 are listed without address, legal form or act type — an act-type filter or onlyIndexed leaves them out.
Use the full-text phrase for people and events
fullTextQuery downloads each candidate act's PDF and keeps it only when the phrase is inside (accents and case ignored). Measured: "bestuurder" over 2026-10-15's resignation/appointment acts matched 20 of 32 PDFs in 60 s. Scanned acts without a text layer (the PDF is an image) never match. Narrow the search with dates and act types first: every PDF is a request.
⬆️ Output
A real row (AB InBev, 2026-10-15):
{"recordType": "company_publication","publicationId": "2026-10-15/0374286","publicationDate": "2026-10-15","publicationNumber": "0374286","enterpriseNumber": "0417.497.106","enterpriseNumberValid": true,"vatNumber": "BE0417497106","companyName": "ANHEUSER-BUSCH INBEV, AFGEKORT : AB INBEV","abbreviation": "AB INBEV","legalForm": "NV","address": "GROTE MARKT 1 1000 BRUSSEL","postalCode": "1000","city": "BRUSSEL","category": "STATUTEN (VERTALING, COÖRDINATIE, OVERIGE WIJZIGINGEN, …) - KAPITAAL - AANDELEN","actTypeCodes": ["c11", "c07"],"actTypes": ["articles of association (translation, coordination, other amendments)", "capital, shares"],"filingLanguage": "nl","publishedIn": "annex","pdfUrl": "https://www.ejustice.just.fgov.be/tsv_pdf/2026/10/15/26374286.pdf","kboUrl": "https://kbopub.economie.fgov.be/kbopub/zoeknummerform.html?nummer=0417497106&actionLu=Zoek","matchedSearch": "enterprise 0417497106"}
A gazette row (section: "gazette"):
{"recordType": "gazette_publication","numacId": "2026007217","publicationDate": "2026-10-15","title": "27 september 2026. - Koninklijk besluit tot wijziging van het koninklijk besluit van 23 mei 2018 betreffende de Hoge Raad van Financiën","documentType": "Koninklijk besluit","actDate": "2026-09-27","agency": "Federale Overheidsdienst Financiën","gazetteSection": "Wetten, decreten, ordonnanties en verordeningen","edition": 1,"gazettePage": 55269,"pdfUrl": "https://www.ejustice.just.fgov.be/mopdf/2026/10/15_1.pdf"}
Fields and how often they are filled
Measured on real runs: 1,000 incorporations (2026-10-09 → 15), 150 publications of all types (2026-09-30), 100 resignation/appointment acts (2026-10-13 → 15), and 262 gazette entries (2026-10-10 → 16).
| Field | Fill | Note |
|---|---|---|
publicationDate, publicationNumber, publicationId, enterpriseNumber, vatNumber, companyName, pdfUrl, detailUrl, kboUrl | 100% | |
enterpriseNumberValid | 100% true | every one of the 2,000+ numbers read passed mod-97 |
legalForm, address, postalCode, city, street, category, actTypeCodes, actTypes, filingLanguage | 100% on act-type searches | the all-types day list holds rows without them (437 of 777 on 2026-10-15) |
abbreviation | 5.6-12% | only when the company publishes a short name |
filingLanguage | nl 61% · fr 39% | incorporations, one week |
gazette numacId, title, agency, gazetteSection, edition, gazettePage, pdfUrl | 100% | |
gazette actDate / documentType | 42% / 39% | only dated acts carry them; notices (appointments, selections) do not |
gazette gazetteSubsection | 22% | community / region headings |
Older history differs: before about 1997 the gazette printed only the municipality (city, no street) and no PDF; pre-2005 annual-accounts notices carry a year only (publicationYear, publicationDate null).
How can I use Belgian Official Gazette data?
- 🏦 KYC / AML teams — monitor a client portfolio for director changes, office moves and dissolutions.
- 💼 B2B sales — a daily list of newly incorporated companies, by postal code or legal form.
- ⚖️ Lawyers and notaries — the full publication history of a counterparty, with the official PDF of every act.
- 📊 Credit and risk — termination, liquidation and judicial-reorganisation acts as early warnings.
- 🏛 Public-affairs teams — every royal decree or regional order of the day, filtered by authority or type.
- 🤖 Data pipelines — enrich a KBO register extract with the acts behind each change.
How much does it cost to scrape the Belgian Official Gazette?
$0.0045 per publication row ($4.50 per 1,000). No start fee. Searches with no result, duplicates, rows already delivered to your monitor, rows your filters removed and acts without your full-text phrase are not charged.
| Rows | Cost |
|---|---|
| 10 | $0.045 |
| 100 | $0.45 |
| 1,000 | $4.50 |
Set a maximum charge per run in the run options; the Actor stops cleanly at it.
Integrations, API, scheduling & MCP
Schedule the Actor daily with "Only new publications" for a monitoring feed; send the rows to Google Sheets, Slack, Make, Zapier or n8n, or a webhook. Call it from code with the Python or JavaScript client, or let an AI agent use it through the Apify MCP server.
More Benelux and company-register scrapers
- 🇧🇪 Belgian Ondernemingsnummer Scraper — company websites in, KBO number, VAT, address, email and phone out.
- 🇳🇱 Dutch KvK & BTW Website Scraper — the Dutch equivalent from company websites.
- 🇳🇱 Netherlands Insolvency Register — the daily Dutch bankruptcy feed.
- 🇦🇹 Austria Insolvency Scraper — Ediktsdatei bankruptcies with administrators.
- 🇳🇴 Norway Bankruptcy Notices Scraper — the Brreg bankruptcy gazette.
More on our profile.
Limits & empty runs
- The gazette answers about one request per second; the Actor reads serially at that pace (100 rows per page: 1,000 rows in about a minute).
- One search tops out at 10,000 results on the gazette side; date windows are split automatically, a single day is never split further.
- The site only answers European residential connections; keep the default proxy (RESIDENTIAL, a European country).
- If the gazette ever answers with its image CAPTCHA, the Actor stops reading and keeps what it delivered; the run message says so.
- An empty run means the gazette has no publication for that search (for a number: no act published under it).
❓ FAQ
How much does Belgisch Staatsblad Scraper cost?
$0.0045 per publication row, no start fee. Rows that are filtered out, duplicated or already delivered to your monitor are not charged.
How many publications can Belgisch Staatsblad Scraper get?
Everything the gazette's search returns: a company's whole history (hundreds of acts for a large company), or a market query of up to 10,000 results per search window, which the Actor splits for you. About 800-1,100 company publications appear per working day (777 on 2026-10-15; about 5,500 in the week 2026-10-11 → 17).
Can Belgisch Staatsblad Scraper monitor companies?
Yes. Put the enterprise numbers in, turn on "Only new publications" and schedule the Actor daily; each run delivers only the acts earlier runs did not.
Does Belgisch Staatsblad Scraper get new company incorporations?
Yes: act type "Incorporation (c01)" plus a date window returns every new company with its legal form, address and number.
Can Belgisch Staatsblad Scraper read the gazette's laws and decrees?
Yes: set What to scrape to Gazette publications; each entry of the daily table of contents is one row with its NUMAC, document type, act date, authority and page.
Does Belgisch Staatsblad Scraper read the text of the acts?
It links every act's official PDF. With "Text inside the act" it also reads the PDF text and keeps only the acts that contain your phrase, with a snippet.
Do I need a login or an API key for Belgisch Staatsblad Scraper?
No. The gazette is public; the Actor needs no account, cookie or key.
Can I use Belgisch Staatsblad Scraper with the Apify API?
Yes — see the API tab for Python, JavaScript and HTTP examples.
Can AI agents use Belgisch Staatsblad Scraper through MCP?
Yes, through the Apify MCP server.
Why did Belgisch Staatsblad Scraper return no results?
The search matched nothing (a number with no published act, a name spelled differently), or your monitor had delivered everything before. The run summary (RUN_SUMMARY in the key-value store) lists what was searched and why rows were not delivered.
Your feedback
Found a bug or need a field? Open an issue on the Issues tab — we read every one.