Utilities & AI

Validation API API

The Validation API checks business and contact identifiers as clean JSON.

4 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary vat endpoint validates a VAT number and returns format validity plus company name and address where available, and you can validate an IBAN, an email and batch. It is built for billing, KYC and onboarding forms that need to verify identifiers before accepting them. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, vat, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/validate/v1/vat",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "vat_number": "IE6388047V"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "validate",
    "endpoint": "vat",
    "mode": "live",
    "latency_ms": 824,
    "record_count": 1,
    "bytes": 551,
    "cache_hit": false,
    "method": "eu_vies_rest"
  },
  "data": {
    "valid": true,
    "format_valid": true,
    "query": "IE6388047V",
    "vat_number": "6388047V",
    "full_vat_number": "IE6388047V",
    "country_code": "IE",
    "vies_country_code": "IE",
    "company_name": "GOOGLE IRELAND LIMITED",
    "company_address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
    "request_date": "[redacted-phone]T17:20:42.583Z",
    "request_identifier": null,
    "consultation_number": null,
    "user_error": "VALID",
    "source": "vies"
  }
}
Actions

What the Validation API API does

ActionDescriptionConcrete use caseKey params
vatValidate an EU VAT number via VIES → validity + registered company name & address.Ops teams call vat to validate an EU VAT number via VIES → validity + registered company name & address..vat_number, country
ibanValidate + parse an IBAN offline (ISO 13616 mod-97) → country, BBAN, bank/branch/account. Optional enrich=true adds BIC + bank name/city (openiban.com, proxied).Developer tools call iban to validate + parse an IBAN offline (ISO 13616 mod-97) → country, BBAN, bank/branch/account.iban, enrich
emailValidate an email: syntax + live MX + disposable-domain + role-account flags.Validation workflows call email to validate an email.email, check_mx
batchValidate up to 100 mixed items ({type:vat|iban|email,value}) in one call.Data-quality teams call batch to validate up to 100 mixed items ({type:vat|iban|email,value}) in one call..items, check_mx
Code samples

Call vat from your stack

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"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.validate.vat with {"vat_number":"IE6388047V"}.
Use cases

Who uses this API and why

  • Billing systems call vat and iban to validate a customer's tax and bank details.
  • Onboarding forms use email validation to catch typos and undeliverable addresses.
  • Compliance pipelines use batch to validate a list of records.
FAQ

Questions developers ask before integrating

What is the Validation API API?

Validation API API is a ReefAPI endpoint group for validation api It returns live JSON through POST requests under /validate/v1.

Is the Validation API API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Validation API calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Validation API login or account?

No login to Validation API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Validation API data?

The page example is captured from a live vat call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Validation API API use?

Validation API actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Validation API from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call validate actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Validation API API a Validation API scraper?

It is the managed alternative to a DIY Validation API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same validation api back as clean JSON.

Why does my Validation API scraper keep getting blocked?

Most Validation API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / validate

Validation API

Validation API

base /validate/v14 endpoints
post/validate/v1/vat1 credit

Validate an EU VAT number via VIES → validity + registered company name & address.

ParameterAllowed / rangeDescription
vat_numberrequiredThe 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.
countryoptionalISO-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.
Try in playground →
post/validate/v1/iban1 credit

Validate + parse an IBAN offline (ISO 13616 mod-97) → country, BBAN, bank/branch/account. Optional enrich=true adds BIC + bank name/city (openiban.com, proxied).

ParameterAllowed / rangeDescription
ibanrequiredThe 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 = falseoptionalIf 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.
Try in playground →
post/validate/v1/email1 credit

Validate an email: syntax + live MX + disposable-domain + role-account flags.

ParameterAllowed / rangeDescription
emailrequiredThe email address to validate: RFC-5322-pragmatic syntax + live MX lookup (DNS-over-HTTPS) + disposable-domain + role-account detection.
check_mx = trueoptionalWhether to perform the live MX/DNS lookup (default true). Set false for a pure offline syntax+disposable check (no network, faster).
Try in playground →
post/validate/v1/batch1 credit

Validate up to 100 mixed items ({type:vat|iban|email,value}) in one call.

ParameterAllowed / rangeDescription
itemsrequiredUp 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 = trueoptionalWhether to perform the live MX/DNS lookup (default true). Set false for a pure offline syntax+disposable check (no network, faster).
Try in playground →