Validate EU VAT numbers in bulk via the official VIES service. Returns validity status, registered company name and address. No API key required. Empty results are never charged.
Run it on Apify: apify.com/themineworks/eu-vat-vies-validator Docs, FAQ and pricing: themineworks.com/actors/eu-vat-vies-validator
Price: From $2.50 per 1,000 lookups on Apify's higher plans ($5.00 on the free plan), plus a $0.005 start fee per run. Failed and empty results are never charged.
- Validate EU VAT numbers via official VIES
- Returns company name and registered address
- Bulk validation for hundreds of numbers
- No API key or authentication required
- Empty results are never charged
You need a free Apify account and its API token (Settings, API & Integrations).
pip install apify-clientfrom apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("themineworks/eu-vat-vies-validator").call(run_input={
"vatIds": [
"DE811569869",
"IE6388047V"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)npm install apify-clientimport { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/eu-vat-vies-validator').call({
"vatIds": [
"DE811569869",
"IE6388047V"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);One request that runs the actor and returns the results in the response (for runs under 5 minutes):
curl -X POST "https://api.apify.com/v2/acts/themineworks~eu-vat-vies-validator/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"vatIds": ["DE811569869", "IE6388047V"]}'This repo includes ready-made clients that save results to JSON and CSV:
python3 eu_vat_validator.py --token YOUR_APIFY_TOKEN --vat-ids "DE811569869,IE6388047V"
node eu_vat_validator.mjs --token YOUR_APIFY_TOKEN --vat-ids "DE811569869,IE6388047V"| Field | Type | Default | Description |
|---|---|---|---|
vatIds (required) |
array | Full EU VAT IDs including the 2-letter country prefix (for example DE811569869, IE6388047V, FR40303265045) |
One row per result, as JSON, CSV, Excel or through the API.
| Field | Type | Description |
|---|---|---|
vat_id |
string | Full VAT number including country prefix (for example DE123456789) |
country_code |
string | 2-letter EU member state code (VIES format, EL for Greece) |
vat_number |
string | VAT number without the country prefix |
valid |
boolean | Whether the VAT number is currently valid and registered |
status |
string | Result status: valid, invalid, unavailable, invalid_format, service_error |
name |
string | Registered business name returned by VIES |
address |
string | Registered business address returned by VIES |
request_date |
string | Date the VIES check was performed |
checked_at |
string | ISO timestamp when this check was performed |
The actor works as a tool in Claude, Cursor or any MCP client through Apify's MCP server:
https://mcp.apify.com/?tools=themineworks/eu-vat-vies-validator
From $2.50 per 1,000 lookups on Apify's higher plans ($5.00 on the free plan), plus a $0.005 start fee per run. Failed and empty results are never charged. You can cap what a single run may spend with the maximum cost setting on Apify.
Yes. Every run saves to an Apify dataset you can download as JSON, CSV, Excel or XML, or read through the API. The Python and Node clients in this repo also write the results to local files.
Yes. Save your input as a task on Apify and attach a schedule, or call the API from your own cron job. Scheduled runs are billed the same way as manual ones.
- GST Taxpayer Lookup: Verify any Indian GSTIN against the official GST portal
- World Bank Trade Scraper: Imports and exports by country and product, from World Bank WITS
- Company KYB Lookup: Resolve company names to their LEI and SEC CIK in one run
Part of The Mine Works: 151 pay-per-result scrapers with no login and no browser setup on your side.
MIT © The Mine Works