One API for address validation & autocomplete

GeoVerdict orchestrates multiple geocoding providers behind a single normalized 0–100 confidence score — verified against your input, never blindly trusted. Authoritative Dutch BAG data built in. EU-hosted.

Live demo — validate a Dutch address

A confidence score you can threshold on

Every provider result is re-scored against your input: fuzzy street and city matching, house-number normalization (2/B ≡ 2B, ranges like 2A-2D), postcode digit checks. Unified 0–100, calibrated per provider.

Routing that matches reality

Authoritative BAG register for the Netherlands, sequential or parallel fallback elsewhere — with circuit breakers, per-provider timeouts, and a full routing trace on every request.

Verdicts that do the work

valid, correctable (we found it and fixed your postcode — you get the standardized address back), or invalid with structured reasons. Built for checkout and CRM data quality.

Get your API key

Free tier: 1,000 requests per month, no card required. Your key is shown once and stored hashed.

Save this key now — it will not be shown again.

Quickstart

Two endpoints do the real work. Full request/response details in the README for now — OpenAPI docs are on the roadmap.

curl -s https://geoverdict.com/v1/validate \
  -H "Authorization: Bearer $GEOVERDICT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Dam 1 Amsterdam", "country": "NL", "source": "checkout"}'

{"verdict":"valid","confidence":100,
 "address":{"street":"Dam","houseNumber":"1","postcode":"1012JS",
            "city":"Amsterdam","country":"NL","lat":52.373,"lng":4.894},
 "components":{"street":"match","houseNumber":"match","city":"match"},
 "provider":"bag","reasons":[]}
curl -s https://geoverdict.com/v1/autocomplete \
  -H "Authorization: Bearer $GEOVERDICT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Kalverstraat 92 Amst", "country": "NL", "limit": 5}'

The optional source tag (body field or ?source= URL param) segments stats and logs per app or flow in your dashboard. Billing is in credits: 1 credit per external provider lookup, cached answers are free.

Pricing

Start free on community and authority data. Upgrade for volume. 1 credit = one external provider lookup; cached answers are free. Cancel anytime via the Stripe billing portal.

Free

€0/mo
  • 1,000 credits/mo
  • BAG (NL) authority data
  • Community support
Get started

Starter

€29/mo
  • 10,000 credits/mo
  • All providers
  • 3 projects
Subscribe

Scale

€299/mo
  • 250,000 credits/mo
  • SLA & priority support
  • SSO
Subscribe

Subscribe with the same email you use for your API key and your plan upgrades automatically within a minute of checkout.