EU Business Phone Finder — Company Phone & Website Lookup avatar

EU Business Phone Finder — Company Phone & Website Lookup

Pricing

$5.00 / 1,000 phone founds

Go to Apify Store
EU Business Phone Finder — Company Phone & Website Lookup

EU Business Phone Finder — Company Phone & Website Lookup

Give a list of company names (plus optional country/city) and get back phone number, website and address for each — matched against our own European business directories (France, Italy, Germany, Czechia, Poland, Switzerland, Norway) with a confidence score.

Pricing

$5.00 / 1,000 phone founds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Give this actor a list of company names, and get back a phone number, website, and address for each one — matched against our own European business directories. No manual searching, no clicking through seven different Yellow Pages sites one country at a time.

This is a meta-actor: it does not scrape any site directly. It routes each company to the directory scraper(s) that cover its country, fuzzy-matches the company name against whatever listings come back, and returns the single best match with a confidence score.

How to scrape European business directories for phone numbers, without touching seven sites by hand

This actor is the orchestration layer over our own national directory scrapers (pagesjaunes-scraper, paginegialle-it-scraper, gelbeseiten-scraper, wlw-scraper, firmy-cz-scraper, panoramafirm-pl-scraper, local-ch-scraper, proff-no-scraper). Each one already knows how to scrape its own country's directory site; this actor's job is picking the right one per company, running it, and matching the result back to the name you searched.

What it does

  • One list in, one row per company out. Give a batch of company names (optionally with country and city) and get a flat table back: phone, website, address, city, country, source, confidence.
  • Routes by country automatically. France goes to Pages Jaunes, Italy to Pagine Gialle, Germany to Gelbe Seiten and Wer liefert was, Czechia to Firmy.cz, Poland to PanoramaFirm, Switzerland to local.ch, Norway to Proff.no. No country given? The actor tries every directory and keeps the best-scoring hit.
  • Confidence, not a guess. Every row carries a confidence score from 0 to 1 that blends how closely the matched listing's name resembles the input name with whether a phone number was actually found. A perfect name match with no phone listed scores lower than a strong match that has one.
  • No-match is a real answer. Not every company is listed in a public directory. When nothing scores above the match threshold, the row still comes back — confidence: 0, phone: null — instead of silently dropping the company from your results. You always get one row per company you sent in.
  • Two sources for Germany. German companies are checked against Gelbe Seiten (general yellow pages) first, then Wer liefert was (a B2B supplier directory) as a fallback — some companies, especially manufacturers and wholesalers, only show up on the trade directory.

How to find European business phone numbers

  1. Build a list of companies under companies: each item needs a name, and can optionally include country (FR, IT, DE, CZ, PL, CH, NO) and city. Giving the country skips wasted lookups against directories that will never match; giving the city sharpens the match when the company name is common.
  2. Run the actor. Each company is looked up against the directory (or directories) for its country in parallel, batched 3 companies at a time so a large list doesn't fire off dozens of simultaneous child runs.
  3. Read the output table. phone and website are copied straight from the matched listing. confidence tells you how much to trust the match — above 0.7 generally means a strong name match with a real phone number attached.
  4. For companies with no country specified, the actor tries all seven directories and keeps whichever result scored highest — useful for a mixed-country list, but slower and more likely to return a false-positive match on a common name (a Polish company can accidentally match an unrelated German listing with a similar name). Set country whenever you know it.
  5. Use maxCandidatesPerSource to widen or narrow how many listings each directory search considers before picking the best name match — raise it for common company names that need more candidates to disambiguate.

Input options

FieldTypeDescription
companiesarray (required)List of { name, country?, city? } objects. country is one of FR, IT, DE, CZ, PL, CH, NO — omit to try every directory. city narrows the directory search.
maxCandidatesPerSourceintegerHow many listings each directory search fetches before the best match is picked. Default 10.
timeoutPerSourceSecsintegerHow long to wait for each directory child-actor before treating it as failed for that company. Default 180 (Pages Jaunes' detail-page phone lookup is the slowest source, ~3 min for 5 candidates).
proxyConfigurationproxyAdvanced — forces a specific proxy on every child-actor. Leave empty so each directory uses its own country-tuned default.

Output fields

FieldExampleDescription
companyName"Carrefour"The name as given in input
matchedName"Carrefour Market"The listing name found in the matched directory
phone"01 42 XX XX XX"As published by the source, not reformatted
website"https://www.carrefour.fr"
address / city / countryRegistered/listed address of the match
source"pagesjaunes"Which directory produced the match
confidence0.90-1. See "What it does" above
scrapedAtISO timestamp

Example output

{
"companyName": "Carrefour",
"matchedName": "Carrefour Market",
"phone": "01 42 96 98 00",
"website": "https://www.carrefour.fr",
"address": "6 Rue Antoine Chantin",
"city": "Paris",
"country": "FR",
"source": "pagesjaunes",
"confidence": 0.9,
"scrapedAt": "2026-07-20T09:00:00.000Z"
}

A no-match row looks like this — still one row per input company, never dropped:

{
"companyName": "Obscure Ltd",
"matchedName": null,
"phone": null,
"website": null,
"address": null,
"city": null,
"country": "NO",
"source": null,
"confidence": 0,
"scrapedAt": "2026-07-20T09:00:00.000Z"
}

Cost estimate

Priced at $0.005 per phone number found (pay-per-event, charged only on rows where a phone was actually matched — a no-match row costs nothing beyond the flat per-run start fee). Looking up 200 companies with a 60% match rate costs roughly $0.60 in per-result charges plus the run start fee.

Limitations

  • Coverage is uneven across countries. Pages Jaunes (FR) and Gelbe Seiten (DE) are broad consumer-facing directories with strong small-business coverage. Proff.no (NO) is a company-registry aggregator, not a phone directory first — its phone field is thinner. Wer liefert was (DE) only covers B2B suppliers/manufacturers, not consumer-facing businesses.
  • No country given means slower, noisier results. Trying all seven directories for a company without a country takes longer and increases the chance the "best match" is a same-named but unrelated company in the wrong country. Set country whenever you have it.
  • Phone numbers are not reformatted or validated for dialability. They are copied exactly as the source directory published them (national formatting conventions vary by country) — the actor filters out obvious non-numbers (fewer than 6 digits) but does not verify the line is live.
  • A single directory scraper going down degrades that country silently to no-match, not a run failure — check source being null at scale for one country as a signal to investigate that underlying scraper.
  • This only searches directories we already scrape. Countries outside FR, IT, DE, CZ, PL, CH, NO are not covered yet.

Countries covered

CountryDirectoryWhat it's best at
France (FR)Pages JaunesBroad consumer/SME coverage, strong phone + website fields
Italy (IT)Pagine GialleBroad consumer/SME coverage
Germany (DE)Gelbe Seiten (primary), Wer liefert was (secondary)General directory plus a dedicated B2B supplier/manufacturer fallback
Czechia (CZ)Firmy.czBroad consumer/SME coverage
Poland (PL)PanoramaFirmBroad consumer/SME coverage
Switzerland (CH)local.chBroad consumer/SME coverage
Norway (NO)Proff.noCompany-registry aggregator; phone coverage thinner than the others

FAQ

What happens if a company matches in more than one directory? It can't — each company is only routed to the directory (or directories) for the country you gave it. If you omit the country, all seven run and the single highest-scoring match across all of them wins; the others are discarded, not merged.

Why is confidence sometimes lower than I'd expect for an exact name match? Confidence penalizes a match that has no phone number attached. An exact name match with phone: null scores at 40% of what the same match with a phone number would — the point of this actor is finding a number to call, not just confirming the company exists in a directory.

Can I run this on a very large list? Yes — companies are processed in batches of 3 (each batch itself fanning out to 1-7 directory child-actors in parallel per company), and results are pushed to the dataset as each batch completes, so a long-running batch doesn't lose partial progress if interrupted.

Each directory behind this actor is also available standalone if you need raw, unmatched listing data at scale: pagesjaunes-scraper, paginegialle-it-scraper, gelbeseiten-scraper, wlw-scraper, firmy-cz-scraper, panoramafirm-pl-scraper, local-ch-scraper, proff-no-scraper. For verifying a company's legal/registry status rather than its phone number, see eu-dealer-counterparty-check.