Zefix Company Register Scraper (Switzerland: Zefix, SHAB) avatar

Zefix Company Register Scraper (Switzerland: Zefix, SHAB)

Pricing

$5.00 / 1,000 company records

Go to Apify Store
Zefix Company Register Scraper (Switzerland: Zefix, SHAB)

Zefix Company Register Scraper (Switzerland: Zefix, SHAB)

Search the Zefix federal commercial register by company name, or pull newly published SHAB commercial register notices (new registrations, mutations, deletions) from amtsblattportal.ch.

Pricing

$5.00 / 1,000 company records

Rating

0.0

(0)

Developer

WebAlpine Studio

WebAlpine Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Look up Swiss companies in the federal commercial register index (Zefix) by name, or pull the latest commercial register notices (new registrations, mutations, deletions) from the Swiss Official Gazette of Commerce (SHAB, via amtsblattportal.ch). Both sources are official, public and free. The Actor turns them into clean, flat JSON records with UID, legal form, seat, canton, address, purpose, capital and registered persons.

Why this actor

  • Official sources only: the public Zefix REST API of the Federal Office of Justice and the SHAB publications on amtsblattportal.ch, the Swiss Official Gazette of Commerce.
  • No login, no account and no browser. Public JSON and XML endpoints with polite delays and retries.
  • Structured fields: UID, company name, legal form, seat, canton, address, purpose, capital and registered persons, parsed from the official publication XML.

What it does

The Actor has two modes, chosen with the mode input.

search: queries Zefix (zefix.ch) for companies whose name contains the search term. Optional filters for canton, legal form and active companies only. Each hit comes with UID, legal form, seat, canton, status and the link to the cantonal register excerpt. With fetchDetails on, the Actor also fetches the registered address and the company purpose. Zefix returns at most 2000 hits per search, so narrow the name or use the filters for common terms.

new-companies: lists SHAB commercial register publications for a date range (default: the last 7 days), filtered by publication type and optionally by canton. The three types are HR01 (new registration), HR02 (mutation, for example a change of name, seat, capital or board) and HR03 (deletion). With fetchDetails on, the Actor parses the structured publication XML for every notice and returns the company name, UID, seat, legal form, address, purpose, nominal capital, the registered persons named in the notice and the full publication text.

Why use it

Zefix is the searchable index of all Swiss commercial registers; SHAB is the daily, append-only feed of everything that changes in them. Together they cover the two typical jobs: looking up a company and monitoring a canton or the whole country for new companies. Use cases include lead generation on newly founded companies, KYC and supplier checks, tracking competitors' register changes, and enriching CRM data with UID, legal form and address. No login or browser is needed; the Actor talks to the public JSON and XML endpoints with polite delays and retries. The default Apify datacenter proxy is enough for both sources.

Input

FieldTypeModeDescription
modestringbothnew-companies (default) or search.
namestringsearchCompany name or part of it. Required in search mode.
legalFormsarraysearchOptional legal form filter (Zefix ids as strings, for example "3" for Aktiengesellschaft, "4" for GmbH, "6" for Verein, "7" for Stiftung).
activeOnlybooleansearchOnly companies that still exist. Default true. Set to false to include deleted companies.
subRubricsarraynew-companiesPublication types to return: HR01, HR02, HR03. Default ["HR01"].
cantonsarrayboth2-letter canton codes such as ZH, BE, GE. Empty means all of Switzerland.
dateFrom, dateTostringnew-companiesPublication date range as YYYY-MM-DD. Default: last 7 days up to today.
fetchDetailsbooleanbothFetch the Zefix detail record or the SHAB publication XML for each result. Default true.
maxItemsintegerbothMaximum number of records to output. Default 100, maximum 5000.
proxyConfigurationobjectbothProxy settings. Default: Apify datacenter proxy. Required for new-companies mode on the platform because amtsblattportal.ch blocks direct connections from Apify's IP range. Search mode works without a proxy.

Example, new companies in Zurich and Bern over three days:

{
"mode": "new-companies",
"subRubrics": ["HR01"],
"cantons": ["ZH", "BE"],
"dateFrom": "2026-09-19",
"dateTo": "2026-09-22",
"maxItems": 100
}

Example, all active Aktiengesellschaften in Zurich whose name contains "Coop":

{
"mode": "search",
"name": "Coop",
"cantons": ["ZH"],
"legalForms": ["3"],
"maxItems": 100
}

Output example

Every record has the same flat set of fields in both modes. Fields that the source does not provide are null. Legal forms are returned as their German register label so that they are consistent across the four national languages.

Record from new-companies mode (HR01, details fetched):

{
"source": "shab",
"uid": "CHE-437.038.849",
"name": "Soul&Science GmbH",
"legal_form": "Gesellschaft mit beschränkter Haftung",
"legal_form_code": "0107",
"seat": "Sigriswil",
"canton": "BE",
"status": null,
"url": "https://www.shab.ch/#!/gazette/publication/75c8e047-49aa-48ec-b9da-389c766cea59",
"publication_id": "75c8e047-49aa-48ec-b9da-389c766cea59",
"publication_number": "HR01-1006762303",
"publication_date": "2026-09-22",
"sub_rubric": "HR01",
"language": "de",
"address": "c/o Sabine Tilmann, Bäreneggweg 8, 3658 Merligen",
"purpose": "Die Gesellschaft bezweckt das Anbieten und die Durchführung von Aus- und Weiterbildungen, Kursen, Seminaren und Coachings in verschiedenen Lebensbereichen, online und in Präsenz. Ferner bezweckt sie die Entwicklung und den Vertrieb von physischen und digitalen Produkten, die Herausgabe und den Vertrieb von Publikationen sowie den Handel mit Waren aller Art. (...)",
"capital": 20000.0,
"capital_currency": "CHF",
"persons": [
"Tilmann, Sabine Charlotte Caroline Elisabeth, von Sissach, in Merligen (Sigriswil), Gesellschafterin und Geschäftsführerin, mit Einzelunterschrift, mit 20 Stammanteilen zu je CHF 1'000.00",
"Tilmann, Elisabeth, von Sissach, in Merligen (Sigriswil), mit Einzelunterschrift"
],
"raw_text": "Soul&Science GmbH, in Sigriswil, CHE-437.038.849, c/o Sabine Tilmann, Bäreneggweg 8, 3658 Merligen, Gesellschaft mit beschränkter Haftung (Neueintragung). Statutendatum: 14.09.2026. Zweck: (...)",
"scraped_at": "2026-09-22T20:43:14.251379+00:00"
}

Record from search mode (details fetched):

{
"source": "zefix",
"uid": "CHE-238.945.329",
"name": "Anlagestiftung der Migros-Pensionskasse",
"legal_form": "Stiftung",
"legal_form_code": "7",
"seat": "Schlieren",
"canton": "ZH",
"status": "existierend",
"url": "https://zh.chregister.ch/cr-portal/auszug/auszug.xhtml?uid=CHE-238.945.329",
"publication_id": null,
"publication_number": null,
"publication_date": "2025-03-14",
"sub_rubric": null,
"language": null,
"address": "Wiesenstrasse 15, 8952 Schlieren",
"purpose": "Die Stiftung bezweckt die Anlage und die Verwaltung von Vermögen, welches ausschliesslich der Personalvorsorge dient.",
"capital": null,
"capital_currency": null,
"persons": [],
"raw_text": null,
"scraped_at": "2026-09-22T20:42:43.931552+00:00"
}

Field notes:

  • legal_form_code is the Zefix legal form id in search mode and the eCH-0097 code from the publication XML in new-companies mode (0101 Einzelunternehmen, 0103 Kollektivgesellschaft, 0104 Kommanditgesellschaft, 0106 Aktiengesellschaft, 0107 GmbH, 0108 Genossenschaft, 0109 Verein, 0110 Stiftung, 0111 branch of a foreign company, 0115 SICAV, 0117 public law institution, 0151 branch of a Swiss company).
  • publication_date is the publication date of the notice in new-companies mode, and the date of the company's most recent SHAB publication in search mode.
  • capital is the nominal capital as a number, capital_currency its currency. Both are only available from SHAB publications that state a capital (AG, GmbH, some cooperatives).
  • persons are the registered persons exactly as printed in the notice, one string per person, including function and signing authority.

Pricing

This Actor uses pay per result. You pay USD 0.005 per company or register notice, which is USD 5.00 per 1,000 results. There is no charge per run or per request, and a run that returns no results produces no result charges.

ResultsPrice
100USD 0.50
1,000USD 5.00
10,000USD 50.00

A weekly run that collects 300 new registrations in one canton costs USD 1.50. Set maxItems to cap the cost of a run.

The Actor only reads publicly available data from zefix.ch and amtsblattportal.ch, which are operated by the Swiss federal administration. No login, paywall, CAPTCHA or rate limit is bypassed, and requests are spaced out politely.

SHAB publications contain the names of natural persons (board members, managing directors, owners). Publishing them is required by Swiss law, but what you do with the data afterwards is your own responsibility. Check the Swiss Federal Act on Data Protection (FADP) and the GDPR where applicable before storing or reusing personal data at scale.

Limitations

  • amtsblattportal.ch drops direct connections from the Apify platform's IP range, so new-companies mode needs the proxy setting left on. The default (Apify datacenter proxy) has been verified to work; residential Swiss exits work too.
  • Zefix returns at most 2000 hits per search and does not support paging beyond that. Narrow the name or add a canton or legal form filter for common terms.
  • Zefix's public detail endpoint has no capital field, so capital is always null in search mode.
  • The registered persons are extracted from the free-text notice, not from a structured field, because the SHAB XML does not model them separately. Deletion notices (HR03) name no persons, and a few unusual notice layouts may yield an empty list.
  • The company purpose is returned in the language of the notice (German, French or Italian), not translated.
  • Legal form codes that never occurred in verified publications (for example Kommanditaktiengesellschaft, code 0105) fall back to a guess from the company name suffix, or null.
  • status is only available from Zefix. SHAB records always have status: null; use sub_rubric (HR03 means the company was deleted).

FAQ

How do I monitor new companies every day? Schedule the Actor with mode: "new-companies", leave dateFrom and dateTo empty (last 7 days) and deduplicate on publication_id or uid downstream. Publication numbers are strictly increasing, so you can also stop at the last number you have seen.

Can I search Zefix by UID? Not in this version; search is by name only. To find a company by UID, search for its name and match the uid field.

Why does the same company appear twice in new-companies mode? Each record is one publication, not one company. A company that was registered and then mutated within the date range produces one HR01 and one HR02 record with the same uid. Within one run there are never two records with the same publication_id.

Can I combine both modes in one run? No, pick one mode per run. Run the Actor twice, or create two Tasks, if you need both.

Changelog

  • 0.2.x (2026-09-25): README with concrete pricing, maxItems now capped at 5000 per run.
  • 0.2: proxy support (default Apify datacenter proxy) so that amtsblattportal.ch is reachable from the platform, server-side publication type and canton filters on amtsblattportal.ch, deterministic paging without duplicates, company name and legal form taken from the publication XML, numeric capital with capital_currency, new language and legal_form_code fields, Zefix canton and legal form filters, activeOnly option, input date validation, results pushed in batches while the run is in progress.
  • 0.1: initial release, Zefix search and SHAB new-companies modes.