GET /vat/{number}
Checksum a VAT number. Deep asks the live EU registry.
Try it
100 free a month, then half a cent a lookup.
vat
Normalized number with country prefix, or null if invalid
valid
Format and checksum match the country
country
ISO 3166-1 alpha-2. GR not EL. XI numbers ship GB
deep.registered
On the live national registry
deep.name
Registered legal name, or null
deep.address
street, city, postal, country. null when the registry sent none
deep.consultation
Audit identifier when ?from= is a valid VAT, else null
1
Spaces, dots, missing prefix with country. Junk is valid false, never a 404.
2
Registered, legal name, address. One unit from the monthly allowance.
3
from= puts the consultation number on your audit file, not ours.
Then half a cent a lookup. Checksum stays pooled.
Pass a VAT number. Core checks format and checksum. Spaces, dots, and a missing prefix with country are fine. A junk value answers valid false as a 200.
Deep asks the live EU registry: registered, legal name, and address. Each deep call on a checksum-valid EU number uses one from your plan's monthly VAT allowance. Free includes 100 a month. Past the allowance, a lookup is half a cent, less on Pro and up. Pass from with your own VAT to get a consultation number for your audit file. UK GB numbers parse on core. Live HMRC is a follow-up. Member-state downtime is HTTP 503, never registered false.
RESPONSE
$ curl "https://api.parseapi.com/vat/DE136695976" \ -H "X-API-Key: YOUR_API_KEY" // 200 · ~32ms US · ~127ms worldwide { "vat": "DE136695976", "valid": true, "country": "DE" }
Response fields
Deep fields
QUESTIONS
SPEED
US
32ms
EU
64ms
APAC
146ms
LatAm
18ms
ME
123ms
EU VIES. Northern Ireland included. UK HMRC is a follow-up.