Cadastral parcels and map sheets for Italy as GeoParquet, one file per municipality, queryable directly over HTTP with no API key and no server. Derived from the bulk GML download of Agenzia delle Entrate and republished at each new release: over 80 million features across some 7,600 municipalities, in EPSG:6706. Geometries are unchanged from the source, known errors included. The autonomous provinces of Trento and Bolzano are not part of the source. Licence: CC BY 4.0, attribution to Agenzia delle Entrate.
Italy's cadastral parcels, as open files you can question directly.
APIs, plugins and dashboards already exist for Italy's land registry maps, and each one answers the questions its authors chose. Little is published as the data itself, in a form that leaves the next step to you. This edition is that form: the maps published by the Italian Revenue Agency (Agenzia delle Entrate), as plain files you can query directly over the internet, one municipality at a time. No API key, no account, no server in between, no list of permitted questions.
Older folders. The folders
ple/andmap/in this product are a previous version from 2025. They are no longer updated and will be deleted. Everything described on this page lives in therilascio=...folders and inanagrafica_comuni. If you use the old paths, please move to the new ones.
Contents
An API usually answers calls that someone decided in advance: this municipality, this parcel, this rectangle. A dashboard shows the views someone designed. Files leave those decisions to you.
The Agency offers two ways in. Its official web service (WFS) accepts no query by attribute: at present it only lists the features that fall inside a bounding box, so you cannot ask it for a parcel by its number. The other way is a bulk download of almost 15 GB of ZIP files nested inside each other, holding GML, a verbose text format. This edition adds the most ordinary question, show me this parcel in this municipality, at the cost of a few seconds and a few megabytes.
On a map, with nothing to install. Open the catalog in the Portolan Browser. The parcels appear after a few seconds.
With a query. You need one free program, DuckDB. Start it from a terminal by typing duckdb and paste the two blocks below. No account and no credentials are needed.
The first block goes in once per session. The data sits in a public bucket in the United States, hosted by Source Cooperative. Reading it directly is the fastest way, and it also allows wildcards. The credentials are empty on purpose: the bucket is public.
SET geometry_always_xy = true tells DuckDB that coordinates are longitude first, then latitude. Do not skip it. Depending on the version of the spatial extension, its absence either stops the query with an error or, worse, gives you a plausible but wrong area.
The second block asks which parcel is at a point in Bologna. The first condition, &&, is what makes it fast: it uses the statistics stored in the file to skip most of it. To try your own place, keep the small rectangle around your point, longitude first.
Run this query in your browser with the DuckDB web shell, with nothing to install. Each link prints what the query does and then runs it. In the shell the file address is built with format and chr(45), because links to the shell turn hyphens into spaces, and unsafe_disable_etag_checks is needed to read these files from a browser. A published release does not change, so that check is not needed here.
The answer is the sheet (foglio), the parcel number (particella) and the kind of feature (tipo): here, sheet 0188, parcel 343. For another place you only need that municipality's file. Change the name here and read its address:
Run this query in your browser
Here is one nobody prepared: the ten largest parcels with a valid geometry in Palermo.
Run this query in your browser
This one reads all the geometries of a single municipality, so it takes longer than a lookup, but no one had to prepare it.
The ideas below are possibilities that we have not carried out ourselves. Each says what you bring besides these files. None of them tells you who owns a parcel or what it is worth.
If you live there:
If you report on public administration:
particelle and see where they are and whether they touch. You bring: the list, as a table, with sezione, allegato and sviluppo where the document has them.If you work in a municipal office:
If you want a national picture, start from the table and leave the geometry alone. anagrafica_comuni is also a CSV:
non_attribuibili against oggetti.nome_diverso and provincia_diversa mark the municipalities where ISTAT, the national statistics institute, and the land registry differ.All of these assume the setup block in Try it now.
Look at a municipality. This query and the next ones read the file of Bologna. For your municipality, replace regione= and cod_catastale= in the path, and the code in the file name: anagrafica_comuni gives you all of them.
Run this query in your browser
Which municipality contains this point? Ask anagrafica_comuni first, then open only the files it names. Bounding boxes can overlap, so more than one municipality may come back.
Run this query in your browser
Area in square metres. Skip the invalid geometries, see Know the data.
Run this query in your browser
Take a piece away, to open in your GIS. This saves one map sheet on your computer as a GeoPackage, a standard geographic format.
To keep a whole municipality, use the link in url_particelle to download its file.
Many municipalities at once. Here the * stands for every municipality in the region, and filtering on cod_catastale opens only the file you need.
Asking something of a whole region or of all Italy this way means opening hundreds or thousands of files, and takes minutes. For national totals use the counts already in anagrafica_comuni.
Without the setup. Every address on this page also works in plain web form: replace s3://us-west-2.opendata.source.coop/ with https://data.source.coop/. In our tests that route took two to three times longer and was less regular, and it does not accept wildcards. Queries usually answer in a few seconds, and only a small part of each file is read.
What was tested. These examples were tested with DuckDB 2.0.0 and its spatial extension at version a3dbcd1781, and the ones with a link also in the DuckDB web shell. Older versions of DuckDB have not been tried. Other tools that read GeoParquet 2.0 should work, but we have not tried them yet. Opening the remote files directly in QGIS has not been tested: the route documented here is the exported GeoPackage.
Extension versions. There is no minimum version of the spatial extension to respect, since its versions are code identifiers and not ordered numbers: an older build (4e066c17e2) gave the same area as the current one, as long as SET geometry_always_xy = true was present. UPDATE EXTENSIONS; brings your extensions up to date; restart DuckDB afterwards.
The whole country is also available as two PMTiles files, vector tiles for web maps such as MapLibre. A page fetches only the tiles it shows, from a single file, with no tile server.
The tiles carry only the attributes in the table. To filter or measure, use the GeoParquet files. Each collection of the Portolan catalog points to these files and to a map style.
This edition shows the source as it is, so a problem you find in a shape is a problem in the source, and you can see it, count it and report it. For anything authoritative refer to the source.
The geometries are exactly those of the source, errors included. This first release changes the format and nothing else. On a sample we tried automatic correction: it can add small fragments that are not in the source, and some geometries cannot be repaired at all. So we left them as they are. About 1,900 geometries out of 87 million are invalid: lines that cross themselves, holes that stick out of their parcel, rings that do not close by about a millimetre, parcels collapsed into a line. Many tools stop with an error when they meet one: add WHERE ST_IsValid(geometry), as in the area example.
Neighbouring parcels can overlap or leave gaps. They are drawn that way in the source and are not corrected either.
A sheet and a parcel number are not always enough to identify a parcel. You may also need sezione, allegato and sviluppo, for instance when a municipality has several sections.
particelle does not contain only parcels. Roads, waters and a few other features are in the same table. Filter with tipo = 'particella' if you only want parcels. Labels beginning with Y, such as Y901, are not documented: they are in altro, and we do not know what they mean.
There is no surface column. An area has to be computed from the shape.
gml_id is not a unique key. About 12 thousand identifiers appear more than once, up to 61 times within a municipality: long roads, for example, are split into pieces that share one identifier.
The provinces are not the current ones. The land registry still uses an older arrangement, and the column provincia in the files reflects it. About 300 municipalities differ from ISTAT: looking for provincia = 'FM' (Fermo) finds nothing, because those municipalities are filed under AP. To work with current provinces, take the codes from anagrafica_comuni, in the column sigla_istat, and use cod_catastale to reach the files.
One municipality has features far away. Some features of Sestu, in Sardinia, are placed in the sea beyond the Italian peninsula, so its bounding box is unreasonably large. It is an error in the source.
We will report these problems to the Agency. If you find another one, write to info@ondata.it with the municipality, the sheet and the parcel.
There is one file per municipality for each dataset, typically from a few hundred kilobytes to a few megabytes (the largest, Rome, is about 55 MB), about 12 GB in all.
The source republishes the whole archive periodically and this product follows. Many figures on this page are rounded. Exact counts per municipality are in anagrafica_comuni.
Coverage. 7,602 municipalities have data. Besides Trento and Bolzano (about 280 municipalities), 10 municipalities are missing from the source's archives in this release. anagrafica_comuni lists every current municipality and shows which ones have data, in the column presente_nel_catasto.
Three things to notice:
rilascio means release). anagrafica_comuni always stays at the same address and points to the latest release.cod_catastale is the code the land registry gives each municipality (also known as the Belfiore code: Palermo is G273). If you don't know it, look it up in anagrafica_comuni.name=value become columns in tools that understand them. Filtering on cod_catastale makes the tool open only that municipality's file, which is much faster than looking inside all of them: in a test across the 391 Sicilian files, 5 seconds against 70.GeoParquet files are tables where each row has a geometry, stored so that a program can read only the part it needs. Coordinates are EPSG:6706 (RDN2008), the Italian official reference system, close to the GPS coordinates you know. Inside each file, features are sorted by position, so that nearby parcels are stored together.
These are the tools that produced what is published here.
This dataset is also described by a Portolan catalog. Portolan is an open specification and toolkit for publishing geospatial data as plain files in cloud storage, with no servers, databases or custom APIs. A catalog is a small set of STAC JSON files, the metadata standard for spatial collections, next to documents for people and AI agents. It says what the collections are, where the files live and how to draw them. You do not need any Portolan software to use it.
The entry point is https://data.source.coop/ondata/cadastral-italy-geospatial-data/catalog.json.
It has two collections, particelle (parcels) and fogli (map sheets). Each one has a collection.json that points to the GeoParquet files of the latest release and to the national PMTiles for web maps, plus a map style, a thumbnail, a README and an AGENTS.md with the setup and pitfalls for AI agents.
Find the files from a script. The path of the GeoParquet files is in the partition:glob field. It works in DuckDB after the setup shown in Try it now.
Read it with Python, using PySTAC:
Ask an AI agent. Point it at AGENTS.md and ask your question.
References: Introducing Portolan, the specification, the command-line tool.
The published files are also described as an API, in an OpenAPI 3.1 document: https://data.source.coop/ondata/cadastral-italy-geospatial-data/openapi.yml.
There is no server behind it. Every path in the document is a file, read with a plain GET or with HTTP Range requests to fetch only a part of it. Parameters choose the file and do not filter its content: to filter by sheet, parcel or area, query the Parquet files as shown in Try it now and More queries. It is a static description, not a live API: nothing answers a query. An AI agent given this document should still be able to read it and work out which file to open.
The eight operations cover this README, the OpenAPI document itself, anagrafica_comuni as Parquet and CSV, the GeoParquet files of one municipality (parcels and map sheets) and the two national PMTiles.
See it in a browser. Open it in Swagger UI, or load the URL into any OpenAPI client.
Call it. A file's path contains the region as well as the municipality code, and anagrafica_comuni gives you both. This call reads the first four bytes of the parcels of Bologna, A944, and returns PAR1:
Columns in capitals come from the source unchanged, the others have been added.
particelle and fogli have these in common:
particelle also has:
fogli also has NATIONALCADASTRALZONINGREFERENCE, BEGINLIFESPANVERSION, LEVEL, LEVELNAME, LEVELNAME_LOCALE and ORIGINALMAPSCALEDENOMINATOR, from the source. When a sheet has allegato equal to Q, it is a map that joins the edges of several sheets.
anagrafica_comuni has the codes and names from ISTAT, next to those of the land registry (comune_istat and nome_catasto, sigla_istat and provincia_catasto), with nome_diverso and provincia_diversa marking where they disagree. Then the counts per municipality (oggetti, particelle, strade, acque, non_attribuibili, altro, fogli), the bounding box (xmin, ymin, xmax, ymax), rilascio and the two links, url_particelle and url_fogli.
Conversion of the regional archives of Cartografia catastale published by Agenzia delle Entrate (metadata record), release of 23 September 2026, the date of the source archives, also stored in the metadata of every file.
No feature has been removed and no geometry modified. Added to the source are the columns described in Columns, derived from the reference code, the labels and the names of the source archives. Removed are only the source's technical columns OGC_FID, lowerCorner and upperCorner. The field ENDLIFESPANVERSION of the sheets does not appear because it is always empty in the source.
The list of municipalities comes from ISTAT, through its SITUAS service.
CC BY 4.0, Creative Commons Attribution 4.0 International. You may share and adapt this data, including commercially, as long as you give credit. It is the licence the source declares in its metadata.
Source: Agenzia delle Entrate, cartografia catastale. Municipalities: ISTAT, SITUAS. Republished by onData APS.
Suggested citation:
Agenzia delle Entrate, cartografia catastale, release of 23 September 2026. GeoParquet edition published by onData on Source Cooperative, CC BY 4.0.
Thanks to Salvatore Fiandaca and Giambattista Vitrano for their support of this project.
| uploaded the files to Source Cooperative |
rilascio| from the folder names, not stored in the file |