15% off your first purchase with code WELCOME15, up to 25 GB.

See pricing

Lead generation · Business directories

Business directory and company register scraping

Business directory scraping builds firmographic records (company name, registration number, status, address, sector, size) from public registers and trade directories. Use official APIs and bulk files where they exist, collect the rest per country, and keep personal data out unless you have a lawful basis for it.

Pay per GB · No subscription · Prices in EUR, excl. VAT

Illustration. The URLs and values are fictional; the connection string is the real grammar.
€0.75
per GB on ARC Basic, excl. VAT
−21%
at 1 TB (€0.59 / GB)
185+
countries, city targeting
Never
expires — no subscription

Written for

  • Sales operations teams
  • B2B data vendors
  • KYB and supplier onboarding teams
  • Market sizing analysts

The short answer

  • Check for an official source first. Under Implementing Regulation (EU) 2023/138, company and company ownership data is a high-value dataset that public bodies must make available for re-use free of charge, via APIs and, where specified, bulk download.
  • Official APIs have limits: the UK Companies House API allows 600 requests in five minutes per application, then returns 429. Design around that rather than routing around it.
  • Trade directories and listing sites are regional and paginated. Collect each country from an exit in it with a sticky session per search.
  • Company data is mostly not personal data; director names, sole-trader details and named contacts are. The French regulator fined a contact-data company €240,000 in 2024 partly for scraping data users had restricted.

The problem

What goes wrong without the right IPs

Scraping what is already free

Many registers publish APIs and bulk downloads. Scraping their search pages is slower, heavier and more fragile than the official route, and it puts load on a public service for no reason.

The same company, ten spellings

Directories abbreviate legal forms, translate names and drop accents. Without a registration number to anchor on, entity resolution across sources produces duplicates and false merges.

Directories are filtered by country

Trade directories and listing sites rank and filter by the visitor's country and often show a different subset of companies per market. One collection point gives you one market's view.

Records go stale silently

Companies dissolve, move and change sector codes without telling your CRM. The refresh cycle is the product, which makes the cost per pass the cost that matters.

Personal data creeps in

Director names, sole traders' home addresses and named contacts on directory pages are personal data. Collecting them brings duties to inform, to limit retention and to honour objections.

What to collect

What you can collect

Legal name and registration number
The registration number is the anchor for every match and every refresh. Store the register it came from.
Legal form and status
Active, in liquidation, dissolved. Status is the field that decays fastest and matters most to sales and KYB.
Registered address
For territory assignment and deduplication. A sole trader's registered address can be a home address, which is personal data.
Industry code (NACE, SIC or local)
Sector filtering for market sizing and targeting. Registers use different code versions; store the version.
Incorporation and filing dates
Age and filing recency are proxies for activity and are widely used in scoring.
Size indicators from filings
Headcount bands, turnover or balance-sheet totals where filings are public. Note the financial year they refer to.
Website and generic contact channels
Company domain and generic addresses such as an info@ mailbox. Prefer these to named individuals.
Source URL and fetch date
Provenance for every field, so a correction or objection can be traced and applied.

How it runs

How a collection run works

  1. 01

    Inventory official sources per country

    For each country, check whether the business register offers an API or bulk download, its rate limits and its licence. Use those first; scrape only what has no official route.

  2. 02

    Respect official API limits

    Throttle to the documented limit per application and back off on 429. Rotating IPs to exceed an official API's per-key limit is not a workaround; it is a breach of the terms.

    Token-bucket pacing for a register API (600 req / 5 min)
    import timeimport httpxRATE, WINDOW = 600, 300  # requests, seconds; set to the register's documented limitdef paced(urls, client: httpx.Client):    interval = WINDOW / RATE    for url in urls:        r = client.get(url)        if r.status_code == 429:            time.sleep(int(r.headers.get("Retry-After", WINDOW)))            r = client.get(url)        yield r        time.sleep(interval)
  3. 03

    Collect trade directories per country

    Partition directory searches by sector and region, run each partition on one sticky exit in the country, and stop at the directory's page cap by narrowing the partition.

    Sticky exit per directory search partition
    import httpxproxy = "http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000"  # one handle per partitionwith httpx.Client(proxy=proxy, timeout=30) as client:    for page in range(1, 21):        r = client.get("https://directory.example.de/search",                       params={"sector": "2562", "region": "bayern", "page": page})        if r.status_code != 200:            break
  4. 04

    Resolve entities on registration number

    Join directory records to register records on registration number or VAT ID, then on normalised name plus address. Keep unmatched directory records separate rather than forcing a merge.

  5. 05

    Minimise personal data and set retention

    Drop personal fields you do not need, set a retention period per field, and keep a route for objections and deletion requests that propagates to every copy.

Setup

Recommended setup

Register pages and directory listings are light and plain. The cheapest pool carries almost all of it.

PlanRoleSessionTargetingPrice
ARC Basic
Rotating ISP
Default for directories and company websites
Our lowest price per GB, and the right shape for small HTML pages at volume. Country targeting covers 185+ countries.
RotatingCountry, optional city
€0.75 / GB
€0.59 at 1 TB (−21%)
ARC Fast
Rotating residential
For directories that need a consumer IP
Residential exits where a directory treats hosting ranges differently, held per partition so pagination stays coherent.
Sticky, 10 minutes per search partitionCountry + city
€2.00 / GB
€1.12 at 1 TB (−44%)

Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.

Connect

One connection string per market

The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.

sticky · Germany · 10 min
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000

Swap _country-de for any market you quote. The full grammar is on the residential proxies page.

Illustration

What one full pass over 250,000 companies costs

An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.

Assumptions

Companies
250,000
Pages per company
2 (directory entry + company website imprint)
Page weight
40 KB, assets blocked
Register data
from official API / bulk file, not counted
Bandwidth per full pass
≈ 20 GB

On ARC Basic

€15.00per full pass, excl. VAT

20 GB bought in one purchase at €0.75 / GB (list price).

The same 20 GB on ARC Fast: €40.00 at €2.00 / GB. Route only the jobs that need it through the pricier pool.

Quarterly passes bought as one purchase land further down the volume ladder, and because bandwidth never expires, buying the year up front costs nothing in flexibility.

Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.

In depth

Business directories, in depth

Official company data first: APIs and bulk downloads

In the EU, Commission Implementing Regulation (EU) 2023/138 lists companies and company ownership among six categories of high-value datasets. Public sector bodies holding them must make them available for re-use free of charge, in machine-readable formats, via APIs and, where the annex says so, bulk download. The EU's open data portal describes the regulation as applying across all Member States since 2024, with implementation uneven between countries.

Outside the EU, many registers offer similar access. The UK's Companies House runs a public data API with a documented limit of 600 requests within a five-minute period per application; requests beyond that receive a 429 until the window resets.

That changes the shape of a directory pipeline. Register facts such as name, number, status, address and filings should come from the official route. Scraping is for what the registers do not publish: trade directory categories, product and service descriptions, and company website details.

Personal data in B2B records: where the line is

Data about a company is generally not personal data. Data about an identifiable person, such as a director, a sole trader or a named sales contact, is, even when it is professional and publicly visible. That is where most B2B data obligations come from.

The CNIL's 2024 decision against KASPR shows what regulators look at. The company's browser extension collected professional contact details from a networking site; its database held about 160 million contacts. The CNIL fined it €240,000 and found, among other things, that collecting details from users who had restricted their visibility went beyond what they could reasonably expect, that a five-year retention period renewed on every update was disproportionate, and that people were informed late and not comprehensibly.

  • Keep to company-level fields where they serve the purpose.
  • Do not collect what a person has restricted or what sits behind a login.
  • Set a fixed retention period that does not silently renew.
  • Inform the people whose data you hold, in their language, and tell them the source when they ask.

This is a summary of a regulator's published decision, not legal advice. Check specifics with counsel. The lead generation page covers the wider enrichment setup.

Which source, which route

SourceBest routeProxy needed?
Business register with API or bulk fileOfficial API / download, at the documented rateUsually not; respect the per-key limit
Business register with web search onlyPaced HTML collectionARC Basic, country-targeted
Trade and industry directoriesPartitioned searches, sticky per partitionARC Basic; ARC Fast where hosting ranges fail
Company websites (imprint, about page)One or two pages per companyARC Basic, rotating
Professional networks behind a loginDo not collectNot supported by our acceptable use policy

Refresh cadence and change detection

A company record decays field by field. Status and address change rarely but matter most; website contacts change often and matter less. Refresh status from the register's change feed or a frequent API check, and refresh directory and website fields quarterly.

Directory pages are small, so a full pass is cheap in bandwidth; most of the cost is in being polite about rate. Spread a pass across a rotating proxy pool, keep each site's rate low, and back off on 429 as described in handling rate limits.

Works with anything that takes a proxy URL

  • Python requests / httpx
  • Scrapy
  • n8n
  • Node.js
  • Docker

FAQ

Questions

Something not covered? Write to contact@arcproxies.io.

Is scraping business directories legal?

It depends on the jurisdiction, the site's terms and what you collect, and we cannot advise on it. Company-level data is generally not personal data; details of identifiable people such as directors, sole traders and named contacts are, under the GDPR. Use official register APIs where they exist and check specifics with counsel.

Is EU company register data free to use?

Implementing Regulation (EU) 2023/138 lists companies and company ownership as high-value datasets that public bodies must make available for re-use free of charge, via APIs and, where specified, bulk download. Coverage and implementation vary by country, so check each register's own terms.

Should I use a proxy for an official register API?

Usually not. Official APIs have per-key limits; the UK Companies House API, for example, allows 600 requests per five minutes per application. Throttle to the documented limit. Rotating IPs to exceed a per-key limit breaches the terms rather than solving anything.

Which plan suits business directory collection?

ARC Basic for most of it, since directory entries and company website pages are small HTML and it is our lowest price per GB. Move a specific directory to ARC Fast, with a sticky session per search, when it treats hosting ranges differently.

What did the CNIL fine KASPR for?

In December 2024 the CNIL fined KASPR €240,000. It found that collecting contact details from users of a professional network who had restricted their visibility was unlawful, that a five-year retention period renewed on every update was excessive, and that people were informed late and not comprehensibly.

Sources & review

Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.

  1. [1]EUR-Lex: Commission Implementing Regulation (EU) 2023/138 on high-value datasets
  2. [2]data.europa.eu: High-value datasets: what has changed and what will come next
  3. [3]Companies House: Rate limiting – Companies House Public Data API
  4. [4]CNIL: Data scraping: KASPR fined €240,000

Get started

Buy a gigabyte and try it on your own targets.

No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.