# Dutch CBS Statistics Scraper (`parseforge/dutch-cbs-statistics-scraper`) Actor

Export official Netherlands statistics from Statistics Netherlands (CBS) Open Data. Browse table catalog or pull full datasets by table ID. Filter rows with OData expressions. Population, economy, labor, housing, education data.

- **URL**: https://apify.com/parseforge/dutch-cbs-statistics-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Other, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $14.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🇳🇱 Dutch CBS Statistics Scraper

> 🚀 **Export official Netherlands statistics in seconds.** Population, jobs, energy, GDP, housing, education, transport. Pull the full CBS table catalog or extract any dataset by table ID with server-side filtering.

> 🕒 **Last updated:** 2026-05-22 · **📊 13 fields** per record · **🇳🇱 6,000+ tables** · **🏛️ Official Statistics Netherlands** · **🗓️ Updated continuously**

The **Dutch CBS Statistics Scraper** taps Statistics Netherlands (CBS), the official producer of Dutch government statistics, and returns **13 structured fields per record**. CBS publishes the underlying data as open machine-readable tables that cover population dynamics, the labour market, GDP, regional economy, energy consumption, education, agriculture, healthcare, mobility, and dozens of other domains.

The catalog covers **thousands of tables spanning every Dutch municipality, neighbourhood, age group, sector, and statistical theme**, with new releases and revisions added every business day. This Actor surfaces the catalog and pulls dataset rows on demand, with OData filtering, column selection, and ordering passed straight through to the source so you skip building yet another OData client.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| EU researchers, NL-focused analysts, government and policy teams, economists, journalists, demographers, urban planners | Population and migration tracking, labour market dashboards, regional GDP benchmarks, energy and emissions monitoring, housing affordability studies, education and healthcare research |

---

### 📋 What the Dutch CBS Statistics Scraper does

Two modes in a single Actor:

- 📚 **Catalog mode.** Browse the full CBS table catalog with titles, identifiers, themes, summaries, and modification dates.
- 📊 **Table mode.** Pull rows from any CBS table by ID (e.g. `82931NED` population, `83765NED` jobs, `85003NED` regional indicators).
- 🔎 **OData filter.** Narrow rows with native CBS filter syntax (e.g. `AantalInwoners_4 gt 100000`).
- 🎯 **Field selection.** Return only the columns you need with `select`.
- 📐 **Ordering.** Sort by any column (e.g. `AantalInwoners_4 desc`).

Every record includes the table ID, title, short title, identifier, summary, modification date, language, catalog, status, and a clean `data` object with the actual statistical row.

> 💡 **Why it matters:** CBS is the single authoritative source for Dutch official statistics. Building your own OData client means dealing with table metadata, codelists, dimension keys, and CBS-specific encoding quirks. This Actor delivers structured rows you can load into BI, notebooks, or pipelines in minutes.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>enum</td><td><code>"table"</code></td><td><code>catalog</code> lists all CBS tables. <code>table</code> pulls rows from one specific table.</td></tr>
<tr><td><code>tableId</code></td><td>string</td><td><code>"82931NED"</code></td><td>CBS table identifier. Required for <code>table</code> mode.</td></tr>
<tr><td><code>filter</code></td><td>string</td><td><code>""</code></td><td>Optional OData <code>$filter</code> expression. Empty = all rows.</td></tr>
<tr><td><code>select</code></td><td>string</td><td><code>""</code></td><td>Optional comma-separated column list.</td></tr>
<tr><td><code>orderBy</code></td><td>string</td><td><code>""</code></td><td>Optional sort expression.</td></tr>
</tbody>
</table>

**Example: pull regional indicators for municipalities only.**

```json
{
    "maxItems": 500,
    "mode": "table",
    "tableId": "85003NED",
    "filter": "SoortRegio_2 eq 'Gemeente '"
}
````

**Example: browse the full CBS catalog.**

```json
{
    "maxItems": 200,
    "mode": "catalog"
}
```

> ⚠️ **Good to Know:** CBS tables use Dutch-language column names and coded dimensions (region codes, period codes). Use catalog mode first to discover IDs, then pull rows once you know which table you want.

***

### 📊 Output

Each record contains **13 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🏷️ `recordType` | string | `"row"` |
| 🆔 `tableId` | string | `"82931NED"` |
| 📛 `title` | string | null | `"Bevolking; geslacht, leeftijd, burgerlijke staat en regio"` |
| 🏷️ `shortTitle` | string | null | `"Bevolking; regio"` |
| 🔖 `identifier` | string | null | `"82931NED"` |
| 📝 `summary` | string | null | `"Population by sex, age, and region"` |
| 🕒 `modified` | ISO 8601 | null | `"2026-05-15T09:30:00Z"` |
| 🌍 `language` | string | null | `"nl-NL"` |
| 📚 `catalog` | string | null | `"CBS"` |
| 📌 `reasonDelivery` | string | null | `"Regulier"` |
| 📦 `data` | object | null | `{ "ID": 1, "Perioden": "2025JJ00", "TotaleBevolking_1": 17988120 }` |
| 🕓 `scrapedAt` | ISO 8601 | `"2026-05-22T00:00:00.000Z"` |
| ⚠️ `error` | string | null | `null` |

#### 📦 Sample records

<details>
<summary><strong>📚 Catalog entry: Population by region</strong></summary>

```json
{
    "recordType": "table",
    "tableId": "82931NED",
    "title": "Bevolking; geslacht, leeftijd, burgerlijke staat en regio, 1 januari",
    "shortTitle": "Bevolking; geslacht, leeftijd, regio",
    "identifier": "82931NED",
    "summary": "This table contains figures on the population by sex, age, marital status, and region on 1 January.",
    "modified": "2026-04-22T09:30:00Z",
    "language": "nl-NL",
    "catalog": "CBS",
    "reasonDelivery": "Regulier",
    "data": null,
    "scrapedAt": "2026-05-22T00:00:00.000Z"
}
```

</details>

<details>
<summary><strong>📊 Table row: Dutch population total</strong></summary>

```json
{
    "recordType": "row",
    "tableId": "82931NED",
    "title": null,
    "shortTitle": null,
    "identifier": null,
    "summary": null,
    "modified": null,
    "language": null,
    "catalog": null,
    "reasonDelivery": null,
    "data": {
        "ID": 1,
        "Geslacht": "T001038",
        "Leeftijd": "10000",
        "BurgerlijkeStaat": "T001019",
        "Perioden": "2025JJ00",
        "BevolkingOp1Januari_1": 17988120
    },
    "scrapedAt": "2026-05-22T00:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🇳🇱 | **Official source.** Data straight from Statistics Netherlands, the legal producer of Dutch government statistics. |
| 📚 | **Catalog + table modes.** Discover tables, then pull rows in the same workflow. |
| 🔎 | **Server-side filtering.** OData filter, select, and order are passed through, so you pay for only the rows you want. |
| 📊 | **Wide coverage.** Population, labour, GDP, energy, housing, education, mobility, healthcare, environment, agriculture. |
| ⚡ | **Fast.** Catalog browse in seconds, dataset rows in under a minute for typical pulls. |
| 🔁 | **Always fresh.** Every run hits the live CBS feed. |
| 🚫 | **No API key.** CBS open data needs no registration. |

> 📊 Authoritative population, labour, and economic statistics are the bedrock of every Dutch policy paper, market study, and city plan.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Dutch CBS Statistics Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **6,000+ tables** | **Live per run** | Filter, select, order | ⚡ 2 min |
| Manual CSV downloads from CBS portal | Free | Per-table | Manual | None | 🐢 Hours per table |
| Hand-coded OData client | Free | Full | Per-build | Custom | ⏳ Days |
| Commercial NL statistics aggregators | $$$/year | Curated subsets | Vendor schedule | Vendor-defined | 🕒 Sales cycle |

Pick this Actor when you want the authoritative source, server-side filtering, and zero pipeline maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Dutch CBS Statistics Scraper page on the Apify Store.
3. 🎯 **Set input.** Run catalog mode to discover tables, then table mode with a `tableId`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 🏛️ Government and policy

- Municipal population and migration tracking
- Regional GDP and employment dashboards
- Housing supply and affordability studies
- Energy transition and emissions monitoring

</td>
<td width="50%" valign="top">

#### 📈 Economic research

- Labour market analytics by sector and region
- Inflation, wage, and consumer spending models
- SME and industry concentration studies
- Cross-country benchmarks for EU panels

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🏙️ Urban planning and real estate

- Neighbourhood demographics for site selection
- Transport and mobility flow analysis
- School and healthcare facility planning
- Retail catchment and store-format modelling

</td>
<td width="50%" valign="top">

#### 📰 Journalism and consultancy

- Data-driven stories on Dutch society and economy
- Briefings and white papers for clients
- Election reporting with regional breakdowns
- Audit and due diligence inputs

</td>
</tr>
</table>

***

### 🔌 Automating Dutch CBS Statistics Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Daily or weekly refreshes keep downstream databases in sync automatically.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Theses and journal papers in demography, economics, and sociology
- Reproducible studies with cited, versioned dataset pulls
- Teaching datasets for statistics and data-science courses
- Cross-disciplinary panels mixing CBS with EU sources

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects exploring Dutch trends and stories
- Personal dashboards on local neighbourhoods
- Data visualizations and infographics for blogs
- Portfolio pieces showcasing real-world data work

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Local-government transparency and accountability tools
- Civic-tech apps for residents and community groups
- Investigative journalism on housing, inequality, and migration
- Public-interest dashboards and open-data hackathons

</td>
<td width="50%">

#### 🧪 Experimentation

- Train forecasting models on Dutch macro indicators
- Test data-product hypotheses with real public data
- Prototype agent pipelines that answer statistical questions
- Build LLM-grounded research assistants with cited tables

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Dutch%20CBS%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Dutch%20CBS%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Dutch%20CBS%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Dutch%20CBS%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick catalog or table mode, set a `tableId` and optional filters, click Start, and the Actor pulls live records from the CBS open-data feed. No browser automation, no captchas, no setup.

#### 📏 How accurate is the data?

CBS is the legally mandated producer of Dutch official statistics. Records mirror the live CBS feed at run time, including any provisional or revised figures published by CBS itself.

#### 🔁 How often is the dataset refreshed?

CBS publishes new tables and revisions every business day. Every Actor run pulls the latest version, so your dataset reflects the current CBS state at run time.

#### 🇳🇱 Is the data in Dutch or English?

CBS publishes most tables with Dutch dimension labels and column names. Many tables also have English-language editions with `ENG` suffixes (e.g. `83765ENG`).

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval (hourly, daily, weekly) and keep a downstream database in sync.

#### ⚖️ Is this data legal to use?

CBS publishes open data under a permissive license. Review the downstream terms of your specific use case, but Dutch official statistics are generally free to redistribute with attribution.

#### 💼 Can I use this data commercially?

Yes. The CBS open-data license permits commercial use with attribution. You are responsible for complying with the license and with any downstream regulatory requirements.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.

#### 🔁 What happens if a run fails or gets interrupted?

Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

Dutch CBS Statistics Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe CBS data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh CBS data into your product backend, or alert your team in Slack.

***

### 🔗 Recommended Actors

- [**📈 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**🏛️ Eurostat Scraper**](https://apify.com/parseforge/eurostat-scraper) - Official EU statistics
- [**🌐 World Bank Open Data Scraper**](https://apify.com/parseforge/world-bank-scraper) - Cross-country development indicators
- [**🗺️ Nominatim OSM Scraper**](https://apify.com/parseforge/nominatim-osm-scraper) - Geocode Dutch addresses via OpenStreetMap
- [**🏥 ClinicalTrials.gov Scraper**](https://apify.com/parseforge/clinicaltrials-gov-scraper) - Global clinical research registry

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Statistics Netherlands (CBS) or any Dutch government body. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `mode` (type: `string`):

Choose 'catalog' to browse the full CBS table catalog (table IDs, titles, themes, modification dates). Choose 'table' to pull rows from a specific table.

## `tableId` (type: `string`):

CBS table identifier (e.g. '82931NED', '83765NED', '85003NED'). Required when mode is 'table'. Find IDs by first running 'catalog' mode.

## `filter` (type: `string`):

Optional OData $filter expression to narrow rows. Examples: "SoortRegio\_2 eq 'Gemeente '" or "AantalInwoners\_4 gt 100000". Leave empty for all rows.

## `select` (type: `string`):

Optional OData $select to return only specific columns, comma-separated. Example: 'ID,WijkenEnBuurten,AantalInwoners\_4'. Leave empty for all columns.

## `orderBy` (type: `string`):

Optional OData $orderby expression. Example: 'AantalInwoners\_4 desc'.

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "table",
  "tableId": "82931NED"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "maxItems": 10,
    "mode": "table",
    "tableId": "82931NED"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/dutch-cbs-statistics-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 = {
    "maxItems": 10,
    "mode": "table",
    "tableId": "82931NED",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/dutch-cbs-statistics-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "mode": "table",
  "tableId": "82931NED"
}' |
apify call parseforge/dutch-cbs-statistics-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/dutch-cbs-statistics-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dutch CBS Statistics Scraper",
        "description": "Export official Netherlands statistics from Statistics Netherlands (CBS) Open Data. Browse table catalog or pull full datasets by table ID. Filter rows with OData expressions. Population, economy, labor, housing, education data.",
        "version": "1.0",
        "x-build-id": "VIWP9rsBimNhHwug3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~dutch-cbs-statistics-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-dutch-cbs-statistics-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~dutch-cbs-statistics-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-dutch-cbs-statistics-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~dutch-cbs-statistics-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-dutch-cbs-statistics-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "catalog",
                            "table"
                        ],
                        "type": "string",
                        "description": "Choose 'catalog' to browse the full CBS table catalog (table IDs, titles, themes, modification dates). Choose 'table' to pull rows from a specific table."
                    },
                    "tableId": {
                        "title": "Table ID",
                        "type": "string",
                        "description": "CBS table identifier (e.g. '82931NED', '83765NED', '85003NED'). Required when mode is 'table'. Find IDs by first running 'catalog' mode."
                    },
                    "filter": {
                        "title": "OData Filter",
                        "type": "string",
                        "description": "Optional OData $filter expression to narrow rows. Examples: \"SoortRegio_2 eq 'Gemeente '\" or \"AantalInwoners_4 gt 100000\". Leave empty for all rows."
                    },
                    "select": {
                        "title": "Select Fields",
                        "type": "string",
                        "description": "Optional OData $select to return only specific columns, comma-separated. Example: 'ID,WijkenEnBuurten,AantalInwoners_4'. Leave empty for all columns."
                    },
                    "orderBy": {
                        "title": "Order By",
                        "type": "string",
                        "description": "Optional OData $orderby expression. Example: 'AantalInwoners_4 desc'."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
