78trust / 100

Batch Addresses

by Factline in Weather & location

x402 APIPassing, checked 18 min ago

Use when enriching a list of Dutch addresses (up to 10 per call, 0.0015 USDC each): official BAG address and coordinates, CBS neighbourhood, liveability percentile, crime per 1,000 residents vs national, average home value and optionally the energy label. Unfound addresses are flagged, not charged extra.

GET https://factline.dev/v1/batch/addresses

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
262 ms typical, 533 ms slowest 5%
Last check
18 min ago
Next check
in 12 min

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://factline.dev/v1/batch/addresses?addresses=3511LX+1%3B+2517AS+100"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ffactline.dev%2Fv1%2Fbatch%2Faddresses
const res = await pay("https://factline.dev/v1/batch/addresses?addresses=3511LX+1%3B+2517AS+100");
console.log(await res.json());

Example input

{
  "addresses": "3511LX 1; 2517AS 100"
}

Example output

{
  "count": 2,
  "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."
  },
  "found": 2,
  "results": [
    {
      "address": {
        "bag_object_id": "0344010000001876",
        "city": "Utrecht",
        "house_number": 1,
        "label": "Visschersplein 1, 3511LX Utrecht",
        "lat": 52.08962098,
        "lon": 5.11909785,
        "municipality": "Utrecht",
        "postcode": "3511LX",
        "province": "Utrecht"
      },
      "crime": {
        "national_per_1000_residents": 44.8,
        "per_1000_residents": 539.7,
        "vs_national": 12.05,
        "year": 2025
      },
      "input": "3511LX 1",
      "liveability": {
        "amenities": 99,
        "nuisance_safety": 3,
        "percentile": 89,
        "physical": 23,
        "social": 8,
        "year": 2024
      },
      "neighbourhood": {
        "code": "BU03440612",
        "name": "Lange Elisabethstraat, Mariaplaats en omgeving",
        "residents": 1790
      },
      "ok": true,
      "postcode_avg_home_value": {
        "value": 537000,
        "year": 2023
      }
    },
    {
      "address": {
        "bag_object_id": "0518010001775699",
        "city": "'s-Gravenhage",
        "house_number": 100,
        "label": "Laan van Meerdervoort 100, 2517AS 's-Gravenhage",
        "lat": 52.08359668,
        "lon": 4.29193161,
        "municipality": "'s-Gravenhage",
        "postcode": "2517AS",
        "province": "Zuid-Holland"
      },
      "crime": {
        "national_per_1000_residents": 44.8,
        "per_1000_residents": 62,
        "vs_national": 1.38,
        "year": 2025
      },
      "input": "2517AS 100",
      "liveability": {
        "amenities": 99,
        "nuisance_safety": 8,
        "percentile": 91,
        "physical": 32,
        "social": 2,
        "year": 2024
      },
      "neighbourhood": {
        "code": "BU05182245",
        "name": "Zeeheldenkwartier",
        "residents": 12920
      },
      "ok": true,
      "postcode_avg_home_value": {
        "value": 513000,
        "year": 2023
      }
    }
  ],
  "source": "Kadaster BAG (PDOK), CBS, Politie, Leefbaarometer, RVO EP-Online"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
18 min agoPassed402531 ms$0.015
4 h agoPassed402183 ms$0.015
7 h agoPassed402143 ms$0.015
11 h agoPassed402389 ms$0.015
15 h agoPassed402237 ms$0.015
18 h agoPassed402619 ms$0.015
22 h agoPassed402517 ms$0.015
25 h agoPassed402530 ms$0.015
29 h agoPassed402201 ms$0.015
33 h agoPassed402262 ms$0.015
36 h agoPassed40259 ms$0.015
41 h agoPassed402533 ms$0.015