# Factline Dutch Address Batch Enrichment

> Factline Dutch Address Batch Enrichment is a paid API for AI agents from factline.dev, paid per call via x402, $0.015/call, status unknown (last checked 2026-10-11).

Bulk-enriches up to 10 Netherlands addresses per call with BAG coordinates, CBS neighbourhood stats, liveability percentile, crime rate, home value, and optional energy label

## Facts

- Endpoint: GET https://factline.dev/v1/batch/addresses?utm_source=zero.xyz
- Price: $0.015/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/factline-dutch-address-batch-enrichment-5aa6c7ec
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GpYP2RTGZXTAySEC7WvNT

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability factline-dutch-address-batch-enrichment-5aa6c7ec
```

Example prompt: Enrich these 3 Dutch addresses for me — '3511LX 1; 2517AS 100; 1017AB 50' — and include the energy label for each; I need liveability percentile, crime rate per 1,000 residents, and average home value.

## When to prefer this

Use this endpoint when you need to enrich multiple Dutch addresses (up to 10) in a single API call rather than making individual lookups, especially for real estate pipelines, CRM enrichment, relocation workflows, or lead qualification where you need BAG geocoding, CBS neighbourhood context, liveability scores, crime rates, and home values together in one response. Prefer this over the single-address or comparison endpoints when processing batches of unrelated addresses that don't need side-by-side comparison output.

## Known failure modes

- Address not found in BAG — flagged in response, not charged
- More than 10 addresses submitted — request rejected
- Invalid postcode format — address flagged as unfound
- Energy label not registered for address — field absent or null
- Payment failure via x402 — request not processed
- Malformed addresses separator — parsing error returned

## How this service works

API and MCP servers that let AI agents and apps check people, companies, Dutch addresses and cars against official records: sanctions and PEP lists, 10 company registers, Dutch property, rent and RDW vehicle data. From $0.001 per call.

## Output

Returns per-address records containing the official BAG-validated address and coordinates, CBS neighbourhood code and name, liveability percentile ranking, crime count per 1,000 residents compared to national average, postcode average WOZ home value, and (if requested) the registered energy label. Addresses not found in BAG are flagged in the response but not charged additionally.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "addresses"
     ],
     "properties": {
      "include": {
       "type": "string",
       "description": "Optional: 'energy_label' adds the registered energy label per address"
      },
      "addresses": {
       "type": "string",
       "description": "1 to 10 Dutch addresses separated by ';', each 'postcode house_number' or free text, e.g. '3511LX 1; 2517AS 100'"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 2,
  "found": 2,
  "source": "Kadaster BAG (PDOK), CBS, Politie, Leefbaarometer, RVO EP-Online",
  "explain": {
   "crime": "Police-registered crime per 1,000 residents in the CBS neighbourhood; busy centres score high because visitors are not residents.",
   "liveability": "Leefbaarometer percentile vs all Dutch areas (higher is better).",
   "postcode_avg_home_value": "Average WOZ value of homes in the 4-digit postcode area, CBS."
  },
  "results": [
   {
    "ok": true,
    "crime": {
     "year": 2025,
     "vs_national": 12.05,
     "per_1000_residents": 539.7,
     "national_per_1000_residents": 44.8
    },
    "input": "3511LX 1",
    "address": {
     "lat": 52.08962098,
     "lon": 5.11909785,
     "city": "Utrecht",
     "label": "Visschersplein 1, 3511LX Utrecht",
     "postcode": "3511LX",
     "province": "Utrecht",
     "house_number": 1,
     "municipality": "Utrecht",
     "bag_object_id": "0344010000001876"
    },
    "liveability": {
     "year": 2024,
     "social": 8,
     "physical": 23,
     "amenities": 99,
     "percentile": 89,
     "nuisance_safety": 3
    },
    "neighbourhood": {
     "code": "BU03440612",
     "name": "Lange Elisabethstraat, Mariaplaats en omgeving",
     "residents": 1790
    },
    "postcode_avg_home_value": {
     "year": 2023,
     "value": 537000
    }
   },
   {
    "ok": true,
    "crime": {
     "year": 2025,
     "vs_national": 1.38,
     "per_1000_residents": 62,
     "national_per_1000_residents": 44.8
    },
    "input": "2517AS 100",
    "address": {
     "lat": 52.08359668,
     "lon": 4.29193161,
     "city": "'s-Gravenhage",
     "label": "Laan van Meerdervoort 100, 2517AS 's-Gravenhage",
     "postcode": "2517AS",
     "province": "Zuid-Holland",
     "house_number": 100,
     "municipality": "'s-Gravenhage",
     "bag_object_id": "0518010001775699"
    },
    "liveability": {
     "year": 2024,
     "social": 2,
     "physical": 32,
     "amenities": 99,
     "percentile": 91,
     "nuisance_safety": 8
    },
    "neighbourhood": {
     "code": "BU05182245",
     "name": "Zeeheldenkwartier",
     "residents": 12920
    },
    "postcode_avg_home_value": {
     "year": 2023,
     "value": 513000
    }
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/factline-dutch-address-batch-enrichment-5aa6c7ec/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from factline.dev](https://www.zero.xyz/host/factline.dev/llms.txt)
