๐ŸŒ๐Ÿ’‰ Global COVID-19 vaccination data at the regional level.

Overview

Subnational COVID-19 vaccination data

API | Download data | GitHub

refresh GitHub last commit Website link! API link!

Follow @sociepy

Star

Fork

COVID-19 vaccination data at subnational level. To ensure its officiality, the source data is carefully verified.

All country data can be found in a single csv file. If you are interested in indiviual country data, you may want to check countries folder.

Additionally, we provide a static API endpoint, which contains the data per country as JSONs. For more details check here.

Thanks to

This project is inspired by wonderful project owid/covid-19-data, adopting some of its structure, and is open to integration if deemed appropriate. In addition, thanks to all of the people involved in the different source data initiatives.

Content

Data sources

This project wouldn't be possible without the great resources available online.

Country Source 2-Dose Last update
๐Ÿ‡น๐Ÿ‡ท Turkey https://covid19asi.saglik.gov.tr/ โœ… 2021-02-17
๐Ÿ‡ต๐Ÿ‡ช Peru https://www.gob.pe/minsa/ โŒ 2021-02-17
๐Ÿ‡ณ๐Ÿ‡ด Norway https://www.fhi.no/sv/vaksine/koronavaksinasjonsprogrammet/koronavaksinasjonsstatistikk/ โœ… 2021-02-17
๐Ÿ‡ฉ๐Ÿ‡ช Germany https://github.com/mathiasbynens/covid-19-vaccinations-germany/ โœ… 2021-02-16
๐Ÿ‡บ๐Ÿ‡ธ United States https://github.com/youyanggu/covid19-cdc-vaccination-data โœ… 2021-02-16
๐Ÿ‡ช๐Ÿ‡ธ Spain https://github.com/civio/covid-vaccination-spain/ โœ… 2021-02-16
๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia https://github.com/Institut-Zdravotnych-Analyz/covid19-data/ โœ… 2021-02-16
๐Ÿ‡ฆ๐Ÿ‡ท Argentina http://datos.salud.gob.ar/dataset/vacunas-contra-covid-19-dosis-aplicadas-en-la-republica-argentina โœ… 2021-02-16
๐Ÿ‡ฎ๐Ÿ‡ณ India https://india-covid19vaccine.github.io โœ… 2021-02-16
๐Ÿ‡ง๐Ÿ‡ช Belgium https://covid-vaccinatie.be/en โœ… 2021-02-16
๐Ÿ‡จ๐Ÿ‡ฟ Czechia https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19/ โœ… 2021-02-16
๐Ÿ‡จ๐Ÿ‡ฑ Chile https://github.com/juancri/covid19-vaccination/ โœ… 2021-02-16
๐Ÿ‡จ๐Ÿ‡ฆ Canada https://github.com/ccodwg/Covid19Canada โœ… 2021-02-16
๐Ÿ‡ง๐Ÿ‡ท Brazil https://github.com/wcota/covid19br/ โœ… 2021-02-16
๐Ÿ‡ฆ๐Ÿ‡น Austria https://info.gesundheitsministerium.gv.at/ โœ… 2021-02-16
๐Ÿ‡ฎ๐Ÿ‡น Italy https://github.com/italia/covid19-opendata-vaccini/ โœ… 2021-02-16
๐Ÿ‡ซ๐Ÿ‡ท France https://www.data.gouv.fr/fr/datasets/donnees-relatives-aux-personnes-vaccinees-contre-la-covid-19-1/ โœ… 2021-02-15
๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark https://covid19.ssi.dk/overvagningsdata/vaccinationstilslutning โœ… 2021-02-15
๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom https://coronavirus.data.gov.uk/details/download โœ… 2021-02-15
๐Ÿ‡จ๐Ÿ‡ญ Switzerland https://github.com/rsalzer/COVID_19_VACC/ โŒ 2021-02-14
๐Ÿ‡ต๐Ÿ‡ฑ Poland https://www.gov.pl/web/szczepimysie/raport-szczepien-przeciwko-covid-19 โœ… 2021-02-11
๐Ÿ‡ธ๐Ÿ‡ช Sweden https://www.folkhalsomyndigheten.se/smittskydd-beredskap/utbrott/aktuella-utbrott/covid-19/vaccination-mot-covid-19/statistik/statistik-over-registrerade-vaccinationer-covid-19/ โœ… 2021-02-07

Data format

The data pretends to resemble the API proposed by owid/covid-19-data. Find below the field description, mainly provided by OWID.

Field Description
location Name of the country.
region Name of the subnational region of the country.
date Date of the observation.
location_iso ISO 3166-1 country codes (XX)
region_iso ISO 3166-2 region codes (XX-YY or XX-YYY).
total_vaccinations Total number of doses administered. This is counted as a single dose, and may not equal the total number of people vaccinated, depending on the specific dose regime (e.g. people receive multiple doses). If a person receives one dose of the vaccine, this metric goes up by 1. If they receive a second dose, it goes up by 1 again.
people_vaccinated Total number of people who received at least one vaccine dose. If a person receives the first dose of a 2-dose vaccine, this metric goes up by 1. If they receive the second dose, the metric stays the same.
people_fully_vaccinated Total number of people who received all doses prescribed by the vaccination protocol. If a person receives the first dose of a 2-dose vaccine, this metric stays the same. If they receive the second dose, the metric goes up by 1.
total_vaccinations_per_100 total_vaccinations per 100 habitants.
people_vaccinated_per_100 people_vaccinated per 100 habitants.
people_fully_vaccinated_per_100 people_fully_vaccinated per 100 habitants.

Note: for people_vaccinated and people_fully_vaccinated we are dependent on the necessary data being made available, so we may not be able to make these metrics available for some countries.

Contribute

The updates are done using update_all.sh script. For more details on the scripts being used, check here.

Set up environment

Install the package:

$ pip install -e .

Execute update

$ bash scripts/update_all.sh

Add new countries

If you know of any reference publishing vaccination regional data for other countries, your contribution is very much appreciated! It is extremely helpfull if you could report this in the issues. Also, if you feel like automating it by yourself (that'd be awesome!), please fork this repository and issue a pull request with your changes.

The country scraping logic lives within the package module, specifically in covid_updater.scraping. More details to be added here soon.

Bugs

We do our best to ensure that the data is reliable. However, as the project grows and source website change their format, some bugs might appear. If you detect any, please report this in the issues section.

Documentation

See documentation (WIP ๐Ÿšง )

License

See LICENSE.

This site or product includes IP2Locationโ„ข ISO 3166-2 Subdivision Code which available from https://www.ip2location.com.

Comments
  • Uruguay, alternative data source

    Uruguay, alternative data source

    In the case of Uruguay, you can take the information from the following repository: https://github.com/3dgiordano/covid-19-uy-vacc-data/blob/main/data/Uruguay.csv

    The same repository that is used in OWID for its data. I added columns to reflect the sub-national data in the last few weeks.

    If you want to migrate, the actual column format is total_[sub_id] where [sub_id] is the identification of the ISO format region in lowercase. Example: total_ar is total_vaccinations of UY-AR

    In the next week I hope to resolve the data for people_vaccinated and people_fully_vaccinated. I will notify you when it is available.

    enhancement help wanted 2-dose 
    opened by 3dgiordano 8
  • same dates are appearing twice for some states in API for India

    same dates are appearing twice for some states in API for India

    Same dates are occurring twice for states such as IN-BR, IN-GJ and IN-KA in API for India. (not sure about other countries)

    Example

    {
                "region_iso": "IN-KA",
                "region_name": "Karnataka",
                "data": [
                    {
                        "date": "2021-01-16",
                        "total_vaccinations": 13594,
                        "total_vaccinations_per_100": 0.02
                    },
                    {
                        "date": "2021-01-16",
                        "total_vaccinations": 13594,
                        "total_vaccinations_per_100": 0.02
                    },
                    {
                        "date": "2021-01-17",
                        "total_vaccinations": 29504,
                        "total_vaccinations_per_100": 0.05
                    },
                    {
                        "date": "2021-01-17",
                        "total_vaccinations": 29504,
                        "total_vaccinations_per_100": 0.05
                    },
                    {
                        "date": "2021-01-18",
                        "total_vaccinations": 66392,
                        "total_vaccinations_per_100": 0.11
                    },
                    {
                        "date": "2021-01-18",
                        "total_vaccinations": 66392,
                        "total_vaccinations_per_100": 0.11
                    }
                ]
    }
    
    bug 
    opened by sanyam-git 7
  • Heads-up: structure of upstream data for Germany changed

    Heads-up: structure of upstream data for Germany changed

    Due to upstream changes, we had to change our data structure a bit: https://github.com/mathiasbynens/covid-19-vaccinations-germany/blob/main/data/data.csv

    • All columns with the first prefix have been renamed to initial, e.g. firstDosesCumulative โ†’ initialDosesCumulative.
    • All columns with the second prefix have been renamed to final, e.g. secondDosesCumulative โ†’ finalDosesCumulative
    • New columns are added for J&J vaccinations (but I think this part doesnโ€™t affect your project).
    opened by mathiasbynens 5
  • Enhanced reporting France

    Enhanced reporting France

    The initial source is discontinued and current data is found here: https://www.data.gouv.fr/fr/datasets/donnees-relatives-aux-personnes-vaccinees-contre-la-covid-19-1/#_

    Specifically:

    • 1st dose: https://www.data.gouv.fr/fr/datasets/r/735b0df8-51b4-4dd2-8a2d-8e46d77d60d8
    • 2nd dose: https://www.data.gouv.fr/fr/datasets/r/96db2c1a-8c0c-413c-9a07-f6f62f3d4daf

    Watch out for the column names: they are the same, but the descriptions of the files mention 1st and 2nd.

    Current sourcehas been discontinued otherwise.

    enhancement 2-dose 
    opened by hef-abd 5
  • Cumulative quantities not really cumulative ?

    Cumulative quantities not really cumulative ?

    Hi - Taking Canada as an example in the shot below: the timeseries is not continuously increasing as one would expect from a cumulative timeseries. It does not correspond neither to a daily (or "new") number as the latest figures are pretty close to the total vaccinations (just below 1 million people).

    I observed this for a lot of countries: USA, Italy, Czechia, ...

    image

    bug 
    opened by hef-abd 4
  • NaN returns invalid JSON

    NaN returns invalid JSON

    I am building out a GraphQL Server with StepZen and the query https://sociepy.org/covid19-vaccination-subnational/data/api/v1/latest/country_by_iso/FR.json breaks due to a NaN value rather than null value in total_vaccinations_per_100.

    // Response from RestAPI

            {
                "region_name": "Corse",
                "region_iso": "FR-COR",
                "date": "2021-02-22",
                "total_vaccinations": 27059,
                "total_vaccinations_per_100": NaN
            },
    

    GraphQL Query

      vaccines(countryISO: "FR") {
      country
      }
    

    Response Error

    {
      "data": {
        "vaccines": null
      },
      "errors": [
        {
          "message": "Invalid json content.: invalid character 'N' looking for beginning of value",
          "locations": [
            {
              "line": 58,
              "column": 3
            }
          ],
          "path": [
            "vaccines"
          ]
        }
      ]
    }
    
    bug 
    opened by SamuelGHill 3
  • Have you looked into Wikidata and administrative divisions by country

    Have you looked into Wikidata and administrative divisions by country

    opened by salgo60 3
  • Data for Ukraine ๐Ÿ‡บ๐Ÿ‡ฆ

    Data for Ukraine ๐Ÿ‡บ๐Ÿ‡ฆ

    Thanks for making that project!

    There's an official live dashboard for the Ukrainian vaccination process: https://health-security.rnbo.gov.ua/vaccination

    It uses data from an open API endpoint: https://health-security.rnbo.gov.ua/api/vaccination/process/map?distributionBy=vaccine&vaccines=&dose=1&date=2021-04-27

    I'd gladly help writing a scrapper by myself, but I'm not particularly strong in Python. Nevertheless, I can help by answering possible questions.

    I'll ask some folks on Twitter for help with writing a scrapper for that API.

    missing data 
    opened by denysdovhan 2
  • Make changes to data scraper for India

    Make changes to data scraper for India

    I have made the changes as mentioned here. You can make the changes to the project w.r.t this.

    I have made both state_timeline.json and state_timeline.csv as per the new structure, you can use whatever best suits.

    2-dose 
    opened by sanyam-git 2
  • changing the key values

    changing the key values

    the variable names in the source are changed as per 26 April.

    Currently in the repo the data is till 24 April and the website is providing data for 26 April, data for 25th April is missing. I tried looking for it, but was not able to find any older datasets on the website. If you are free you can look into it !

    opened by sanyam-git 1
  • Add Peru to dataset

    Add Peru to dataset

    source: https://es.wikipedia.org/wiki/Departamentos_del_Per%C3%BA

    Map department ids (https://es.wikipedia.org/wiki/Departamentos_del_Per%C3%BA) to ISO-3166-2 codes.

    missing data 
    opened by lucasrodes 1
  • Heads-up: data for Germany now includes Bundeswehr data

    Heads-up: data for Germany now includes Bundeswehr data

    The RKI reports vaccinations that are administered by the Bundeswehr: https://en.wikipedia.org/wiki/Bundeswehr This is not a German state! But itโ€™s still important to count these vaccinations towards the national total.

    The upstream CSV now includes entries with state == 'Bundeswehr'. (Previously this was stored as a separate file, but this increasingly made less and less sense since RKI is reporting it as if it was a state.)

    Importantly, Bundeswehr entries lack any percentage metrics, since there is no known total population. Only absolute numbers are included.

    Iโ€™m not sure if you want to include these entries in your data. If you do, we should probably add a new entry to https://github.com/sociepy/covid19-vaccination-subnational/blob/56cd475dd43a34a331ede1328683d7923bb7cc58/scripts/create_iso_db.py#L20.

    enhancement missing data 
    opened by mathiasbynens 0
  • Replace source for India

    Replace source for India

    I will not be able to maintain the source.

    This seems to be best fit https://github.com/covid19india/api/blob/gh-pages/csv/latest/cowin_vaccine_data_statewise.csv for replacement.

    enhancement missing data 
    opened by sanyam-git 1
  • Add a new source for switzerland

    Add a new source for switzerland

    The current source for Switzerland is not updated any more after 6th April (as mentioned in the readme).

    You can use the primary source : https://www.covid19.admin.ch/en/epidemiologic/vacc-doses instead.

    good first issue missing data 
    opened by sanyam-git 0
  • Add Greece ๐Ÿ‡ฌ๐Ÿ‡ท

    Add Greece ๐Ÿ‡ฌ๐Ÿ‡ท

    Official data source: https://emvolio.gov.gr/vaccinationtracker Script example: https://github.com/balikasg/covid19-vaccine-greece/blob/main/export_csv.py (another project)

    new-country 
    opened by lucasrodes 0
Owner
sociepy
Collaborative data science projects linked to social, environmental analysis and open data ๐ŸŒ๐Ÿƒ๐Ÿ“Š
sociepy
๐Ÿฆ  A simple and fast (< 200ms) API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak.

?? A simple and fast (< 200ms) API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak. It's written in python using the ?? FastAPI framework. Supports multiple sources!

Marius 1.6k Jan 4, 2023
Ontario-Covid-Screening - An automated Covid-19 School Screening Tool for Ontario

Ontario-Covid19-Screening An automated Covid-19 School Screening Tool for Ontari

Rayan K 0 Feb 20, 2022
A Pythonic Data Catalog powered by Ray that brings exabyte-level scalability and fast, ACID-compliant, change-data-capture to your big data workloads.

DeltaCAT DeltaCAT is a Pythonic Data Catalog powered by Ray. Its data storage model allows you to define and manage fast, scalable, ACID-compliant dat

null 45 Oct 15, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
Hook and simulate global keyboard events on Windows and Linux.

keyboard Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.

BoppreH 3.2k Jan 1, 2023
This is the accompanying repository for the Bloomberg Global Coal Countdown website.

This is the accompanying repository for the Bloomberg Global Coal Countdown (BGCC) website. Data Sources Dashboard Data Schema and Validation License

null 7 Jun 1, 2022
These are the scripts used for the project of โ€˜Assembly of a pan-genome for global cattle reveals missing sequence and novel structural variation, providing new insights into their diversity and evolution historyโ€™

script-SV-genotyping These are the scripts used for the project of โ€˜Assembly of a pan-genome for global cattle reveals missing sequence and novel stru

null 2 Aug 26, 2022
To check my COVID-19 vaccine appointment, I wrote an infinite loop that sends me a Whatsapp message hourly using Twilio and Selenium. It works on my Raspberry Pi computer.

COVID-19_vaccine_appointment To check my COVID-19 vaccine appointment, I wrote an infinite loop that sends me a Whatsapp message hourly using Twilio a

Ayyuce Demirbas 24 Dec 17, 2022
Repositorio com arquivos processados da CPI da COVID para facilitar analise

cpi4all Repositorio com arquivos processados da CPI da COVID para facilitar analise Organizaรงรฃo No site do senado รฉ possivel encontrar a lista de todo

Breno Rodrigues Guimarรฃes 12 Aug 16, 2021
Check COVID locations of interest against Google location history

Location of Interest Checker Script to compare COVID locations of interest to Google location history. The script produces a map plot (as shown below)

null 9 Mar 30, 2022
COVID-19 case tracker in Dash

covid_dashy_personal This is a personal project to build a simple COVID-19 tracker for Australia with Dash. Key functions of this dashy will be to Dis

Jansen Zhang 1 Nov 30, 2021
Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede)

Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede). This API creates an interface with the official browser, with more useful functionalities.

Guglielmo Camporese 4 Dec 24, 2021
We are building an open database of COVID-19 cases with chest X-ray or CT images.

?? Note: please do not claim diagnostic performance of a model without a clinical study! This is not a kaggle competition dataset. Please read this pa

Joseph Paul Cohen 2.9k Dec 30, 2022
Python NZ COVID Pass Verifier/Generator

Python NZ COVID Pass Verifier/Generator This is quick proof of concept verifier I coded up in a few hours using various libraries to parse and generat

NZ COVID Pass Community 12 Jan 3, 2023
Alerts for Western Australian Covid-19 exposure locations via email and Slack

WA Covid Mailer Sends alerts from Healthy WA's Covid19 Exposure Locations via email and slack. Setup Edit the configuration items in wacovidmailer.py

null 13 Mar 29, 2022
Covid-19-Trends - A project that me and my friends created as the CSC110 Final Project at UofT

Covid-19-Trends Introduction The COVID-19 pandemic has caused severe financial s

null 1 Jan 7, 2022
Vaksina - Vaksina COVID QR Validation Checker With Python

Vaksina COVID QR Validation Checker Vaksina is a general purpose library intende

Michael Casadevall 33 Aug 20, 2022
Ontario-Covid19-Screening - An automated Covid-19 School Screening Tool for Ontario

Ontario-Covid19-Screening An automated Covid-19 School Screening Tool for Ontari

Rayan K 0 Feb 20, 2022
This is an online course where you can learn and master the skill of low-level performance analysis and tuning.

Performance Ninja Class This is an online course where you can learn to find and fix low-level performance issues, for example CPU cache misses and br

Denis Bakhvalov 1.2k Dec 30, 2022