Loading
Loading
A reliable VAT number validation API that lets you check any VAT number against the issuing authority in real time. Send a VAT registration number and get back the registered business name, address, validity status, and a consultation number as verifiable proof the check was carried out. No scraping, no third-party databases, just a direct query to the source.
Currently supported regions are the EU and UK, with more on the way. EU VAT validation runs through VIES, the European Commission's official cross-border lookup system, while UK VAT number validation goes directly to HMRC. Whether you need to check a UK VAT number or validate an EU VAT ID across any of the 27 member states, routing is automatic based on the country prefix and the response stays consistent across both regions, so a single integration covers everything you need today and scales as new regions are added.
Teams use this API during customer onboarding to confirm a business is legitimately VAT registered, inside invoicing workflows to auto-fill verified company details, and in finance tools to catch mismatches before they become compliance issues. For formal audit requirements, pass your own VAT registration number as the requester and the API returns a unique, timestamped consultation number from the validating authority, whether that is VIES for EU or HMRC for UK VAT validation.
Covers all 27 EU member states through the official VIES system. Country routing is handled automatically from the VAT number prefix, so you never have to manage per-country logic or maintain a list of endpoints yourself.
GB-prefixed numbers are routed directly to HMRC for validation. The response confirms HMRC as the authority on every VAT check, giving you a clear, post-Brexit compliant paper trail without any extra configuration.
Every valid VAT ID validation lookup returns the registered business name and address straight from the authority's own records. Use it to auto-populate invoice fields or cross-check details submitted during onboarding.
Pass your own VAT number as the requester to trigger a formal consultation check. The returned reference is timestamped, authority-issued, and traceable, making it solid evidence for reverse-charge and zero-rate B2B compliance.
All regions return the same JSON shape, so one parser handles every VAT validation response regardless of country. As support expands to new regions, your integration stays the same.
$ pip install requests
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
| vatNumber | Yes | string | - | VAT numbers to validate. |
| requesterVatNumber | No | string | - | Your own VAT number, to receive consultation numbers. |
| format | No | json | xml | json | Defaults to json. |
Explore detailed response fields including field names, data types, requirements, and descriptions in the interactive Response Table. For complete response documentation click here.
| HTTP Status | Reasons |
|---|---|
| 400 | VAT number is required. |
| 400 | Unsupported VAT country code. Supported prefixes are UK/GB and EU VAT country codes. |
| 400 | Invalid VAT number format. |
| 400 | VAT validation failed. |
| 400 | The requester member state code is invalid. |
| 404 | vatNumber <value> is invalid or not found |
UK VAT registration numbers use the GB prefix followed by 9 digits. Some older numbers may use a different suffix format, but the GB prefix is always required for the API to route the request to HMRC correctly. Pass the full number in the vatNumber parameter.
curl -X 'GET' \ 'https://api.apifreaks.com/v1.0/vat/validation?apiKey=API-KEY&vatNumber=GB150848114'
{
"country_code": "GB",
"vat_number": "150848114",
"requested_at": "2026-04-21T13:42:37.000Z",
"validation": {
"is_valid": true,
"consultation_authority": "HMRC"
},
"company": {
"company_name": "PADDLE.COM MARKET LIMITED",
"company_address": "JUDD HOUSE, 18-29 MORA STRE, LONDON, EC1V 8BT, GB"
}
}
To get a formal consultation number, pass your own VAT registration number in the requesterVatNumber parameter. The API will return a unique consultation_number issued by HMRC, which you can store as an audit record against the transaction.
curl -X 'GET' \ 'https://api.apifreaks.com/v1.0/vat/validation?apiKey=API-KEY&vatNumber=GB289111588&requesterVatNumber=GB288305674'
{
"country_code": "GB",
"vat_number": "289111588",
"requester_country_code": "GB",
"requester_vat_number": "288305674",
"requested_at": "2026-04-21T13:51:32.000Z",
"validation": {
"is_valid": true,
"consultation_number": "KNN-ARL-LTK",
"consultation_authority": "HMRC"
},
"company": {
"company_name": "EVENTURED LTD",
"company_address": "SUITE 10, BEAUFORT COURT, ADMIRALS WAY, LONDON, E14 9XL, GB"
}
}
EU VAT validation runs through VIES, the European Commission's official exchange system. All 27 member states are supported. Pass the VAT number including its two-letter country prefix in the vatNumber parameter and the API handles routing to VIES automatically.
curl -X 'GET' \ 'https://api.apifreaks.com/v1.0/vat/validation?apiKey=API-KEY&vatNumber=NL803441526B01'
{
"country_code": "NL",
"vat_number": "803441526B01",
"requested_at": "2026-04-21T13:40:09.379Z",
"validation": {
"is_valid": true,
"consultation_authority": "VIES"
},
"company": {
"company_name": "ASML HOLDING N.V.",
"company_address": "DE RUN 06501, 5504DR VELDHOVEN"
}
}
For a formal VIES VAT validation consultation, include your own EU VAT registration number as requesterVatNumber. VIES will issue a unique consultation_number tied to your business, useful for cross-border reverse-charge and zero-rate B2B compliance.
curl -X 'GET' \ 'https://api.apifreaks.com/v1.0/vat/validation?apiKey=API-KEY&vatNumber=NL803441526B01&requesterVatNumber=DE811128135'
{
"country_code": "NL",
"vat_number": "803441526B01",
"requester_country_code": "DE",
"requester_vat_number": "811128135",
"requested_at": "2026-04-21T13:47:35.399Z",
"validation": {
"is_valid": true,
"consultation_number": "WAPIAAAAZ2wS92cF",
"consultation_authority": "VIES"
},
"company": {
"company_name": "ASML HOLDING N.V.",
"company_address": "DE RUN 06501, 5504DR VELDHOVEN"
}
}
To use the Web Scraper API, you will need API credits. We only charge for successful queries, defined by a 2xx status code. If your request results in a 4xx or 5xx status code, no credits will be charged, and any deducted credits will be returned.
For Each Successful request 20 credits will be charged.
Utilize the Credits Usage API to efficiently monitor your recent consumption of both one-off and subscription credits. This API provides a streamlined way to track and manage your credit usage, ensuring you stay informed about your remaining balance and can optimize your resource allocation effectively.