# Belgisch Staatsblad Scraper - Moniteur Belge & KBO Filings (`scrapersdelight/be-gazette-company-publications-scraper`) Actor

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.

- **URL**: https://apify.com/scrapersdelight/be-gazette-company-publications-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.50 / 1,000 per publication returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 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** — `filingLanguage` tells 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

1. [Create a free Apify account](https://console.apify.com/sign-up) — it comes with free monthly credit.
2. Open **Belgisch Staatsblad Scraper** and keep **What to scrape** on *Company publications*.
3. Paste one or more **enterprise numbers**, or type a **company name**, or leave both empty and pick dates and an act type.
4. Set **Max results** and click **Start**.
5. 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

```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):

```json
{
  "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"`):

```json
{
  "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](https://apify.com/scrapersdelight/be-gazette-company-publications-scraper/api/python) or [JavaScript](https://apify.com/scrapersdelight/be-gazette-company-publications-scraper/api/javascript) client, or let an AI agent use it through the [Apify MCP server](https://apify.com/scrapersdelight/be-gazette-company-publications-scraper/api/mcp).

### More Benelux and company-register scrapers

- 🇧🇪 [Belgian Ondernemingsnummer Scraper](https://apify.com/scrapersdelight/be-ondernemingsnummer-website-contact-scraper) — company websites in, KBO number, VAT, address, email and phone out.
- 🇳🇱 [Dutch KvK & BTW Website Scraper](https://apify.com/scrapersdelight/nl-kvk-website-contact-scraper) — the Dutch equivalent from company websites.
- 🇳🇱 [Netherlands Insolvency Register](https://apify.com/scrapersdelight/rechtspraak-insolvency-nl-scraper) — the daily Dutch bankruptcy feed.
- 🇦🇹 [Austria Insolvency Scraper](https://apify.com/scrapersdelight/edikte-insolvency-at-scraper) — Ediktsdatei bankruptcies with administrators.
- 🇳🇴 [Norway Bankruptcy Notices Scraper](https://apify.com/scrapersdelight/brreg-bankruptcy-notices-scraper) — the Brreg bankruptcy gazette.

More on [our profile](https://apify.com/scrapersdelight).

### 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](https://apify.com/scrapersdelight/be-gazette-company-publications-scraper/api) for Python, JavaScript and HTTP examples.

#### Can AI agents use Belgisch Staatsblad Scraper through MCP?

Yes, through the [Apify MCP server](https://apify.com/scrapersdelight/be-gazette-company-publications-scraper/api/mcp).

#### 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](https://console.apify.com/actors/scrapersdelight~be-gazette-company-publications-scraper/issues) — we read every one.

# Actor input Schema

## `section` (type: `string`):

Company publications = one row per act a company published in the Annexes (Bijlagen bij het Belgisch Staatsblad / Annexes du Moniteur belge). Gazette publications = one row per entry of the daily Belgisch Staatsblad.

## `enterpriseNumbers` (type: `array`):

One or more Belgian enterprise numbers, any spelling: "0417.497.106", "BE0417497106", "417497106". Each is searched over the whole archive (or your date range). Company publications only.

## `companyName` (type: `string`):

Search the Annexes by company name, e.g. "colruyt" (the gazette's own name search). Company publications only.

## `dateFrom` (type: `string`):

First publication date (YYYY-MM-DD). Empty: the whole archive for a number or name search, otherwise 6 days before "Published until".

## `dateTo` (type: `string`):

Last publication date (YYYY-MM-DD). Empty: today (Brussels time).

## `actTypes` (type: `array`):

Only publications of these act types (pick several: each is one search on the gazette). Empty: every act type. Company publications only.

## `legalForm` (type: `string`):

Only publications of companies with this legal form (the gazette's own filter). Company publications only.

## `postalCode` (type: `string`):

Registered-office postal code, e.g. "1000" (Brussels) or "3500" (Hasselt). Company publications only.

## `municipality` (type: `string`):

Registered-office municipality as the gazette spells it, e.g. "hasselt", "bruxelles" (the form's Adres / Localité field). Company publications only.

## `searchQuery` (type: `string`):

Gazette publications only: keep entries whose title or issuing authority contains this text, e.g. "orthoptist" or "Vlaamse Regering". Accents and case are ignored.

## `documentType` (type: `string`):

Gazette publications only: keep entries of this document type, e.g. "Koninklijk besluit", "Arrêté royal", "Decreet", "Wet".

## `onlyIndexed` (type: `boolean`):

Skip publications the gazette lists without address, legal form and act type (on 2026-10-15 that was 437 of the day's 777). Company publications only.

## `fullTextQuery` (type: `string`):

Keep only publications whose own text contains this phrase, e.g. "faillissement", "vereffening" or a person's name, with a snippet in fullTextMatch. Reads each act's PDF (or gazette article), so it is slower; scanned acts without a text layer never match.

## `onlyNew` (type: `boolean`):

Deliver only publications that earlier runs with the same monitor name have not delivered. The first run delivers everything in the window.

## `stateKey` (type: `string`):

Keeps one monitor's memory apart from another's, e.g. "portfolio-a" or "new-companies-antwerp".

## `maxResults` (type: `integer`):

Stop after this many delivered publications (billed rows). 0 = no limit. A company search returns 100 rows per page; one working day of the Annexes holds roughly 800-1,100 publications.

## `language` (type: `string`):

The gazette edition that is searched. Company publications are listed in the language of each filing whatever you pick (see filingLanguage); gazette titles come in this language.

## `proxyConfiguration` (type: `object`):

The gazette only answers European residential IPs (datacenter and North-American IPs get "Request Rejected"). Keep RESIDENTIAL with a European country (BE, NL, FR, DE all work).

## Actor input object example

```json
{
  "section": "company",
  "enterpriseNumbers": [
    "0417.497.106"
  ],
  "legalForm": "",
  "onlyIndexed": false,
  "onlyNew": false,
  "stateKey": "default",
  "maxResults": 20,
  "language": "nl",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BE"
  }
}
```

# Actor output Schema

## `publications` (type: `string`):

One item per publication: company publications from the Annexes or entries of the gazette's daily table of contents.

## `runSummary` (type: `string`):

Searches, pages read, rows billed, field fill, and what was not billed (duplicates, earlier deliveries, filtered, no full-text match) kept apart.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "section": "company",
    "enterpriseNumbers": [
        "0417.497.106"
    ],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "BE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/be-gazette-company-publications-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "section": "company",
    "enterpriseNumbers": ["0417.497.106"],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "BE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/be-gazette-company-publications-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "section": "company",
  "enterpriseNumbers": [
    "0417.497.106"
  ],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BE"
  }
}' |
apify call scrapersdelight/be-gazette-company-publications-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/be-gazette-company-publications-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mhwx5cQbl4HScxeiG/builds/Rj4DRdzEt3LkCOeQU/openapi.json
