80trust / 100

Home Report

by Factline in Weather & location

x402 APIPassing, checked 3 h ago

Use when the user asks about a specific Dutch home or address before renting, buying or moving: full English report with year built, floor area, energy label, crime vs national rate, noise, air quality (NO2, PM2.5), ground height, monuments, permits, schools, 18 amenity distances, neighbourhood income and home values. Input: postcode + house number. Sources: Kadaster, CBS, Politie, RIVM, RVO.

GET https://factline.dev/v1/home/report

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
86 ms typical, 86 ms slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://factline.dev/v1/home/report?house_number=1&postcode=3511LX"
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.03:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ffactline.dev%2Fv1%2Fhome%2Freport
const res = await pay("https://factline.dev/v1/home/report?house_number=1&postcode=3511LX");
console.log(await res.json());

Example input

{
  "house_number": 1,
  "postcode": "3511LX"
}

Example output

{
  "address": {
    "city": "Utrecht",
    "label": "Visschersplein 1, 3511LX Utrecht",
    "lat": 52.0896,
    "lon": 5.1191,
    "neighbourhood": {
      "code": "BU03440612",
      "name": "Lange Elisabethstraat, Mariaplaats en omgeving"
    },
    "postcode": "3511LX"
  },
  "building": {
    "age_years": 766,
    "unit": {
      "floor_area_m2": 72,
      "status": "in use",
      "use": [
        "residential"
      ]
    },
    "units_in_building": 7,
    "uses_in_building": [
      "assembly (hospitality, events, worship)",
      "office",
      "residential"
    ],
    "year_built": 1260
  },
  "elevation": {
    "below_sea_level": false,
    "ground_level_m_nap": 5.68
  },
  "environment": {
    "air_ug_m3": {
      "no2": 18.5,
      "pm25": 10.9,
      "year": 2025
    },
    "noise_lden_db": {
      "all_sources": 56,
      "level": "noisy",
      "road": 53,
      "year": 2020
    }
  },
  "heritage": {
    "listed_monuments_within_25m": [
      {
        "listed_since": "1967-06-20",
        "register_url": "https://monumentenregister.cultureelerfgoed.nl/monumenten/36030"
      }
    ],
    "protected_areas": [
      {
        "type": "protected townscape (rijksbeschermd stads- of dorpsgezicht)"
      }
    ]
  },
  "liveability": {
    "dimension_percentiles": {
      "amenities": 99,
      "housing_stock": 39,
      "nuisance_and_safety": 3,
      "physical_environment": 23,
      "social_cohesion": 8
    },
    "percentile": 89,
    "year": 2024
  },
  "neighbourhood": {
    "distance_km": {
      "data_year": 2024,
      "gp_practice": 0.7,
      "supermarket": 0.3,
      "train_station": 1.6
    },
    "housing": {
      "avg_home_value_eur": 585000,
      "data_year": 2024,
      "owner_occupied_pct": 19
    },
    "people": {
      "data_year": 2025,
      "households": 1300,
      "residents": 1790
    }
  },
  "safety": {
    "national_per_1000_residents": {
      "total": 44.8
    },
    "per_1000_residents": {
      "total": 539.7
    },
    "year": 2025
  }
}

Security scan

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

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed40286 ms$0.04