ValidEU API

ValidEU API — free tier with API key

📚 Open DataUNMONITORED
AUTH APIKEYCORS AGENT ?HTTPS COMMERCIAL ?

ValidEU API exposes a free-tier JSON API. Register for an API key if required; we verified a public or demo endpoint.

HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: — · unmonitored
ON PROBE SCHEDULE

We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗

Uptime historystarts after first probe

On our probe schedule. Uptime charts appear after the first check lands.

Example responsefrom provider docs — not verified by us
GET https://valid-eu.com/api

{
  "name": "ValidEU API",
  "version": "v1",
  "description": "European ID validation and verification API - 17 live endpoints across 8 countries",
  "documentation": "https://valid-eu.com/docs",
  "openapi_spec": "https://valid-eu.com/api/v1/openapi.yaml",
  "endpoints": {
    "eu_wide": {
      "iban": {
        "validate": "GET /api/v1/eu/iban/validate/{iban}",
        "verify": "POST /api/v1/eu/iban/verify",
        "description": "Validate/verify IBAN (International Bank Account Number)"
      },
      "bic": {
        "validate": "GET /api/v1/eu/bic/validate/{bic}",
        "verify": "POST /api/v1/eu/bic/verify",
        "description": "Validate/verify BIC/SWIFT codes"
      },
      "vat": {
        "validate": "GET /api/v1/eu/vat/validate/{vat}",
        "verify": "POST /api/v1/eu/vat/verify",
        "description": "Validate/verify EU VAT numbers via VIES (27 countries)"
      },
      "eori": {
        "validate": "GET /api/v1/eu/eori/validate/{eori}",
        "description": "Validate EORI (EU customs registration)"
      },
      "lei": {
        "validate": "GET /api/v1/eu/lei/validate/{lei}",
        "verify": "POST /api/v1/eu/lei/verify",
        "description": "Validate/verify LEI (Legal Entity Identifier)"
      }
    },
    "poland": {
      "nip": {
        "validate": "GET /api/v1/pl/nip/validate/{nip}",
        "verify": "POST /api/v1/pl/nip/verify",
        "description": "Polish Tax ID (NIP)"
      },
      "pesel": {
        "validate": "GET /api/v1/pl/pesel/validate/{pesel}",
        "description": "Polish National ID (PESEL) - extracts birth date/gender"
      },
      "regon": {
        "validate": "GET /api/v1/pl/regon/validate/{regon}",
        "verify": "POST /api/v1/pl/regon/verify",
        "description": "Polish Business Registry Number (REGON)"
      },
      "vat": {
        "validate": "GET /api/v1/pl/vat/validate/{vat}",
        "verify": "POST /api/v1/pl/vat/verify",
        "description": "Polish VAT Number"
      }
    },
    "france": {
      "siren": {
        "validate": "GET /api/v1/fr/siren/validate/{siren}",
        "verify": "POST /api/v1/fr/siren/verify",
        "description": "French Business ID (SIREN) - 9 digits"
      },
      "siret": {
        "validate": "GET /api/v1/fr/siret/validate/{siret}",
        "verify": "POST /api/v1/fr/siret/verify",
        "description": "French Establishment ID (SIRET) - 14 digits"
      },
      "nss": {
        "validate": "GET /api/v1/fr/nss/validate/{nss}",
        "description": "French Social Security Number (NSS)"
      },
      "rna": {
        "validate": "GET /api/v1/fr/rna/validate/{rna}",
        "verify": "POST /api/v1/fr/rna/verify",
        "description": "French Association Registry (RNA)"
      },
      "vat": {
        "validate": "GET /api/v1/fr/vat/validate/{vat}",
        "verify": "POST /api/v1/fr/vat/verify",
        "description": "French VAT Number"
      }
    },
    "germany": {
      "vat": {
        "validate": "GET /api/v1/de/vat/validate/{vat}",
        "verify": "POST /api/v1/de/vat/verify",
        "description": "German VAT Number"
      }
    },
    "italy": {
      "codice_fiscale": {
        "validate": "GET /api/v1/it/codice-fiscale/validate/{cf}",
        "description": "Italian Tax Code (Codice Fiscale)"
      },
      "vat": {
        "validate": "GET /api/v1/it/vat/validate/{vat}",
        "verify": "POST /api/v1/it/vat/verify",
        "description": "Italian VAT Number"
      }
    },
    "spain": {
      "dni": {
        "validate": "GET /api/v1/es/dni/validate/{dni}",
        "description": "Spanish National ID (DNI)"
      },
      "nie": {
        "validate": "GET /api/v1/es/nie/validate/{nie}",
        "description": "Spanish Foreigner ID (NIE)"
      },
      "cif": {
        "validate": "GET /api/v1/es/cif/validate/{cif}",
        "description": "Spanish Company Tax ID (CIF)"
      },
      "nif": {
        "validate": "GET /api/v1/es/nif/validate/{nif}",
        "description": "Spanish Tax ID (NIF) - unified format"
      },
      "vat": {
        "validate": "GET /api/v1/es/vat/validate/{vat}",
        "verify": "POST /api/v1/es/vat/verify",
        "description": "Spanish VAT Number"
      }
    },
    "netherlands": {
      "bsn": {
        "validate": "GET /api/v1/nl/bsn/validate/{bsn}",
        "description": "Dutch Citizen Service Number (BSN)"
      },
      "kvk": {
        "validate": "GET /api/v1/nl/kvk/validate/{kvk}",
        "description": "Dutch Chamber of Commerce Number (KVK)"
      },
      "vat": {
        "validate": "GET /api/v1/nl/vat/validate/{vat}",
        "verify": "POST /api/v1/nl/vat/verify",
        "description": "Dutch VAT Number"
      }
    },
    "united_kingdom": {
      "nino": {
        "validate": "GET /api/v1/gb/nino/validate/{nino}",
        "description": "UK National Insurance Number (NINO)"
      },
      "company": {
        "validate": "GET /api/v1/gb/company/validate/{number}",
        "description": "UK Companies House Number (verify disabled - API unreliable)"
      },
      "vat": {
        "validate": "GET /api/v1/gb/vat/validate/{vat}",
        "verify": "POST /api/v1/gb/vat/verify",
        "description": "UK VAT Number"
      }
    }
  },
  "endpoint_types": {
    "validate": {
      "description": "Algorithmic validation (format + checksum)",
      "included_in": "All plans (within monthly quota)",
      "speed": "Instant (<50ms)"
    },
    "verify": {
      "description": "Live registry check (if available)",
      "included_in": "Pro & Enterprise plans (within monthly quota)",
      "speed": "Real-time (200-2000ms)"
    }
  },
  "authentication": {
    "type": "API Key",
    "header": "X-API-Key",
    "get_key": "https://valid-eu.com/#get-started"
  }
}
Call itcurl · fetch · python
curl "https://valid-eu.com/api"
const res = await fetch("https://valid-eu.com/api");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://valid-eu.com/api")
print(res.json())

BROWSER CALLS BLOCKED (NO CORS/HTTPS) — USE THE CURL SNIPPET

Endpoints · 2On scheduleFULL DOCS ↗
On schedule — GET /api awaits first probe
GET/apiPROBED

ValidEU API — free tier with API key

GET/api?limit=5

Paginated variant with limit parameter.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Not tracked yet. Shape-change history starts once this API joins our probe schedule.

ValidEU API: common questions

Is ValidEU API free to use?

Yes — ValidEU API is a free open data API. Free tier: Free tier — API key required. Whether the free tier allows commercial use is unclear — check the provider docs.

Does ValidEU API need an API key?

Yes — ValidEU API needs a free API key, which you pass on each request. Rate limits: Unpublished.

Can I call ValidEU API from the browser?

Not directly — ValidEU API doesn't send browser-friendly CORS headers, so call it from a server or proxy instead. Copy the curl or Python snippet on this page to get started.

Is ValidEU API up right now?

ValidEU API is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.