EU VAT Number Validator: bulk VIES check avatar

EU VAT Number Validator: bulk VIES check

Pricing

$2.00 / 1,000 checked vat numbers

Go to Apify Store
EU VAT Number Validator: bulk VIES check

EU VAT Number Validator: bulk VIES check

Upload a list; get valid or not, company name and address per entry, with automatic retries when a country's server is down.

Pricing

$2.00 / 1,000 checked vat numbers

Rating

0.0

(0)

Developer

BEPO Labs

BEPO Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

๐Ÿงพ What is EU VAT Number Validator?

Our VAT validator sends every row to VIES, the European Commission's official register, and gives back the verdict, the registered trader where the state discloses it, and the date of the lookup. Malformed input is caught locally before any call, and busy national endpoints are retried instead of dropped. Add your own VAT number and VIES issues a receipt you can file.

  • Invoicing and checkout: confirm a B2B customer's VAT number before you apply the reverse charge
  • CRM and ERP clean-up: check a whole customer or supplier export at once and find the numbers that are no longer valid
  • Audit trail: with your own VAT id, keep the VIES consultation number of every check as proof
  • Onboarding and KYB: match the company name and address VIES returns against what the customer entered
  • Automation and AI agents: validate VAT numbers from Make, Zapier, n8n or an AI agent through MCP

EU VAT Number Validator: Check thousands of EU VAT numbers against the official VIES service: valid or not, company name and address.

โœจ Why use this Actor?

  • โœ… Official source: the European Commission's VIES service, the reference for intra-EU VAT checks
  • โœ… Format check first: each number cleaned (spaces, dots, dashes) and matched to its country's pattern before any call
  • โœ… Survives VIES outages: numbers hit by a busy or offline country are retried in later rounds with a wait
  • โœ… Proof of check: with your own VAT id as requester, a VIES consultation number per number
  • โœ… All 27 countries plus XI: Greece as EL (GR is accepted), Northern Ireland as XI
  • โœ… Gentle on VIES: 2 checks at once by default, never more than 5, as VIES asks

๐Ÿ“ฆ What data can you get with EU VAT Number Validator?

๐Ÿ”ข Clean VAT number๐ŸŒ Country codeโœ… Valid or invalid
๐Ÿšฆ Status (valid, invalid, format-error, unchecked)๐Ÿข Registered company name๐Ÿ“ Registered address
๐Ÿงพ Consultation number (proof)๐Ÿ“… Date and time of the check๐Ÿ” Attempts needed
๐Ÿ“ Note (why no name, format problem)โŒจ๏ธ Your original input๐Ÿงฎ Number without prefix

๐Ÿš€ How to use EU VAT Number Validator

EU VAT Number Validator works in a few clicks, no coding needed:

  1. Create a free Apify account (the free plan includes 5 USD of monthly credit).
  2. Open EU VAT Number Validator and click Try for free.
  3. Paste your VAT numbers with their country prefix, one per line. Add your own VAT id if you want a consultation number per check.
  4. Click Start and wait for the run to finish (most runs take seconds).
  5. Download your data as JSON, CSV, Excel, XML or HTML, or send it straight to Google Sheets, Make, Zapier or your AI agent.

How EU VAT Number Validator works

โฌ‡๏ธ Input

Give VAT numbers with their two-letter country prefix, up to 10,000 per run. Spaces, dots and dashes are fine.

Which format?

Any EU VAT number with its country code: IE6388047V, DE 811 569 869 or be-0403.170.701. Greece is EL (a GR prefix is read as EL); Northern Ireland is XI.

Proof of the check

Put your own valid EU VAT id in requesterVatId and VIES returns a consultation number for every check: the record VIES keeps that you checked on that day.

When countries are down

Member-state services go offline or get busy. retryRounds (3 if left empty) and retryWaitSeconds (default 20) set how often and after how long those numbers are tried again.

FieldTypeWhat it doesDefault
VAT ids (vatIds)arrayEU VAT ids with their country prefix, e.g.["IE6388047V","NL004495445B01"]
Your own VAT id (optional) (requesterVatId)stringWith your own valid EU VAT id, VIES returns a consultation number per check, your proof that you checked.
Leave out ids with a wrong format (skipFormatErrors)booleanOff: each id that fails its country format gets a row with status format-error, without asking VIES.false
Checks at once (concurrency)integerVIES is built for single checks and member states limit parallel requests; keep this low.2
Retry rounds (retryRounds)integerHow often ids are tried again when their country's service is down or busy.3
Wait before each retry round (seconds) (retryWaitSeconds)integerSeconds to wait before each retry round, so a busy country can recover.20

EU VAT Number Validator input form

Input example

{
"vatIds": [
"IE6388047V",
"NL004495445B01",
"ATU33864707"
]
}

โฌ†๏ธ Output

Every VAT number becomes one row, in your input order. status tells you what happened: valid, invalid, format-error (caught before any call) or unchecked (the country stayed down through every retry). The run summary in the key-value store (OUTPUT) counts each status and lists every member state's availability.

EU VAT Number Validator output table

Output example

One row of the dataset (an Austrian VAT number):

{
"vatId": "ATU33864707",
"countryCode": "AT",
"status": "valid",
"valid": true,
"name": "Red Bull GmbH",
"vatNumber": "U33864707",
"attempts": 1,
"address": "Am Brunnen 1, AT-5330 Fuschl/See",
"input": "ATU33864707",
"consultationNumber": null,
"checkedAt": "2026-10-16T06:17:05.675Z",
"note": null
}

Format errors, unchecked numbers and countries without names

A number that does not match its country's format stops before VIES; it gets status: "format-error" and a note. In a real run: "FR123" does not match the FR VAT number format. A number whose national service stayed down through every retry gets status: "unchecked" and valid: null, so you can run it again later. Germany and Spain withhold the trader's name or address, so their valid numbers come without them (DE does not share name or address through VIES). In the same test, the Belgian number needed 3 attempts before VIES answered.

{
"vatId": "FR123",
"input": "FR123",
"status": "format-error",
"valid": false,
"attempts": 0,
"note": "\"FR123\" does not match the FR VAT number format"
}

View the results as a table or JSON in the Output tab and download them as JSON, CSV, Excel, XML, HTML or RSS, all fields or only those you pick.

๐Ÿ’ฐ How much does EU VAT Number Validator cost?

EU VAT Number Validator is priced per event: 2 USD per 1,000 VAT numbers (0.002 USD each), with no monthly rental. Every dataset row is billed, valid or not, including format errors and those left unchecked. Switch on skipFormatErrors to leave malformed entries out at no charge.

You getYou pay
100 VAT numbers0.2 USD
1,000 VAT numbers2 USD
10,000 VAT numbers20 USD
100,000 VAT numbers200 USD

๐Ÿ’ก Apify's free plan gives you 5 USD of credit every month, enough for about 2,500 VAT numbers at no cost. Set a spending limit per run and the Actor stops there.

โš–๏ธ EU VAT Number Validator vs. the alternatives

EU VAT Number ValidatorVIES website by handTypical VAT check tools
Bulk lists, up to 10,000 per runโœ…one at a timeoften small batches
Format check before the callโœ…โŒvaries
Automatic retries when a country is downโœ…โŒoften fail at once
Consultation number as proofโœ… with your VAT idโœ…varies
Export, schedule, API and MCPโœ…โŒvaries

๐Ÿ”Œ Integrations, API and MCP

Connect EU VAT Number Validator to your AI agent (MCP)

Give Claude, ChatGPT, Cursor or any MCP client direct access to EU VAT Number Validator through the Apify MCP server. Add this URL to its settings:

https://mcp.apify.com/?actors=bepolabs/vat-validation

For Claude Desktop, add it under mcpServers in claude_desktop_config.json:

{
"mcpServers": {
"vat-validation": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"bepolabs/vat-validation"
],
"env": {
"APIFY_TOKEN": "<your Apify API token>"
}
}
}
}

Then just ask: "Check these EU VAT numbers and tell me which are valid and the company behind each: IE6388047V, ATU33864707, NL004495445B01."

Run it from your code

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("bepolabs/vat-validation").call(run_input={"vatIds":["IE6388047V","NL004495445B01","ATU33864707"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('bepolabs/vat-validation').call({"vatIds":["IE6388047V","NL004495445B01","ATU33864707"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

No-code integrations

Send results to Google Sheets, Slack, Airtable, HubSpot, Make, Zapier, n8n and more from the Integrations tab, start runs on a schedule, or trigger your own endpoint with a webhook when a run finishes. The Apify API gives you full control over runs and datasets.

โ“ FAQ

Why is a valid number shown without a name?

Some member states (Germany, Spain) never disclose trader details through VIES, and others share them only for some numbers. The row's note says so.

Why are some rows unchecked?

The country's VAT service was down or overloaded during every retry. OUTPUT lists each member state's status from VIES; run those numbers again later.

Does it check UK VAT numbers?

Only Northern Ireland (XI), which VIES still covers. Great Britain (GB) left VIES in 2021.

A VIES answer is information, not a certificate. With your own VAT id as requester, the consultation number is the record VIES keeps of your check, dated and kept on the VIES side.

How many numbers can I check per run?

Up to 10,000. Countries that are busy slow a run down, because their numbers wait for the next retry round.

Yes. VIES is a free public service of the European Commission for checking VAT numbers, and the Actor uses its official REST interface without a key. As VIES asks, the Actor sends single checks, at most 5 at once (2 by default), and backs off when a country is busy. Company names and addresses are returned by the member states for VAT verification; use them for that purpose.

What if something is missing or does not work?

Open an issue on the Issues tab; we read each one and reply. Feature requests are welcome too.

๐Ÿ’ฌ Your feedback

Tell us what EU VAT Number Validator should add on the Issues tab or leave a review; your notes decide what we work on next.

ActorWhat it does
๐Ÿ›๏ธ SEC EDGAR FilingsTickers or CIK numbers to SEC filings: 10-K, 10-Q, 8-K, Form 4 and any other form, with document links.
๐Ÿ›๏ธ SAM.gov Contract OpportunitiesUS federal contract opportunities by keyword, NAICS, set-aside or agency, with deadlines, contacts and attachments.
๐Ÿ‡ฌ๐Ÿ‡ง UK TendersUK public contracts from Contracts Finder and Find a Tender by keyword, CPV, value, region and deadline, with daily alerts.
๐Ÿ›๏ธ US Federal Grants FinderGrants.gov opportunities by keyword, agency or CFDA number, with award amounts, deadlines, eligibility and contacts.
๐Ÿ›ก๏ธ CVE Vulnerability SearchOfficial NVD records by CVE id, keyword or product: CVSS, CWE, CISA known-exploited flag and fix links.
๐Ÿ“ง Email CheckerBulk email validation over DNS: valid, risky or invalid per address, with the reason, MX host, throwaway and shared-inbox flags.
๐Ÿ’Š openFDA DataFDA adverse events, recalls, drug labels and 510(k) clearances for any drug or device, as clean rows.
๐Ÿ“ž Phone Number ValidatorBulk phone number validation offline: valid or not, E.164 format, country and line type (mobile, fixed line, VoIP) for every number.