Switzerland Zefix · Company Directors avatar

Switzerland Zefix · Company Directors

Pricing

from $3.49 / 1,000 swiss company — zefix register + shabs

Go to Apify Store
Switzerland Zefix · Company Directors

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

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Switzerland Zefix · Company Enrich

Two jobs, one Actor. Paste Swiss UID numbers (CHE-…) or search by company name.

JobYou have…You get…
Enrich UIDsCHE numbers from your CRMOfficial Zefix file for each ID still on the register
Find companiesA 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 goalSuggested setup
KYB / onboarding analystConfirm UID, status, seat, purposeEnrich UIDs · Quick look first
Family office / bank opsSHAB mutations + named signatories when publishedEnrich UIDs · KYB / SHAB view
B2B sales covering DACHNamed officers in a cantonFind companies · your name + canton · Call list
RevOps / dataStable CHE columns for a CRM listEnrich UIDs · bulk list · All matching
Journalist / researcherFormer names, branches, auditorFind companies · KYB / SHAB view
Agency running Swiss outboundFirst name + last name before the callFind 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

JobHow it worksBest for
Enrich UIDsPaste CHE numbers. Each ID is confirmed on Zefix. Unknown IDs are skipped and not billed.CRM backfill, KYB
Find companiesSearch the official name index. Optional canton filter (applied after search).Territory lists

Same output either way: one row per company (UID).


What it extracts

FieldDescription
uid / uidFormatted9-digit UID and CHE-xxx.xxx.xxx
chid / ehraidCommercial-register and Zefix internal IDs
nameRegistered name
legalForm / statusForm (Corporation, LLC, sole proprietorship…) and Active / Deleted / In liquidation
canton / legalSeatCanton (from the cantonal excerpt) and seat
address / postalCode / cityDomicile as published
purpose / purposeShortCompany purpose (short form for tables)
directorName / directorFirstName / directorLastName / directorRolePrimary officer from SHAB when listed
directors[]All officers remaining after applying SHAB entries and departures
auditorAudit firm when Zefix lists one
oldNames / branchesFormer names and branch offices
sogcPublications[] / sogcCountSHAB / SOGC publications
zefixUrl / cantonalExcerptUrlPublic Zefix page and cantonal excerpt

Missing register fields are null. IDs not on Zefix are logged and never billed.


Quick start

  1. Open this Actor in Apify Console
  2. Leave Job on Enrich UIDs
  3. Keep CHE-105.909.036 (Nestlé AG) or paste your list
  4. Leave How many on Quick look (25)
  5. 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):

ExampleJobView
Enrich Nestlé UIDEnrich UIDsOverview
Find Migros in ZürichFind companiesOverview
Treuhand name sampleFind companiesOutreach / CRM
Bulk CHE listEnrich UIDsKYB / SHAB

Store Examples tab landing pages go live after the Actor itself is public. Specs live in published-tasks/.


Input

ParameterTypeDefaultDescription
modestringuidsJob. uids = Enrich UIDs. nameSearch = Find companies. Pasting IDs also switches to Enrich.
searchNamestringCompany name. Used in Find; ignored in Enrich.
cantonstringallTwo-letter canton or all. Applied after search. Ignored in Enrich.
uidsstring[]Nestlé exampleCHE UID list. Used in Enrich; ignored in Find.
howManystringpreviewpreview (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

  1. Read the public Zefix central business name index (same data as zefix.admin.ch)
  2. Confirm each UID or collapse name hits to one row per company
  3. Attach purpose, address, SHAB publications and parse named officers from gazette text
  4. 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.

EventFreeBronzeSilverGold
Swiss company — Zefix register + SHAB$4.99 / 1k$4.49$3.99$3.49
ScenarioFreeBronzeSilverGold
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.


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 Personen block) 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


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 directorName empty? 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 install
npm test
apify 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.