# NL Water Extraction Ban Monitor (Onttrekkingsverbod) (`codeclouds/nl-onttrekkingsverbod-monitor`) Actor

Current Dutch surface-water extraction ban status per water authority (waterschap) zone, from 5 official ArcGIS open-data sources, plus the legal water-scarcity priority ranking (verdringingsreeks) classification tool.

- **URL**: https://apify.com/codeclouds/nl-onttrekkingsverbod-monitor.md
- **Developed by:** [Dennis](https://apify.com/codeclouds) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 zone-records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## NL Water Extraction Ban Monitor (Onttrekkingsverbod)

Get the current Dutch surface-water extraction ban status per zone for 7 water authorities (waterschappen),
sourced directly from their official ArcGIS open-data services — plus the official legal water-scarcity
priority ranking ("verdringingsreeks") classification tool.

### When should an AI agent use this?

- "Is there a water extraction ban currently active in this area of Waterschap De Dommel?"
- "Which zones in Waterschap Aa en Maas currently have an extraction ban?"
- "Give me all active extraction bans across the covered Dutch water authorities."
- "If I use water for agricultural irrigation, what priority category applies during a water shortage in the Netherlands?"
- "Compare extraction ban coverage between Vechtstromen and Hunze en Aa's."

### What this Actor does

- Fetches zone-level extraction ban status directly from 7 water authorities' official ArcGIS services (no
  scraping): De Dommel, Vallei en Veluwe, Vechtstromen, Aa en Maas, Hunze en Aa's, Brabantse Delta, and
  Stichtse Rijnlanden (HDSR).
- Normalizes each authority's own data model (they differ — some publish an explicit status field, others
  model a ban as the mere existence of a zone in a dedicated layer) into one consistent output schema.
- Optionally classifies a water use type (drinking water, agriculture, industry, etc.) against the official
  Dutch "verdringingsreeks" — the legal priority order used to allocate scarce water — as a pure
  classification with no network call.
- Each source is fetched independently: if one water authority's service is temporarily unavailable, the
  others still deliver results (with a warning logged for the failed one).

**Coverage note**: the Netherlands has 21 water authorities in total. This version covers 7 — chosen because
each publishes a genuinely live, machine-readable open-data source (verified individually; there is no
shared national data standard between them). Several others were investigated but deliberately excluded: two
(Amstel Gooi en Vecht, Delfland) appear to have no extraction-ban regime at all (they are boezem areas fed
by external water supply); a few more (Hollands Noorderkwartier, Scheldestromen, Rijn en IJssel) publish
GIS layers that don't map cleanly to a simple banned/allowed status without risking a wrong interpretation.
The remaining ones are not yet covered (no public GIS source found — communicated only via news articles).

### Input

| Field | Type | Description |
|---|---|---|
| `waterschappen` | string\[] | Which water authorities to include: `de-dommel`, `vallei-en-veluwe`, `vechtstromen`, `aa-en-maas`, `hunze-en-aas`. Default: all 5. |
| `watergebruikType` | string | Optional: get the verdringingsreeks priority category for a water use type (`drinkwater`, `energievoorziening`, `kleinschalig_hoogwaardig`, `landbouw_beregening`, `industrie_overig`, `natuur`). Leave empty to skip. |
| `maxResults` | integer | Maximum number of zone records to return across all selected authorities (1-2000). Default `1000`. |

### Output

One flat JSON record per extraction zone:

```json
{
  "land": "NL",
  "tipo": "onttrekkingsverbod_zone",
  "waterschap": "Aa en Maas",
  "gebied": "District Boven Aa",
  "onttrekkingsverbodStatus": "volledig",
  "typeVerbod": "Onttrekkingsverbod",
  "bronType": "oppervlaktewater",
  "verbodStartDatum": null,
  "verbodEindDatum": null,
  "bronDatum": "2026-07-09T04:29:36.000Z",
  "bronUrl": "https://gisservices.aaenmaas.nl/arcgis/rest/services/EXTERN/OnttrekkingsverbodOppwater/MapServer/1/query?...",
  "datumOpgehaald": "2026-07-19T09:42:42.588Z"
}
```

When `watergebruikType` is set, one additional record is added:

```json
{
  "land": "NL",
  "tipo": "verdringingsreeks_classificatie",
  "watergebruikType": "landbouw_beregening",
  "categorie": 4,
  "categorieNaam": "Overige belangen (economische afweging, ook natuur)",
  "omschrijving": "...",
  "disclaimer": "Dit is een indicatieve classificatie... GEEN bindend besluit."
}
```

### Use cases

- Agricultural irrigation planning for farms in the covered water authority areas.
- Advisory/legal support for clients holding a water extraction permit.
- Insurance/reinsurance risk screening for Dutch agricultural portfolios.
- Understanding legal water-allocation priority before a drought escalates.

### Pricing

This Actor uses Apify's Pay-Per-Event (PPE) pricing model.

- **Actor Start:** $0.00005 (Apify default)
- **`zone-record`:** $0.004 per delivered extraction zone record
- **`onttrekkingsverbod-signaal`:** $0.015 per zone record currently under a full or partial ban
- **`verdringingsreeks-classificatie`:** $0.004 per classification record (only when `watergebruikType` is set)

### Legal

Data sourced exclusively from official Dutch water authorities' public open-data services (ArcGIS) and the
official verdringingsreeks categories (Besluit kwaliteit leefomgeving, via iplo.nl). No personal data is
processed. This Actor reports the latest officially published status; it does not provide legal advice, and
the verdringingsreeks classification is an indicative estimate, not a binding decision — see the disclaimer
field in that record.

### FAQ

**Q: Why only 7 of the 21 Dutch water authorities?**
A: There is no shared national data standard for extraction ban status — each authority publishes its own,
differently-structured open-data source (or none at all). These 7 were individually verified to have a
genuinely live, machine-readable source with an unambiguous banned/allowed status. Coverage may expand in
future versions.

**Q: What does "gedeeltelijk" (partial) mean?**
A: Some water authorities (e.g. Aa en Maas) distinguish a full ban from a more limited "beperkt
onttrekkingsverbod" — reflected as `gedeeltelijk` in the output.

**Q: What is the verdringingsreeks?**
A: The Dutch legal priority ranking (4 categories) used to allocate water among competing interests during
a water shortage. Category 1 has highest priority (last to be cut off), category 4 lowest.

***

*Zoekwoorden: onttrekkingsverbod, waterschap droogte, beregeningsverbod, wateronttrekking verboden,
verdringingsreeks, watertekort Nederland.*

### Keywords

netherlands, drought, water-extraction, onttrekkingsverbod, waterschap, verdringingsreeks,
agriculture-risk, insurance-risk, climate-risk, open-data, water-scarcity

### Changelog

#### 0.2.0

- Added 2 more water authorities: Brabantse Delta and Stichtse Rijnlanden (HDSR) — 7 total.

#### 0.1.0

- Initial release: extraction ban zones for 5 water authorities (De Dommel, Vallei en Veluwe, Vechtstromen,
  Aa en Maas, Hunze en Aa's), plus the verdringingsreeks priority classification tool.

# Actor input Schema

## `waterschappen` (type: `array`):

Which Dutch water authorities (waterschappen) to include. Currently covered: de-dommel, vallei-en-veluwe, vechtstromen, aa-en-maas, hunze-en-aas, brabantse-delta, hdsr (7 of 21 — the rest are not yet covered, see README).

## `watergebruikType` (type: `string`):

Optional: get the official Dutch water allocation priority ranking ('verdringingsreeks') category for this water use type. Adds one extra classification record, no network call. Leave empty to skip.

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

Maximum number of zone records to return across all selected water authorities (1-2000).

## Actor input object example

```json
{
  "waterschappen": [
    "de-dommel",
    "vallei-en-veluwe",
    "vechtstromen",
    "aa-en-maas",
    "hunze-en-aas",
    "brabantse-delta",
    "hdsr"
  ],
  "maxResults": 1000
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("codeclouds/nl-onttrekkingsverbod-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("codeclouds/nl-onttrekkingsverbod-monitor").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 '{}' |
apify call codeclouds/nl-onttrekkingsverbod-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=codeclouds/nl-onttrekkingsverbod-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/00Lng0SksG0rA1z27/builds/QNWMK4GZgexcW77JA/openapi.json
