EU Company VAT Finder avatar

EU Company VAT Finder

Pricing

from $5.00 / 1,000 vat id founds

Go to Apify Store
EU Company VAT Finder

EU Company VAT Finder

Find and validate EU VAT numbers in bulk from a list of company domains. Reads the VAT id a company publishes on its site and checks it against VIES. GDPR-clean: the VIES trader name and address are never kept. Free on a no-match.

Pricing

from $5.00 / 1,000 vat id founds

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

You have a list of European company domains and you need their VAT numbers — to invoice them, to check reverse-charge eligibility, to enrich a B2B record, to run compliance. The number is usually right there in the footer or the imprint, but opening each site and copying it out by hand is a day's work.

Give this a list of domains and, for each one, it finds the VAT id the company publishes on its own site — homepage or legal/imprint page — and checks it against the EU's official VIES service. You get the VAT number, its country, and whether VIES says it is valid.

It stays strictly organisation-level. The VAT number is a business identifier a company publishes about itself. VIES also returns the trader's name and address — which for a sole trader is personal data — and those are never read into the output. The same GDPR-first line as the rest of this account.

Live health record: lowlanddata.com/status/company-vat-finder - 30-day success rate and daily canary results, failures included. Full input/output reference: tool page.

Quick start (30 seconds)

  1. Paste your domains into domains, one per line — telekom.de, https://adyen.com or www.company.fr all work.
  2. Click Start. Each domain comes back with its VAT number, country, and VIES validity.
  3. Only have company names? Run the Company Domain Finder first, then feed its domain column in here.

What you can build with it

  • Validate customer VAT for invoicing. Reverse-charge and zero-rating need a valid EU VAT id; this finds it and checks it against VIES in one pass.
  • Enrich a B2B / CRM record. Add the official VAT id to each European account.
  • Screen a supplier or partner list. Confirm the companies you deal with carry a valid, live VAT registration.
  • Feed a compliance or onboarding flow. Turn a list of domains into VIES-checked VAT ids your finance system can trust.

What you get

Each domain is one row:

{
"input": "telekom.de",
"domain": "telekom.de",
"website": "https://telekom.de",
"vatNumber": "DE122265872",
"countryCode": "DE",
"vatValid": true,
"source": "imprint",
"status": "found",
"checkedAt": "2026-09-25T10:00:00.000Z"
}

Field notes:

  • vatNumber is the full EU VAT id (country code + number), exactly as the company publishes it, or null when none was found.
  • vatValid is the VIES result: true, false, or null when VIES could not be reached (VIES is a public service and is occasionally slow or down — null means "not checked", never "invalid").
  • source says where it was found: homepage or imprint (the legal page).
  • status is found, none (the site published no VAT id we could find), unreachable, or invalid.

How it works

It fetches each domain's homepage and looks for a VAT id in the visible text. If there is none, it follows the legal / imprint link (German and Austrian sites carry one by law, and it is where the VAT id lives) and looks there. Every candidate is checked against that country's exact VAT format, so a phone number or an order id is never mistaken for a VAT id. A found number is validated against VIES, and only the valid boolean is kept — never the trader name or address.

Honest limits: it finds a VAT id only where the company publishes one, so it works best on EU businesses (German imprints especially) and returns none for companies that do not publish theirs or that render their legal page entirely in JavaScript.

What does it cost?

$5.00 per 1,000 domains where a VAT id is found. A domain that publishes none, is unreachable, or was not a valid domain is delivered free — you pay only for real results, including the VIES check. A run that finds nothing costs the $0.00005 actor start and nothing else.

  • A 500-domain EU list, ~40% with a published VAT ≈ $1.00, once.
  • A daily 50-domain feed ≈ $0.10/month.

The price is all-inclusive: platform usage, homepage traffic and the VIES lookups are covered, and the free plan returns a 5-item sample per run so you can see the output shape first.

Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

Help me set up the "EU Company VAT Finder" actor on Apify
(https://apify.com/lowlanddata/company-vat-finder). Guide me one step at a time.
What I have: [E.G. "a spreadsheet of 200 EU company domains I need VAT numbers for"]
Guide me to:
1. Create a free Apify account (apify.com), open the actor page, and paste my
domains into the domains field, one per line.
2. Start a run, then export the results as CSV or Excel, or read them from the API.
3. Explain the vatValid column (true / false / null) and what null means.
4. If I only have company names, point me to the Company Domain Finder first.
5. If it works, remind me to leave a quick rating on the actor page.

Input

FieldDescription
domainsThe domains to find a VAT id for, one per line. A bare domain, a URL, or a www host all work. Best on EU lists. Required.
maxItemsStop after this many domains. Default 1000; free-plan runs are capped at 5.

Use it from your code

curl -X POST "https://api.apify.com/v2/acts/lowlanddata~company-vat-finder/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains": ["telekom.de", "adyen.com"]}'

Schedules, webhooks and the Make/Zapier/n8n integrations all apply. This is a standard Apify actor.

Use it with AI agents (MCP)

Through Apify's hosted MCP server, an agent can call this as a tool: hand over the domains, read the VAT ids and validity back.

Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/company-vat-finder"

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

https://mcp.apify.com?actors=lowlanddata/company-vat-finder

Runs bill to the Apify account you sign in with. Per-client setup: Apify MCP docs.

A VAT id is a business tax identifier, and companies publish it on their own sites — German and Austrian law actually requires it in the imprint. This reads only that published number and validates it through the EU's own public VIES service. It never keeps the trader name or address VIES returns, so no personal data enters the output, even for sole traders. Nothing gated is accessed.

Is there a VAT lookup / VIES API?

This is one, wrapped for bulk. Send domains to run-sync-get-dataset-items and get each company's VAT id and its VIES validity back as JSON, on a schedule, or as an MCP tool — without calling VIES one number at a time yourself.

FAQ

What does vatValid: null mean? VIES could not be reached for that number (it is a public service and is sometimes slow or briefly down). The VAT id is still the one published on the site; it just was not validated this run. Re-run to retry.

Do you return the company name or address from VIES? No, never. Only the valid boolean is kept. Trader name and address — personal data for a sole trader — are discarded.

Why did an EU company come back none? It does not publish its VAT id on its site, or its legal page is rendered in JavaScript so the number is not in the static page. The tool reports only VAT ids it can actually read.

Which countries are covered? All 27 EU member states, each matched against its own VAT format (Greece under EL).

Why did I only get 5 results? The Apify free plan caps this actor at a 5-item sample. Any paid plan lifts the cap to your maxItems.

The company-identity family

The domain is the key that unlocks the rest. This tool is one rung, each organisation-level, nothing personal:

Troubleshooting

Failures are loud and named in the run's status message:

  • "Provide at least one domain." domains was empty; add at least one.
  • A row came back unreachable. The homepage did not respond. Re-run later.
  • A row came back none. The site published no VAT id we could read — often a US company, or a JS-rendered legal page.
  • vatValid is null across a run. VIES was unreachable during the run; retry later.
  • 5 results instead of your maxItems: the free-plan sample cap; a paid Apify plan removes it.

Support

Missing a VAT id a site clearly publishes, or found one parsed wrong? Open a report on the actor's Issues tab; this tool is actively maintained.

If it earns its keep, a rating on this page takes ten seconds and tells us which enrichment tool to build next.