EU Fresh Company Radar — New Company Registrations Feed
Pricing
from $10.00 / 1,000 new company records
EU Fresh Company Radar — New Company Registrations Feed
Nightly meta-scraper that fans out to our UK, French, German, Norwegian, Swedish, Dutch, Polish and Italian company-registry scrapers and emits only company registrations not seen in a prior run — a deduped delta feed, not a full re-export.
Pricing
from $10.00 / 1,000 new company records
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
EU Fresh Company Radar
Nightly feed of new company registrations across five European registries — UK, France, Germany, Norway and Sweden — in one unified schema, deduplicated run over run so you only ever get what's new.
Why use this actor?
Sales teams, compliance/KYC desks and lead-gen shops all want the same thing: know the moment a new company shows up on a register, in a country they care about, without re-downloading the whole registry every night to spot the difference themselves. This actor does that diffing for you. Run it on a schedule (nightly is the intended cadence) and every run only returns companies it hasn't returned before — a persistent, named key-value store remembers what it has already seen, across separate scheduled runs, not just within one run.
It is a meta-actor: under the hood it fans out to our own Companies House, Recherche Entreprises (French official registry), North Data, BRREG (Norwegian official registry) and Allabolag.se scrapers, normalizes every country's fields into one shape, and only pushes rows that are new to this actor's memory.
How to scrape new company registrations in Europe
- Pick your countries (or leave the field empty for all five).
- Run it once — the first run has nothing to compare against, so it seeds its memory and every company found counts as "new." Expect a few hundred rows on a UK-only first run, since UK is the one country with a genuine incorporation-date filter.
- Schedule it (see below). Every subsequent run only returns companies it hasn't seen before — a UK company incorporated last week that a prior run already reported won't come back.
- For the four non-UK countries, "new" means "new to our search net," not strictly "newly incorporated" — see Limitations below for why, and how to read the
incorporationDatefield to judge true freshness yourself.
Scheduling
This actor's whole point is running on a schedule, not as a one-off. In the Apify Console:
- Open the actor, go to Schedules → Create new schedule.
- Nightly (e.g.
0 3 * * *, 3am UTC) is the intended cadence — company registries update on business days, so a daily run is plenty granular. There is no benefit to running it more than once a day: the delta only grows by what registries actually published since the last run. - Leave the input as your default country/keyword selection. Do not turn on
resetStateon a scheduled run — that flag wipes the actor's memory and would make every run look like a "first run," defeating the whole point. - Optional: point the schedule's output at an integration (Zapier, Make, a webhook) that fires per new dataset item, so new registrations land in your CRM or Slack the same morning they're published.
Input
| Field | Type | Required | Description |
|---|---|---|---|
countries | Array | No | Which registries to scan: GB, FR, DE, NO, SE. Empty = all 5. |
keywordsPerCountryPerRun | Integer | No | For the 4 non-UK countries: how many native-language search keywords to run per country per run (default 2). The keyword pool rotates forward each run. |
maxResultsPerQuery | Integer | No | Cap per keyword search / per UK date-window call (default 25). |
recentWindowDays | Integer | No | UK only — trailing window in days for the incorporation date-range filter (default 3). |
timeoutPerSourceSecs | Integer | No | Max wait per underlying registry call before it's marked failed and skipped (default 180). |
proxyConfiguration | Object | No | Passed through to North Data (Germany) only — every other source reads an open government API directly, no proxy needed. |
resetState | Boolean | No | Testing only — wipes the seen-set and keyword rotation before the run. Never use on a real schedule. |
Output
One row per newly-seen company, plus a single status row on a legitimate zero-delta run (sources healthy, nothing new since last run).
| Field | Type | Example |
|---|---|---|
country | String | "GB" |
legalName | String | "BAMARI PROFESSIONAL CLEANING SERVICES LTD" |
regNumber | String | "17337314" |
incorporationDate | String | "2026-07-13" |
address | String | "Flat 3, ... Edinburgh EH2 4AN" |
source | String | "studio-amba/companies-house-scraper" |
firstSeenAt | String | "2026-07-18T07:10:51.272Z" |
recordType | String | "new_company" or "run_status" |
Example output
{"country": "GB","legalName": "GOLD VAULT NEXUS INVESTMENTS LP","regNumber": "SL038113","incorporationDate": "2026-07-13","address": "5 South Charlotte Street Edinburgh EH2 4AN","source": "studio-amba/companies-house-scraper","firstSeenAt": "2026-07-18T07:10:51.272Z","recordType": "new_company"}
On a run where nothing new was found (sources healthy, just no fresh registrations since the last run), you get one status row instead of an empty dataset:
{"country": "ALL","legalName": "STATUS: zero-delta run","regNumber": "","incorporationDate": "","address": "","source": "eu-fresh-company-radar","firstSeenAt": "2026-07-18T08:00:00.000Z","recordType": "run_status"}
How the delta works
Every company's country:regNumber pair is checked against a named, persistent key-value store (eu-fresh-company-radar-state) that survives across separate scheduled runs — not Actor.useState, which only checkpoints a single run for migration-safe resume. First run: nothing is in the store yet, so every company found is "new" and gets added. Every later run: only companies whose regNumber isn't already in the store get emitted; everything else is silently skipped (it was already reported). Each country also has its own rotating offset into its keyword pool (see Limitations), so consecutive runs use different search terms and broaden coverage over time instead of hammering the same query every night.
Proven live (2026-07-18): a first GB run with resetState: true returned 500 new companies incorporated in the trailing window; re-running the identical input immediately after with resetState: false returned 0 new companies (all 500 candidates already known) and correctly pushed a single zero-delta status row instead of an empty dataset or a failure.
Country coverage and source choice
| Country | Registry actor | Discovery mode | Has incorporation date? |
|---|---|---|---|
| UK (GB) | companies-house-scraper | True date-range filter | Yes |
| France (FR) | recherche-entreprises-scraper | Keyword search net | Yes |
| Germany (DE) | northdata-scraper | Keyword search net (requires fetchDetails: true) | Yes |
| Norway (NO) | brreg-scraper | Keyword search net | Yes |
| Sweden (SE) | allabolag-se-scraper | Keyword search net | No (base output) |
Five additional candidate sources were wired, cloud-tested and dropped — logged here rather than silently omitted, per the fleet's "skip and note broken children" rule:
- firmy-cz-scraper (Czech Republic) — it's a business directory, not an official registry. It returns no registration number and no date field on any result, so there is no reliable identity to dedup on. Without that, a "new registrations" product can't work — every run would look "new" because nothing can be recognized as already-seen.
- pappers-scraper (FR) and proff-no-scraper (NO) — both work and both cover the same countries as the sources above, but recherche-entreprises.api.gouv.fr and data.brreg.no are free official government APIs with no anti-bot and no proxy cost, while pappers and proff.no are commercial mirrors that need residential proxies for the same data. Kept the cheaper, more direct source; dropped the redundant one.
- kvk-scraper (Netherlands) — live-tested 2026-07-18 with two different keywords ("bouw", "advies"); both returned 0 companies. The kvk.nl search flow or its selectors appear to have changed upstream. Needs separate healing before NL can be added back.
- krs-scraper (Poland) — its
searchQuerymode brute-force scans the entire Monitor Sądowy i Gospodarczy bulletin (18,000+ entries, checked sequentially) instead of querying an indexed search endpoint. A single keyword didn't finish within a 150-second timeout in testing. This isn't a timeout-tuning problem — the mechanism itself is too slow for a keyword-rotation product.krsNumberdirect lookup is fast but doesn't fit a discovery product (you'd need the number already). - registro-imprese-scraper (Italy) — its
searchQuerymode only hits an autocomplete suggester that returns company names, nothing else — nonumeroRea, nopartitaIva, no address, no date, by design (verified in source). No registration number means no dedup key, so it fails for the same reason firmy.cz does.
Limitations
- Only UK has a true "new registrations" filter. Companies House exposes an
incorporatedFrom/incorporatedTobulk filter — a genuine "everything incorporated in this window" feed, no keyword needed. None of the other four registries' actors expose an equivalent date-range parameter (verified against source, not assumed); every one of them requires a search keyword. For those countries, this actor rotates through a pool of common native-language business-type keywords each run and treats "not seen before" as the delta signal. That means a company surfacing for the first time is either genuinely newly registered, or an older company the keyword net finally reached. TheincorporationDatefield is still returned wherever the source exposes one, so you can judge true freshness yourself rather than trust the delta alone. - Sweden has no incorporation date in the base output.
allabolag-se-scraperonly returns founding date when detail enrichment is switched on, which multiplies requests per company. To keep this actor's per-run cost and runtime sane, Sweden runs with detail enrichment off — you get the company and its registration number, not a date. - Search-net coverage is a sample, not a full census. Non-UK countries are not exhaustively scanned every run; the keyword rotation trades completeness for a bounded, predictable runtime (target: comfortably under 15 minutes per run at default settings).
- A company that changes its registered address or name is not re-flagged. The dedup key is the registration number only. This actor reports new registrations, not ongoing change monitoring.
- Only 5 of 8 originally scoped countries are live. Netherlands, Poland and Italy were wired and cloud-tested but dropped for the reasons above — see "Country coverage and source choice." They can be added back once the underlying child actor is healed (NL) or a faster/richer discovery mode is added (PL, IT).
Cost estimate
Priced per new company record found, plus a flat per-run start fee. A typical nightly run at default settings (2 keywords per non-UK country, UK's 3-day incorporation window) returns anywhere from a handful to a few hundred new companies depending on how quiet or busy the last 24 hours were across all five registries — cost scales with genuine output, not with how much data was scanned underneath.