Open-source project
italia/covid19-opendata-vaccini avatar
italia/covid19-opendata-vaccini

covid19-opendata-vaccini: Italy's open vaccine delivery and administration data

Open Data su consegna e somministrazione dei vaccini anti COVID-19 in Italia - Commissario straordinario per l'emergenza Covid-19

520 stars191 forksUnknownNOASSERTION

At a glance

What is it?
This repository is the Italian government's open data on COVID-19 vaccine deliveries and administrations, published by the Office of the Commissioner for the Covid-19 emergency, with 18 tables in JSON and CSV covering deliveries, administrations by region and age band, vaccine coverage, eligible populations and administration sites. It is a dataset rather than software, and the last push was on 2026-10-16.
Who is it for?
Adopt covid19-opendata-vaccini if you need a citable, government-published record of Italian COVID-19 vaccine deliveries and administrations, with region, age band, sex and date granularity, in both JSON and CSV. Do not adopt it for anything the tables do not cover, such as individual-level records, adverse events or hospital outcomes, and do not treat the latest tables as current, since the campaign-specific tables stop at the 2023-2024 campaign.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 7 days ago.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A government dataset, not an application

This repository contains the open data relating to the delivery and administration of COVID-19 vaccines across the Italian regions, and it is published under the Commissioner for the Covid-19 emergency. The topics on the repository are covid-19, covid19-data, creative-commons, opendata and vaccines.

That framing matters for what you can expect. There is no code here to run, no API to call and no service to deploy. The top-level listing is .gitignore, AUTHORS.md, Changelog.md, LICENSE.md, README.md, a dati/ directory and ministero.png, the ministry branding. The primary language is recorded as unknown, which is what you would expect from a repository whose contents are data files and documentation.

The dataset is described as split into 18 tables covering mainly the vaccine data, and the data folder holds those 18 tables in both JSON and CSV format. That dual format is the single most useful practical detail. CSV is what you load into a spreadsheet or a plotting library, and JSON is what you load into a notebook or a database without a parser, and both come from the same source, so the two never disagree.

The audience is a data analyst, a journalist or a researcher who needs an official Italian source rather than a secondary compilation. For a country of roughly twenty regions and a campaign measured in tens of millions of doses, this is a small, well-specified dataset that can be loaded and understood in an afternoon.

Eighteen tables and what each one is for

The table list is the substance of the repository, and the naming convention does most of the explaining. The tables fall into five groups.

The delivery tables cover vaccine supply. consegne-vaccini-latest holds the daily totals of vaccine deliveries split by region, and vaccini-summary-latest holds the running total of deliveries and administrations up to the present, including the percentage of administered doses against delivered doses, split by region.

The administration tables are the bulk of the dataset. somministrazioni-vaccini-latest-2020 through -2023 hold daily administration counts split by region and by the age band of the person vaccinated, one table per year. Then the campaign-specific tables take over: somministrazioni-vaccini-latest-campagna-2023-2024 and somministrazioni-vaccini-summary-latest-campagna-2023-2024 cover the 2023-2024 vaccination campaign in force from 25/09/2023. The summary variant, somministrazioni-vaccini-summary-latest, is described as covering the campaign up to 24/09/2023, which is exactly the boundary where the campaign tables take over.

The population tables describe who could be vaccinated. platea covers the vaccinable population by region or autonomous province and by age band. Then there are three booster-specific variants of the same idea: platea-3a-booster for the population targeted by a third booster dose after at least four months, or 120 days, from the second booster; platea-dose-addizionale-booster for the population completing the primary cycle at least four months earlier; and platea-second-booster for the population eligible for a second booster after at least 120 days from the first.

The coverage and recovery tables are the last group. copertura-vaccinale covers the population over 60 who had received a dose or recovered from infection in the previous four months, split by region and age band. soggetti-guariti covers the population that has recovered from Covid-19 infection. anagrafica-vaccini-summary-latest gives administration totals by age band, and punti-somministrazione-tipologia lists administration points by type for each region and autonomous province. And last-update-dataset holds the date and time of the dataset's most recent update, which is the table to read before you trust any of the others.

The field schema tells you what a row actually means

Each table has its own field list in the README, and reading them is how you avoid misinterpreting a number.

The summary table anagrafica-vaccini-summary-latest is organised around an age band, with totale as the total number of doses administered, m and f as the totals for male and female subjects by day, region and age band, and then the dose breakdown: d1 for first doses, d2 for second doses, dpi for doses given to subjects with a prior infection three to six months earlier who complete the cycle with a single dose, db1 for the additional or booster dose, dbi for booster doses given to subjects who had already completed the primary cycle with three doses after at least 120 days, and db2 for second booster doses given after at least 120 days from the previous booster.

The delivery table consegne-vaccini-latest has a different shape, and the interesting fields are the European ones. Alongside the record index, the region code, the full name of the vaccine supplier, the delivery date and the number of doses delivered that day for the region, it carries N1 and N2, the European NUTS classification at level 1 and level 2, and the ISTAT code of the region.

That NUTS and ISTAT combination is the most useful thing in the schema for anyone doing European comparisons, because it lets you join this data to other Italian or European statistics on a shared key rather than on a string name. The region field reg is the standard name of the area, with a bilingual name where one is needed.

The coverage table copertura-vaccinale is smaller and has two fields worth noting. Both guariti and the vaccinati count describe the over-60 population in the last four months, and guariti is typed as a string while vaccinati is an integer, which is an inconsistency to watch for when you load it into a typed pipeline.

Getting the data, and the date field to watch

There is no install step, because there is nothing to install. The project says to obtain the data from the dati/ folder in the repository, where the 18 tables are held in both JSON and CSV,

The practical workflow is therefore: clone the repository or fetch the tables from the portal, pick the table that matches your question, and load it. The JSON files need no schema, since the field lists in the README give you the column names and types. The CSV files need a header row and a delimiter, and the Italian field names carry over unchanged.

Two details will save you an afternoon. The first is the date convention. In the delivery table the field data_consegna is the day the delivery took place, and in the administration tables the daily counts are keyed by their own date, with separate tables per year for 2020 through 2023. If you concatenate the per-year administration tables you have to handle the fact that the year is encoded in the table name rather than in a column, and a few files may carry a trailing period or a doubled full stop in their names, for example the platea-second-booster description ends with a stray vertical bar and one of the campaign summary entries ends with two full stops.

The second is the freshness question, which the last-update-dataset table answers directly. Because the repository has no tagged releases, the most reliable way to know what state the data is in is to read that table from the same download, and to record it alongside your analysis.

What this dataset cannot answer

The limits here are the limits of the source, and they are worth stating before you build anything on it.

There is no individual-level data. Every table is aggregated, down to region and age band, and the coverage table goes no finer than an age band for the over-60 population. You cannot link a vaccination record to a person, to an address or to a health outcome, and nothing in the repository supports that.

There is no adverse event or safety data, no hospitalisation or mortality data, and no data on outcomes of any kind. The dataset measures supply and administration, which is a narrow question, and answering a different question with it means finding another source.

There is also a geography question. The tables split by region and autonomous province, and the NUTS and ISTAT fields let you join further, but there is no municipality-level or district-level data here, so any sub-regional analysis needs another dataset entirely.

Finally, the temporal picture ends where the tables end. The per-year administration tables stop at 2023, the campaign tables cover the 2023-2024 campaign from 25/09/2023, and the summary table is described as running to 24/09/2023. The repository is not archived and the last push was on 2026-10-16, so commits continue, but the dataset as described is a historical record of a campaign that has ended rather than a live feed. Anyone planning to publish a current dashboard from it should check the update table first and be prepared to find the data static.

One licence point. The topics include creative-commons, and the licence recorded for the repository is a custom one that GitHub cannot classify, with a pointer to the LICENSE.md file at the root. The actual terms are in that file, and they are what you should cite alongside the data rather than the badge in the README.

Editorial conclusion

Adopt covid19-opendata-vaccini if you need a citable, government-published record of Italian COVID-19 vaccine deliveries and administrations, with region, age band, sex and date granularity, in both JSON and CSV. Do not adopt it for anything the tables do not cover, such as individual-level records, adverse events or hospital outcomes, and do not treat the latest tables as current, since the campaign-specific tables stop at the 2023-2024 campaign. Verify first that the table you need exists in the dati/ folder, that the last-update-dataset table tells you how fresh the data is, and that the record identifier and date fields match the ones you saw in an earlier download.

Frequently asked questions

What data does the covid19-opendata-vaccini repository contain?

It contains open data on the delivery and administration of COVID-19 vaccines across the Italian regions, published by the Office of the Commissioner for the Covid-19 emergency. The dataset is split into 18 tables covering deliveries by date and region, administrations by date, region, age band, sex and category, vaccination coverage, eligible populations and administration sites, and the dati/ folder holds them in both JSON and CSV.

How do I get the Italian vaccine administration data?

The 18 tables are in the dati/ folder of the repository, in JSON and CSV format There is no install step because the project is a dataset rather than software, and the field lists for every table are documented in the README.

Which fields does the consegne-vaccini-latest table have?

It carries the record index, the region code, the full name of the vaccine supplier, the delivery date, the number of doses delivered that day for the region, the European NUTS level 1 and level 2 classifications, the ISTAT code of the region, and the standard name of the area.

How do I tell how current the covid19-opendata-vaccini data is?

The last-update-dataset table holds the date and time of the most recent dataset update, and the README lists it among the 18 tables. Because the repository publishes no tagged releases, that table is the reliable way to know what state a download is in.

What licence applies to the Italian Covid-19 vaccine open data?

The repository records a custom licence that GitHub cannot classify and points to the LICENSE.md file at the root, and the creative-commons topic is set on the project. The terms in that file are what you should cite alongside the data.

Official sources

  1. Issues
  2. italia/covid19-opendata-vaccini on GitHub
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/italia-covid19-opendata-vaccini.svg)](https://hysenlabs.com/projects/italia-covid19-opendata-vaccini)

Was this useful?