docs / validate
Validation API
Validation API
base /validate/v14 endpoints
post
/validate/v1/vat1 creditValidate an EU VAT number via VIES → validity + registered company name & address.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| vat_number | required | — | The VAT number to validate against EU VIES. Either a full VAT incl. the 2-letter country prefix (e.g. 'IE6388047V', 'DE811569869') or just the digits when you also pass `country`. Spaces/dots/dashes are ignored. |
| country | optional | — | ISO-3166 / VIES country code for the VAT number (e.g. DE, FR, IE, NL). Optional if `vat_number` already starts with the prefix. VIES uses EL for Greece and XI for Northern Ireland; GR/GB are accepted and mapped. |
post
/validate/v1/iban1 creditValidate + parse an IBAN offline (ISO 13616 mod-97) → country, BBAN, bank/branch/account. Optional enrich=true adds BIC + bank name/city (openiban.com, proxied).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| iban | required | — | The IBAN to validate + parse (offline, ISO 13616 mod-97). Spaces and dashes are ignored; case-insensitive. Returns country, check-digits, BBAN, bank/branch/account, and the checksum math. |
| enrich = false | optional | — | If true and the IBAN is valid, also fetch BIC + bank name/city from openiban.com (free, proxied). Bank-directory coverage is openiban's supported set (proven live: DE/NL/LU/LI; AT/BE/CH listed but their directory may miss codes). Never changes the validity verdict — the mod-97 result is ours, offline. Default false keeps iban 100% offline. |
post
/validate/v1/email1 creditValidate an email: syntax + live MX + disposable-domain + role-account flags.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| required | — | The email address to validate: RFC-5322-pragmatic syntax + live MX lookup (DNS-over-HTTPS) + disposable-domain + role-account detection. | |
| check_mx = true | optional | — | Whether to perform the live MX/DNS lookup (default true). Set false for a pure offline syntax+disposable check (no network, faster). |
post
/validate/v1/batch1 creditValidate up to 100 mixed items ({type:vat|iban|email,value}) in one call.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| items | required | — | Up to 100 mixed validation items. Each is an object {type: vat|iban|email, value: <string>} (vat items may also carry a `country`). Each item is validated independently — a bad entry yields valid:false, it never fails the whole batch. |
| check_mx = true | optional | — | Whether to perform the live MX/DNS lookup (default true). Set false for a pure offline syntax+disposable check (no network, faster). |
Example request · vat
curl -X POST https://api.reefapi.com/validate/v1/vat \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"vat_number":"IE6388047V"}'Response shape
{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}