Switzerland Zefix · Company Directors
Pricing
from $3.49 / 1,000 swiss company — zefix register + shabs
Switzerland Zefix · Company Directors
Two jobs: find Swiss companies by name and canton, or enrich CHE UIDs you already have. Every row: legal form, seat, purpose, address, SHAB publications and named officers when the gazette lists them. Official Zefix — no login, no API key, not Moneyhouse.
Pricing
from $3.49 / 1,000 swiss company — zefix register + shabs
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Switzerland Zefix · Company Enrich
Two jobs, one Actor. Paste Swiss UID numbers (CHE-…) or search by company name.
| Job | You have… | You get… |
|---|---|---|
| Enrich UIDs | CHE numbers from your CRM | Official Zefix file for each ID still on the register |
| Find companies | A name (and optional canton) | Matching active companies from the central business name index |
By default every row is the register file: legal form, seat, address, purpose, SHAB / SOGC publications, and named officers when the gazette lists them.
This is not a SIRENE-style director file. Names come from SHAB text (Eingetragene Personen). Some rows have no named person — for example a domicile-only publication.
No login. No API key. Official Zefix — not Moneyhouse.
Built for: KYB / family offices · B2B DACH · compliance desks · CRM backfill on Swiss counterparties
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| KYB / onboarding analyst | Confirm UID, status, seat, purpose | Enrich UIDs · Quick look first |
| Family office / bank ops | SHAB mutations + named signatories when published | Enrich UIDs · KYB / SHAB view |
| B2B sales covering DACH | Named officers in a canton | Find companies · your name + canton · Call list |
| RevOps / data | Stable CHE columns for a CRM list | Enrich UIDs · bulk list · All matching |
| Journalist / researcher | Former names, branches, auditor | Find companies · KYB / SHAB view |
| Agency running Swiss outbound | First name + last name before the call | Find companies · Outreach / CRM view |
What you get by default: company name, UID, CH-ID, legal form, status, canton, seat, address, purpose, SHAB count and publications, auditor when listed, old names, branches, and officers parsed from the gazette when present.
Zefix does not publish a company website, email or phone. There is no website crawl in this version. Use the legal name + city in a contact enricher if you need inboxes.
What it does
| Job | How it works | Best for |
|---|---|---|
| Enrich UIDs | Paste CHE numbers. Each ID is confirmed on Zefix. Unknown IDs are skipped and not billed. | CRM backfill, KYB |
| Find companies | Search the official name index. Optional canton filter (applied after search). | Territory lists |
Same output either way: one row per company (UID).
What it extracts
| Field | Description |
|---|---|
uid / uidFormatted | 9-digit UID and CHE-xxx.xxx.xxx |
chid / ehraid | Commercial-register and Zefix internal IDs |
name | Registered name |
legalForm / status | Form (Corporation, LLC, sole proprietorship…) and Active / Deleted / In liquidation |
canton / legalSeat | Canton (from the cantonal excerpt) and seat |
address / postalCode / city | Domicile as published |
purpose / purposeShort | Company purpose (short form for tables) |
directorName / directorFirstName / directorLastName / directorRole | Primary officer from SHAB when listed |
directors[] | All officers remaining after applying SHAB entries and departures |
auditor | Audit firm when Zefix lists one |
oldNames / branches | Former names and branch offices |
sogcPublications[] / sogcCount | SHAB / SOGC publications |
zefixUrl / cantonalExcerptUrl | Public Zefix page and cantonal excerpt |
Missing register fields are null. IDs not on Zefix are logged and never billed.
Quick start
- Open this Actor in Apify Console
- Leave Job on Enrich UIDs
- Keep
CHE-105.909.036(Nestlé AG) or paste your list - Leave How many on Quick look (25)
- Click Start — download JSON, CSV or Excel from the Dataset tab
Already have a name? Switch Job to Find companies, type Migros, optionally pick a canton, click Start.
Ready-made examples
Saved Console tasks (same Actor, ready to run):
| Example | Job | View |
|---|---|---|
| Enrich Nestlé UID | Enrich UIDs | Overview |
| Find Migros in Zürich | Find companies | Overview |
| Treuhand name sample | Find companies | Outreach / CRM |
| Bulk CHE list | Enrich UIDs | KYB / SHAB |
Store Examples tab landing pages go live after the Actor itself is public. Specs live in published-tasks/.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | uids | Job. uids = Enrich UIDs. nameSearch = Find companies. Pasting IDs also switches to Enrich. |
searchName | string | — | Company name. Used in Find; ignored in Enrich. |
canton | string | all | Two-letter canton or all. Applied after search. Ignored in Enrich. |
uids | string[] | Nestlé example | CHE UID list. Used in Enrich; ignored in Find. |
howMany | string | preview | preview (25), call_list (250), all (up to 2,000) |
API-only (accepted in JSON, hidden from Console): maxResults (integer; 0 = search cap 2,000, overrides howMany), verboseLogs, maxConcurrency (default 4, max 8), requestDelayMs (default 200), proxyConfiguration.
JSON example (Enrich UIDs)
{"mode": "uids","uids": ["CHE-105.909.036"],"howMany": "preview"}
JSON example (Find companies)
{"mode": "nameSearch","searchName": "Migros","canton": "ZH","howMany": "preview"}
Output sample
{"uid": "105909036","uidFormatted": "CHE-105.909.036","name": "Nestlé AG","legalForm": "Corporation","status": "Active","canton": "ZG","legalSeat": "Cham","address": "Zugerstrasse 8, 6330 Cham","directorName": "Philippe Vossen","directorRole": "Direktor","auditor": "Ernst & Young SA","sogcCount": 59,"source": "zefix"}
Download in JSON, CSV, Excel or HTML from the Dataset tab. Use Outreach / CRM for first name / last name columns.
How it works
- Read the public Zefix central business name index (same data as zefix.admin.ch)
- Confirm each UID or collapse name hits to one row per company
- Attach purpose, address, SHAB publications and parse named officers from gazette text
- Push each row as soon as it is ready — you see data during the run
How much does it cost?
HTTP-only (no browser). You pay per unique company saved. Not-found IDs are free.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Swiss company — Zefix register + SHAB | $4.99 / 1k | $4.49 | $3.99 | $3.49 |
| Scenario | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| 25 companies (first test) | ~$0.12 | ~$0.11 | ~$0.10 | ~$0.09 |
| 1,000 companies | $4.99 | $4.49 | $3.99 | $3.49 |
Higher Apify plans pay the same or less per row. Compute stays low because Zefix is open JSON. Residential proxies are not required.
Free Apify accounts are capped at 100 companies per run.
Name search can return at most 2,000 hits (public search window). All matching uses that window.
Is it legal to use Zefix?
This Actor only reads data that the Federal Commercial Registry Office already publishes as open data (Zefix). Officer names in SHAB publications are personal data: use them under GDPR / Swiss FADP and your own legitimate-interest basis. Do not spam. See also Apify’s note on the legality of web scraping.
This is not Moneyhouse. We do not scrape credit scores, paid contact lists or the Moneyhouse paywall.
Limitations
- Officers are gazette text, not a live board file. Fill is high on typical SMEs (~8 in 10 Treuhand rows in our sample had an
Eingetragene Personenblock) and can be empty on domicile-only notices. - No website, email or phone on Zefix.
- Canton filter is applied after search (the public name index does not honour canton in the query).
- Name search is a window of 2,000 — not a dump of every Swiss AG.
- Large All matching exports take longer. Default timeout is 1 hour.
Same suite — company registers
- French Companies · Search & SIREN Enrich — France
- Belgium BCE/KBO — Belgium
- UK Companies House — directors and PSC
- Germany Handelsregister — court + HRB
- Domain to SIREN — website → confirmed SIREN
- RGE France — certified artisans + named gérants
FAQ
- What is the difference between the two jobs? Find companies builds a list from a name. Enrich UIDs confirms IDs you already have.
- Is this the founder? No. SHAB publishes people with signing authority when a mutation is filed. That may be a director, manager or owner — not a historical founder file.
- Do I need a Zefix API password? No. This Actor uses the same public index as the website.
- Why is
directorNameempty? The latest publications may not name a person (address change only). That row is still billed — you still received the register file. - Can I export a whole canton? No. Pick a name (or paste UIDs). A canton-wide dump is out of scope.
- What if an ID is unknown? It is skipped and not billed.
Local development
npm installnpm testapify run --input-file=./input.json
apify run validates storage/key_value_stores/default/INPUT.json against the input schema before your code runs.
Output: Dataset in storage/datasets/default/, RUN_LOG in the default key-value store.
Support
Contact corentin@outreacher.fr for custom territories, a private feed, or bulk exports.
Ready? Leave Enrich UIDs, keep the Nestlé example (or paste your CHE list), and click Start.