Home › Data · Version française
Prices are published. One canton CHF 250 · the full set CHF 1 500 · annual refresh CHF 600. Order →
The pages of this site are free and will stay free: an official fact belongs to nobody. What is sold is the compilation work — extracting the European register, giving it two joins it does not have — the Swiss company identifier and the municipality —, dating it, and delivering it in a form you can actually use.
Every record carries the Swiss UID (CHE-…) on
95.4 % of rows. This is what lets you match the
register against your own files — company by company, on a number rather
than on a name.
Matching on names does not work: the commercial register writes Dassym S.A. where the medical register writes Dassym SA, and no software reads those as the same firm. EUDAMED declares a UID on 60.1 % of records, but the field is free text there — suffixes, missing separators, a German VAT number here and there — so only 36.0 % were usable as written. Normalising those and completing the rest against the commercial register is the work.
Nothing is guessed. Column uid_appariement states how
each identifier was obtained, and uid_motif says why the
27 unresolved rows are empty. A file filled
plausibly turns against whoever uses it.
Actor registration in EUDAMED has only been mandatory since 28 May 2026, under Commission Decision (EU) 2025/2371. The Swiss list is still filling: what it holds today is not what it will hold at the end of the year. Snapshots of this register age quickly — the changes are the durable part.
Honest limit: continuous capture here started on 15 August 2026, so the May-to-August build-up was not recorded. What is offered is every change from that date on.
| Field | Description | Filled |
|---|---|---|
srn | Single Registration Number issued by the European Commission — the register key | 100.0 % |
nom | Company name as filed | 100.0 % |
nom_abrege | Short name, where one is filed | 37.0 % |
type_acteur | Role: manufacturer, system/procedure pack producer, notified body | 100.0 % |
statut | Active or inactive in the register | 100.0 % |
statut_depuis | Date of the status change — the register fills this rarely, hence the low rate | 4.9 % |
npa | Postal code as filed in EUDAMED | 100.0 % |
localite | Town as filed in EUDAMED | 100.0 % |
no_ofs | Swiss federal municipality number, resolved by us — joins to any Swiss municipal data | 99.8 % |
commune | Swiss municipality, resolved by us | 99.8 % |
canton | Canton, resolved by us | 99.8 % |
adresse | Street address as filed | 99.8 % |
email | Contact address published by the operator in the register | 100.0 % |
telephone | Phone as filed | 61.2 % |
site_web | Website as filed | 70.5 % |
tva_europeenne | VAT / identifier EXACTLY as declared in EUDAMED — free text, kept unchanged for provenance. Use the `uid` column instead | 60.1 % |
version | Version of the register record | 100.0 % |
capture_le | Date of our snapshot | 100.0 % |
resolu_par | How the municipality was resolved: postal code, or fallback on town name | 99.8 % |
uid | Swiss company identifier (CHE-…), canonical form — the column that lets this file join to the commercial register and to your own databases | 95.4 % |
uid_appariement | How that identifier was obtained, so how strong the evidence is: “source” declared as such in the European register · “source-normalise” same value, tax suffix or separators corrected · “nom+siege” confirmed against the commercial register on BOTH the company name AND the federal number of its registered seat · “nom-unique-siege-autre” sole namesake in Switzerland, registered seat differing from the operating address | 95.4 % |
uid_motif | Why the identifier is empty, when it is — never guessed to fill a gap | 4.6 % |
Measured on the 587 delivered rows, not copied from a previous run. Free sample (CSV) · schema.json
Pick the line you are interested in.