Skip to content
COVID19 case numbers Cantons of Switzerland and Principality of Liechtenstein (FL) - case numbers include persons tested in the respective area. The data is updated at best once a day (times of collection and update may vary). Start with the README.
Jupyter Notebook Python Shell JavaScript Ruby
Branch: master
Clone or download

Latest commit


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Merge pull request #347 from fabian/master Mar 31, 2020
binder Add fie listing dependencies Mar 21, 2020
dashboard Update COVID19_Fallzahlen_CH_total.csv Mar 31, 2020
fallzahlen_kanton_alter_geschlecht_csv Add today's data for Basel-Stadt Mar 31, 2020
fallzahlen_kanton_total_csv Update COVID19_Fallzahlen_Kanton_JU_total.csv from scraper Mar 31, 2020
scrapers Fix BE scraper Mar 31, 2020
scripts Merge pull request #302 from baryluk/per_canton_scripts Mar 29, 2020
.gitignore Ignore *.pyc files Mar 26, 2020
COVID19_Fallzahlen_Beispiel.csv update JU Mar 20, 2020
COVID19_Fallzahlen_CH_total.csv Update COVID19_Fallzahlen_CH_total.csv Mar 31, 2020
COVID19_Fallzahlen_Kanton_ZH_Beispiel_alter_geschlecht_.csv Update COVID19_Fallzahlen_Kanton_ZH_Beispiel_alter_geschlecht_.csv Mar 27, 2020
LICENSE Create LICENSE Mar 9, 2020
README.html Merge @baryluk scrapers into master branch Mar 22, 2020 Cumulative numbers are not carried forward Mar 31, 2020
gd.png logo with transparent bg Mar 11, 2020
logos.png Merge @baryluk scrapers into master branch Mar 22, 2020
mappingCanton_BFS.csv Update mappingCanton_BFS.csv Mar 26, 2020
package-lock.json Update node packages Mar 26, 2020
package.json Pass parameter to validate CSV Mar 29, 2020
requirements.txt Add python dependencies Mar 23, 2020
shadow_list_for_internal_purpose Update shadow_list_for_internal_purpose Mar 27, 2020
statistisches_amt_kt_zh.png Add files via upload Mar 15, 2020
visualise.ipynb Add simple notebook to visualise data Mar 21, 2020



GitHub commit Binder

SARS-CoV-2 Cases communicated by Swiss Cantons and Principality of Liechtenstein (FL)

We are providing a common official OGD dataset of SARS-CoV-2 case numbers, which are communicated by official Swiss canton's (26 cantons, abbreviations see below) and Principality of Liechtenstein's (abbreviation: FL) sources.

The infection rates refer to the infection with SARS-CoV-2, whereas the disease caused by the virus is called Covid-19.

We are providing SARS-CoV-2 case numbers in machine-readable form (CSV) as OGD resources (Open Government Data), that have been published by official sources (Cantons and FL) online. Sources are specified with the respective URL(s).

Case numbers include persons tested and treated in the respective Canton resp. Principality of Liechtenstein. Important: Since 09.03.2020, only persons who meet certain test criteria are tested (see e.g. with the Canton of Zurich "Testkriterien" at

The data is updated regularly - if available daily. Times of collection and update of the data may vary. We are specifying the date of the last reporting, and - if available - a time-stamp, too.

The data is both automatically and manually updated, and regularly checked. We are performing three times a day complete manual updates and verifications; these "roundtrips" are starting at 8am, 2pm and 8pm. They are usally completed within 60 minutes.

There is a merged file of all Cantons and FL that is automatically updated for use in data analysis.

You can get started exploring the data with visualise.ipynb (run it in your browser).

We are available to advise and support interested authorities, how to easily complete both historized data, and missing columns. You can reach us:

Data Updates

--> Check our status dashboard with the latest data updates

Note: Image below is updated every 15 minutes. Dashboard of data updates

Cantonal / FL data ressources

Canton / FL updated by data historized
FL manually yes
AG scraping yes
AI scraping yes
AR scraping yes
BE scraping yes
BL scraping yes
BS scraping yes
FR scraping yes
GE manually no
GL scraping no
GR scraping no
JU scraping no
LU scraping no
NE scraping no
NW scraping no
OW scraping no
SG scraping yes
SH scraping no
SO scraping yes
SZ scraping no
TG scraping no
TI manually yes
UR scraping yes
VD scraping yes
VS scraping yes
ZG scraping no
ZH manually yes

Data structure

The data of the Cantonal case numbers is structured as follows:


Field Name Description Format
date Date of notification YYYY-MM-DD
time Time of notification HH:MM
abbreviation_canton_and_fl Abbreviation of the reporting canton Text
ncumul_tested Reported number of tests performed as of date Number
ncumul_conf Reported number of confirmed cases as of date Number
ncumul_hosp * Reported number of hospitalised patients on date Number
ncumul_ICU * Reported number of hospitalised patients in ICUs on date Number
ncumul_vent * Reported number of patients requiring invasive ventilation on date Number
ncumul_released Reported number of patients released from hospitals or reported recovered as of date Number
ncumul_deceased Reported number of deceased as of date Number
source Source of the information href

*These variables reflect current, not cumulative numbers, even if the prefix in the column-name might suggest otherwise. Column names will not be changed to grant stability.

Note that only numbers communicated by the cantons are published in the files, i.e. it's possible that there are gaps, when a canton did not provide a certain number on a date. It's on purpose that the cumulative numbers are not carried forward if no new number is communicated.

Community Contributions

Visualization of Swiss and Cantonal Case Numbers over Time

Operations Dashboard


Many thanks for the great work!

You can’t perform that action at this time.