Swiss Health Insurance Premiums Lookup (LAMal / KVG) avatar

Swiss Health Insurance Premiums Lookup (LAMal / KVG)

Pricing

from $1.50 / 1,000 premium results

Go to Apify Store
Swiss Health Insurance Premiums Lookup (LAMal / KVG)

Swiss Health Insurance Premiums Lookup (LAMal / KVG)

Official 2026 Swiss basic health insurance premiums for any canton, postal code or municipality, filtered by age group, deductible, accident cover and insurance model, sorted from cheapest to most expensive. Built on FOPH open data.

Pricing

from $1.50 / 1,000 premium results

Rating

0.0

(0)

Developer

Najim Abdelmoula

Najim Abdelmoula

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does Swiss Health Insurance Premiums Lookup do?

Swiss Health Insurance Premiums Lookup returns the official 2026 basic health insurance premiums (LAMal / KVG / AOS / OKP) for any place in Switzerland, sorted from cheapest to most expensive. Give it a postal code, a canton or a municipality number, plus the age group, deductible, accident cover and insurance model, and it returns every matching offer from every insurer as clean JSON: an API for Swiss health insurance premiums, built on the open data published by the Federal Office of Public Health (FOPH / OFSP / BAG).

It does not sign anybody up, does not give advice, and does not contact insurers. It answers one question well: what does basic insurance cost, for whom, where, with which insurer.

Why use Swiss Health Insurance Premiums Lookup?

Every autumn, 9 million residents of Switzerland receive their new premium and many of them compare and switch before 30 November. The official data is public but ships as a 22 MB spreadsheet with coded columns (AKL-ERW, FRA-2500, PR-REG CH2, insurer numbers instead of names). This Actor does the decoding for you.

  • 🏥 Every insurer, every model, every deductible for the selected place and person.
  • 📍 Postal code or municipality in, premium region out. The Actor resolves the canton and the premium region from the place of residence, exactly as insurers do.
  • 💸 Cheapest first, with monthly and annual amounts, insurer names and tariff names in French, German and Italian.
  • 🤖 Made for AI agents and automations: one call, structured output, no scraping, no login, no captcha. Works through the Apify API, the MCP server, n8n, Make, Zapier and scheduled runs.
  • 📅 Refreshed at every FOPH release: the 2027 premiums are added as soon as the Federal Council publishes them (usually late September).

Typical users: comparison tools, brokers and advisors, HR and relocation services, journalists, AI assistants answering "what is the cheapest health insurance in Lausanne?", and anyone building a Swiss personal-finance product.

What data does it return?

FieldTypeDescription
rankintegerPosition in the list, 1 = cheapest
insurer / insurerIdstring / integerInsurer name and FOPH number
modelstringstandard, familyDoctor, hmo or telmedOrOther
tariffName / tariffNamesstring / objectTariff name, with DE/FR/IT variants
deductibleCHFintegerAnnual deductible (franchise)
accidentCoverbooleanWhether accident cover is included
monthlyPremiumCHF / annualPremiumCHFnumberPremium per month and per year
canton / regionstring / integerCanton and premium region the premium applies to
ageGroup / childRankstring / integerAge group, and child rank for sibling tariffs
isBaseTariff / isStandardDeductiblebooleanFlags from the FOPH data

The run also stores a SUMMARY record with the resolved location, any warnings and the cheapest offer.

How to look up Swiss health insurance premiums

  1. Open the Actor and enter a postal code (e.g. 1003), or pick a canton, or enter a municipality BFS number for the most precise region.
  2. Choose the age group (adult, young adult, child), the deductible, whether accident cover is needed, and the model (any, standard, family doctor, HMO, telemedicine or other).
  3. Optionally restrict to a few insurers and set a limit.
  4. Click Start. Results appear in the Output tab within seconds, cheapest first.
  5. Download them as JSON, CSV or Excel, or call the Actor from your code with the API tab.

What is a premium region?

Cantons with large cost differences are split into up to three premium regions (BE, BL, FR, GR, LU, SG, SH, TI, VD, VS, ZH). The region is defined by the municipality of residence, not by the postal code. When a postal code covers several regions, the Actor returns all of them and tells you so in the run log; pass municipalityBfs to get exactly one.

Which deductible and accident cover should I choose?

Adults and young adults can choose 300, 500, 1000, 1500, 2000 or 2500 CHF; children 0 to 600 CHF. Employees working 8 hours a week or more are insured against accidents by their employer and set accidentCover to false; everybody else keeps true. Leave the deductible empty to compare all of them at once.

How much does it cost?

The Actor uses pay-per-event pricing: you pay a small amount per premium returned (see the pricing box on this page), nothing when a query returns no results. A typical query for one person, one deductible and all models returns 40 to 120 results. Use limit to cap the cost, or insurers to compare a shortlist. Free Apify plans include enough credit to run it many times a month.

Input

See the Input tab for all options. Minimal example:

{ "postalCode": "1003", "ageGroup": "adult", "deductible": 2500, "accidentCover": false }

Advanced example, three insurers in Zurich premium region 1 for a first child, telemedicine models only:

{ "canton": "ZH", "region": 1, "ageGroup": "child", "childRank": 1, "model": "telmedOrOther", "insurers": ["CSS", "Helsana", "Sanitas"] }

Output

You can download the dataset in JSON, CSV, Excel or HTML formats. Two simplified items:

[
{
"rank": 1,
"year": 2026,
"canton": "VD",
"region": 1,
"insurerId": 1509,
"insurer": "Sanitas",
"model": "telmedOrOther",
"tariffId": "TelMed (Compact One)",
"tariffName": "TelMed (Compact One)",
"ageGroup": "adult",
"deductibleCHF": 2500,
"accidentCover": false,
"monthlyPremiumCHF": 412.2,
"annualPremiumCHF": 4946.4
},
{
"rank": 2,
"insurer": "CSS",
"model": "familyDoctor",
"tariffName": "Multimed",
"deductibleCHF": 2500,
"monthlyPremiumCHF": 416.2,
"annualPremiumCHF": 4994.4
}
]

Using the Actor from code and AI agents

Call it through the Apify API in any language, or expose it to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server. Example with the Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<ACTOR_ID>").call(run_input={ # Actor ID or "username/name" from the API tab
"postalCode": "8001", "ageGroup": "adult", "deductible": 2500, "accidentCover": False, "model": "telmedOrOther", "limit": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rank"], item["insurer"], item["tariffName"], item["monthlyPremiumCHF"])

Data source, accuracy and privacy

  • Source: FOPH open data Krankenversicherungsprämien / Primes de l'assurance-maladie on opendata.swiss, plus the premium-region tables from priminfo.admin.ch. The data is bundled in the Actor at build time; nothing is fetched at run time.
  • Premiums are those approved by the FOPH for the premium year. Insurers may apply supplements or discounts not reflected in the official data; always confirm with the insurer or on priminfo.admin.ch before signing.
  • Premiums for people living in the EU/EFTA (cross-border workers, pensioners) are not included in this version.
  • The Actor processes no personal data: it never receives a name, a date of birth or an address, only a postal code or municipality.

Frequently asked questions

Is this the same data as priminfo.admin.ch?

Yes. The federal premium calculator and this Actor use the same FOPH dataset. The Actor returns it as structured data instead of a web form.

When are the 2027 premiums available?

The Federal Council announces them at the end of September. A new version of the Actor with the 2027 data is published within days; set year to 2027 once it is listed in the changelog.

Can I get premiums for a whole canton in one run?

Yes: pass canton without region and the Actor returns every premium region. Combine with limit if you only need the cheapest offers.

Something looks wrong

Open an issue in the Issues tab with the input you used. Corrections to the source data itself have to go to the FOPH.

Development

Python 3.12, Apify SDK, no runtime dependencies beyond the SDK. scripts/build_dataset.py downloads the FOPH and priminfo files and writes the compact tables under data/; pytest tests checks the lookup logic against the shipped data; apify run runs the Actor locally.