80trust / 100

Flood Risk

by Factline in Security & trust

x402 APIPassing, checked 3 h ago

Use when the user asks if a Dutch address can flood: annual flood probability (any water, over 20, 50 and 200 cm) from Rijkswaterstaat LIWO, 2050 and 2100 climate scenarios, worst-case water depth and ground height vs sea level (AHN). Input: postcode + house number.

GET https://factline.dev/v1/flood-risk

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
53 ms typical, 53 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/flood-risk?house_number=100&postcode=2517AS"
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%2Fflood-risk
const res = await pay("https://factline.dev/v1/flood-risk?house_number=100&postcode=2517AS");
console.log(await res.json());

Example input

{
  "house_number": 100,
  "postcode": "2517AS"
}

Example output

{
  "address": {
    "city": "'s-Gravenhage",
    "house_number": 100,
    "label": "Laan van Meerdervoort 100, 2517AS 's-Gravenhage",
    "lat": 52.08359668,
    "lon": 4.29193161,
    "postcode": "2517AS"
  },
  "flood_probability_over_50_cm_future": {
    "2050": {
      "annual": "1 in 3,000 to 1 in 30,000 per year",
      "class": 2,
      "label": "very small"
    },
    "2100": {
      "annual": "1 in 3,000 to 1 in 30,000 per year",
      "class": 2,
      "label": "very small"
    }
  },
  "flood_probability_today": {
    "any_water": {
      "annual": "less than 1 in 30,000 per year",
      "class": 1,
      "label": "extremely small"
    },
    "over_200_cm": {
      "annual": "none modelled",
      "class": 0,
      "label": "not exposed"
    },
    "over_20_cm": {
      "annual": "less than 1 in 30,000 per year",
      "class": 1,
      "label": "extremely small"
    },
    "over_50_cm": {
      "annual": "less than 1 in 30,000 per year",
      "class": 1,
      "label": "extremely small"
    }
  },
  "ground_height": {
    "below_sea_level": false,
    "metres_nap": 1.44
  },
  "source": "Rijkswaterstaat LIWO (basisinformatie-overstromingen.nl), AHN via PDOK",
  "summary": "Chance of flooding deeper than 50 cm: less than 1 in 30,000 per year (extremely small). Worst modelled water depth: 1.44 m.",
  "worst_case_max_water_depth_m": 1.44
}

Security scan

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

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed40253 ms$0.004
7 h agoPassed40264 ms$0.004
12 h agoPassed40246 ms$0.004