All cadastral data and property owners in Italy
Access all information on buildings, land and owners in real time
All the knowledge you need
Here you can find some advice to consider to approach this API. If you prefer, we provide code samples, OAS3 documentation, the ability to try the API live via the Swagger UI or import the entire collection into Postman. We also offer a Sandbox environment where you can experiment with all kinds of requests completely free of charge.
Get the token in the appropriate section before you start.
- Oas file url https://console.openapi.com/oas/en/catasto.openapi.json
- Fork or import with Postman
- Production domain catasto.openapi.it
- Sandbox domain test.catasto.openapi.it
- Production Scopes 6
-
Sandbox Scopes 6
- POST test.catasto.openapi.it/richiesta
- GET test.catasto.openapi.it/territorio
- GET test.catasto.openapi.it/indirizzo
- GET test.catasto.openapi.it/richiesta
- POST test.catasto.openapi.it/visura_catastale
- GET test.catasto.openapi.it/visura_catastale
Catasto (1.0.0)
Web service that allows you to consult the land and buildings cadastre of the Italian territory.
Methods that allows you to consult provinces, municipalities and sections of the Italian territory
Allows you to consult the Italian territory
This method allows you to see all the provinces of Italy; if the tipo_catasto is not passed, the buildings database is shown.
Authorizations:
query Parameters
tipo_catasto | string Enum: "T" "F" Example: tipo_catasto=F cadastre type; F for buildings, T for land |
Responses
Response Schema: application/json
Array of objects | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/territorio?tipo_catasto=F"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": [
- {
- "provincia": "GE",
- "nome_provincia": "GENOVA",
- "id": "60c9cc8f24a66c54f04c6df2"
- {
- "provincia": "AV",
- "nome_provincia": "AVELLINO",
- "id": "60c9d49517d4af446c1af7b2"
- {
- "provincia": "BI",
- "nome_provincia": "BIELLA",
- "id": "60c9d64b85f9e932be303783"
- {
- "provincia": "CN",
- "nome_provincia": "CUNEO",
- "id": "60c9f3a26a0e5632ea37e0d4"
- "success": true,
- "message": "",
- "error": null
Detail of the province
Allows you to see the detail of the province with the municipalities; if the tipo_catasto is not passed, the buildings database is shown.
Authorizations:
path Parameters
provincia_or_nome_provincia_or_id required | string Example: TR Province, province name or id |
query Parameters
tipo_catasto | string Enum: "T" "F" Example: tipo_catasto=F cadastre type; F for buildings, T for land |
Responses
Response Schema: application/json
Array of objects (Provincia) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/territorio/%7Bprovincia_or_nome_provincia_or_id%7D?tipo_catasto=F"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": {
- "provincia": "TR",
- "nome_provincia": "TERNI",
- "comuni": [
- {
- "comune": "ACQUASPARTA",
- "sezioni": null,
- "codice_catastale": "A045"
- {
- "comune": "ALLERONA",
- "sezioni": null,
- "codice_catastale": "A207"
- {
- "comune": "ALVIANO",
- "sezioni": null,
- "codice_catastale": "A242"
- {
- "comune": "AMELIA",
- "sezioni": null,
- "codice_catastale": "A262"
- {
- "comune": "STRONCONE",
- "sezioni": null,
- "codice_catastale": "I981"
- {
- "comune": "TERNI",
- "sezioni": null,
- "codice_catastale": "L117"
- "id": "60ca2d837e1f2f6f3a2bfd42"
- "success": true,
- "message": "",
- "error": null
Detail of the municipality
Allows you to see the detail of the municipality; if the tipo_catasto is not passed, the buildings database is shown.
Authorizations:
path Parameters
provincia_or_nome_provincia_or_id required | string Example: TR Province, province name or id |
comune required | string Example: TERNI City name |
query Parameters
tipo_catasto | string Enum: "T" "F" Example: tipo_catasto=F cadastre type; F for buildings, T for land |
Responses
Response Schema: application/json
Array of objects (Provincia) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/territorio/%7Bprovincia_or_nome_provincia_or_id%7D/%7Bcomune%7D?tipo_catasto=F"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": {
- "provincia": "TR",
- "nome_provincia": "TERNI",
- "comuni": [
- {
- "comune": "TERNI",
- "sezioni": null,
- "codice_catastale": "L117"
- "id": "60ca2d837e1f2f6f3a2bfd42"
- "success": true,
- "message": "",
- "error": null
Methods that allow you to create and view a request for information regarding buildings or land to the land registry
Creates a request
This method allows you to create a request to receive information on subjects and properties in the Italian land registry
Authorizations:
path Parameters
endpoint required | string Enum: "elenco_immobili" "prospetto_catastale" "ricerca_persona" "ricerca_nazionale" "indirizzo" Type of service requested |
Request Body schema: application/json
object (Callback) | |
tipo_catasto required | string Enum: "T" "F" |
provincia required | string |
comune required | string |
sezione | string |
sezione_urbana | string |
required | string or integer |
required | string or integer |
Responses
Response Schema: application/json
object (Richiesta) | |
success | boolean |
message | string |
error | integer |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "tipo_catasto": "F",
- "provincia": "RM",
- "comune": "ROMA",
- "sezione": "",
- "foglio": "872",
- "particella": "405"
Response samples
- 200
- 400
- 402
- 406
- 428
- "data": {
- "endpoint": "elenco_immobili",
- "stato": "evasa",
- "callback": false,
- "parametri": {
- "tipo_catasto": "F",
- "provincia": "ROMA Territorio-RM",
- "comune": "H501#ROMA#4#0",
- "sezione": null,
- "sezione_urbana": null,
- "foglio": 872,
- "particella": 405
- "risultato": {
- "immobili": [
- {
- "sezione_urbana": null,
- "foglio": 872,
- "particella": 405,
- "subalterno": 3,
- "indirizzo": "ROMA VIALE FILIPPO TOMMASO MARINETTI, SNC Piano S2 int. 1",
- "sezione": null,
- "zona_censuaria": "6",
- "categoria": "C/6",
- "classe": "13",
- "consistenza": "23 mq",
- "rendita": "Euro:108,09",
- "partita": "",
- "id_immobile": "MTY1NjcyOCMxNjU2NzI4I0YjODcyIzQwNSNINTAxIzIyNTkyNjkjNDgjICNST01B"
- {
- "sezione_urbana": null,
- "foglio": 872,
- "particella": 405,
- "subalterno": 48,
- "indirizzo": "ROMA VIALE FILIPPO TOMMASO MARINETTI, SNC Piano 3 int. 6",
- "sezione": null,
- "zona_censuaria": "6",
- "categoria": "A/10",
- "classe": "1",
- "consistenza": "3,5 vani",
- "rendita": "Euro:2.566,79",
- "partita": "2259269",
- "id_immobile": "IRD1NjcyOCMxNjU2NzI4I0YjODcyIzQwHTYYNTAxIzIyNTkyNjkjNDgjICNST01B"
- "esito": "OK",
- "timestamp": 1625232029,
- "id": "60e581c58138e80d804dad20"
- "success": true,
- "message": "",
- "error": null
Extracts all requests
This method allows you to see all the requests you have made
Authorizations:
Responses
Response Schema: application/json
Array of objects (Richieste) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/richiesta"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": [
- {
- "id": "60e584d6a280fd2c0a05fbe5",
- "endpoint": "elenco_immobili",
- "stato": "evasa",
- "timestamp": 1625654486,
- "owner": "[email protected]"
- {
- "id": "60e581c58138e80d804dad20",
- "endpoint": "indirizzo",
- "stato": "evasa",
- "timestamp": 1625653701,
- "owner": "[email protected]"
- {
- "id": "60e580f1617b512c3450d3c7",
- "endpoint": "ricerca_nazionale_pg",
- "stato": "evasa",
- "timestamp": 1625653489,
- "owner": "[email protected]"
- "success": true,
- "message": "",
- "error": null
Detail of the request
Allows you to see the detail of the request identified by the id
Authorizations:
path Parameters
id required | string Example: 60e580f1617b512c3450d3c7 Request id |
Responses
Response Schema: application/json
object (Richiesta) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/richiesta/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 400
- 404
- "data": {
- "endpoint": "ricerca_nazionale_pg",
- "stato": "evasa",
- "callback": false,
- "parametri": {
- "cf_piva": "12485671007",
- "tipo_catasto": "TF",
- "provincia": "NAZIONALE-IT"
- "risultato": {
- "soggetti": [
- {
- "denominazione": "OPENAPI SRL",
- "sede": "ROMA (RM)",
- "cf": "12485671007",
- "id_soggetto": "OTgwMzI3NTA1MiMwI0FMVFJBVklBIFNFUlZJWkkgU09DSUVUQScgQSBSRVNQT05TQUJJTElUQScgTElNSVRBVEEjUk9NQSAoUk0pIzEyNDg1NjcxMDA3",
- "catasti": [
- {
- "citta": "ROMA",
- "fabbricati": 1,
- "terreni": 0
- "esito": "OK",
- "timestamp": 1625232029,
- "id": "60e580f1617b512c3450d3c7"
- "success": true,
- "message": "",
- "error": null
Search for an address
Allows you to extract the id_indirizzo through a search, which will then serve as a parameter for the POST/richiesta/indirizzo
Authorizations:
query Parameters
provincia required | string Example: provincia=TR Province |
comune required | string Example: comune=TERNI City |
sezione | string Example: sezione=Q Section of the city if it is present |
indirizzo required | string Example: indirizzo=del rivo Address searched; enter only the address and not the toponym |
Responses
Response Schema: application/json
object | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/indirizzo?provincia=TR&comune=TERNI&sezione=Q&indirizzo=del%20rivo"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 406
- 412
- 428
- "data": {
- "indirizzi": [
- {
- "id_indirizzo": "MjUwNSMyMzYjVklBIERFTCBSSVZP",
- "indirizzo": "VIA DEL RIVO"
- "success": true,
- "message": "",
- "error": null
Creates a request
This method allows you to create a request to obtain a visura catastale
Authorizations:
Request Body schema: application/json
entita required | string Value: "immobile" |
id_immobile required | string |
tipo_visura required | string Enum: "ordinaria" "storica" |
richiedente | string |
object (Callback) |
Responses
Response Schema: application/json
object (Visura) | |
success | boolean |
message | string |
error | integer |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "entita": "immobile",
- "id_immobile": "MTY1NjcyOCMxNjU2NzI4I0YjODcyIzQwNSNINTAxIzIyNTkyNjkjNDgjICNST01B",
- "tipo_visura": "ordinaria",
- "richiedente": "jane doe"
Response samples
- 200
- 402
- 406
- 428
- "data": {
- "entita": "immobile",
- "stato": "in_erogazione",
- "callback": false,
- "parametri": {
- "id_immobile": "MTY1NjcyOCMxNjU2NzI4I0YjODcyIzQwNSNINTAxIzIyNTkyNjkjNDgjICNST01B",
- "tipo_catasto": "F",
- "foglio": 872,
- "particella": 405,
- "subalterno": 48,
- "comune": "H501#ROMA#4#0",
- "sezione": null,
- "sezione_urbana": null,
- "provincia": "ROMA Territorio-RM"
- "tipo_visura": "ordinaria",
- "richiedente": "jane doe",
- "documento": null,
- "esito": null,
- "timestamp": 1653489879,
- "id": "628e40d77ee3b06fb03350ca"
- "success": true,
- "message": "",
- "error": null
Extracts all visure
This method allows you to see all the visure you have made
Authorizations:
Responses
Response Schema: application/json
Array of objects (Visure) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/visura_catastale"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": [
- {
- "id": "628e41900e304d63044f857d",
- "entita": "soggetto",
- "stato": "in_erogazione",
- "timestamp": 1653490064,
- "owner": "[email protected]"
- {
- "id": "628e40d77ee3b06fb03350ca",
- "entita": "immobile",
- "stato": "in_erogazione",
- "timestamp": 1653489879,
- "owner": "[email protected]"
- "success": true,
- "message": "",
- "error": null
Detail of the visura
Allows you to see the detail of the visura identified by the id
Authorizations:
path Parameters
id required | string Example: 628e41900e304d63044f857d Visura id |
Responses
Response Schema: application/json
object (Visura) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/visura_catastale/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 400
- 404
- "data": {
- "entita": "soggetto",
- "stato": "evasa",
- "callback": false,
- "parametri": {
- "id_soggetto": "OTgwMzI3NTA1MiMwI0FMVFJBVklBIFNFUlZJWkkgU09DSUVUQScgQSBSRVNQT05TQUJJTElUQScgTElNSVRBVEEjUk9NQSAoUk0pIzEyNDg1NjcxMDA3",
- "tipo_catasto": "F",
- "cf_piva": "12485671007",
- "provincia": "ROMA Territorio-RM"
- "tipo_visura": "ordinaria",
- "richiedente": "jane doe",
- "documento": "628e41900e304d63044f857d.pdf",
- "esito": "OK",
- "timestamp": 1653490064,
- "id": "628e41900e304d63044f857d"
- "success": true,
- "message": "",
- "error": null
Download visura
This method allows you to directly download the document
Authorizations:
path Parameters
id required | string Example: 628e41900e304d63044f857d Visura id |
Responses
Response Schema: application/pdf
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/visura_catastale/%7Bid%7D/documento"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 400
- 404
- 422
- "success": false,
- "message": "Wrong id",
- "error": 286,
- "data": null