Run with Postman

Catasto (2.0.0)

This API allows structured consultation of cadastral data related to properties and subjects.

The API returns detailed information on properties and on the related registered holders.

It is also possible to:

  • retrieve the properties owned by a physical or legal subject
  • obtain the complete list of assets registered to the subject
  • know the total number of buildings and land plots owned in specific municipalities

The generation of the cadastral report (visura) is also included, both for a property and for a subject.

Territory

  • Complete list of all Italian provinces
  • List of municipalities for a specific province
  • Data of a single municipality

Address

  • List of all streets associated with province, municipality, section and address

Request

  • List of properties located on a specific street
  • Properties associated with sheet, cadastral parcel, province and municipality
  • Registered holders of a specific property
  • Properties owned by a physical or legal subject
  • Number of properties, split between land and buildings, per subject and municipality

Visura Catastale

  • Generation of the cadastral report for a property
  • Generation of the cadastral report for a physical or legal subject

Territorio

Methods that allows you to consult provinces, municipalities and sections of the Italian territory

List provinces

Returns all Italian provinces. If tipo_catasto is omitted, the buildings (F) dataset is used by default.

Authorizations:
query Parameters
tipo_catasto
string
Default: "F"
Enum: "T" "F"
Example: tipo_catasto=F

F = buildings (default), T = land.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "success": true,
  • "message": "",
  • "error": null
}

Province detail

Returns the selected province with its municipalities. If tipo_catasto is omitted, the buildings (F) dataset is used by default.

Authorizations:
path Parameters
provincia_or_nome_provincia_or_id
required
string
Default: "<string>"
Example: TR

Province code (e.g., TR), full province name (e.g., TERNI), or internal id.

query Parameters
tipo_catasto
string
Default: "F"
Enum: "T" "F"
Example: tipo_catasto=F

F = buildings (default), T = land.

Responses

Response Schema: application/json
object
success
boolean
message
string
error
integer

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/territorio/TR?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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Municipality detail

Returns the selected municipality within the given province. If tipo_catasto is omitted, the buildings (F) dataset is used by default.

Authorizations:
path Parameters
provincia_or_nome_provincia_or_id
required
string
Default: "<string>"
Example: TR

Province code (e.g., TR), full province name (e.g., TERNI), or internal id.

comune
required
string
Default: "<string>"
Example: TERNI

Municipality name returned by Territorio.

query Parameters
tipo_catasto
string
Default: "F"
Enum: "T" "F"
Example: tipo_catasto=F

F = buildings (default), T = land.

Responses

Response Schema: application/json
object
success
boolean
message
string
error
integer

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/territorio/TR/TERNI?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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Richiesta

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.

elenco_immobili – returns detailed information for each property (immobile) within the specified foglio and particella. Note: the sezione field is required only in municipalities that have sections; sezione_urbana is never required.

prospetto_catastale – returns detailed information for each property (immobile) within the specified foglio, particella, and subalterno, including ownership (intestatari) details. Note: the sezione field is required only in municipalities that have sections; sezione_urbana is never required.

ricerca_persona – returns basic information about the owner, along with the list of properties owned by that person or entity within the specified province.

ricerca_nazionale – Researches the properties owned by a subject across the entire national territory. The result returns an aggregated overview by province and municipality, showing the number of buildings and land owned, without returning full property details.

indirizzo – returns the list of properties (with full details) associated with a given address identifier (id_indirizzo) obtained via POST/indirizzo (asynchronous) or GET /indirizzo (synchronous). In some cases, for the address to return valid results, it is necessary to also specify the street number (civic number) together with the address. If the civic number is missing, sometimes the system may not be able to correctly associate any property to the given address.

Authorizations:
path Parameters
endpoint
required
string
Default: "<string>"
Enum: "elenco_immobili" "prospetto_catastale" "ricerca_persona" "ricerca_nazionale" "indirizzo"

Type of service requested

Request Body schema: application/json
One of
object or object (Callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

tipo_catasto
required
string (TipoCatasto)
Default: "<string>"
Enum: "T" "F" "TF"
  • T = Terreni (land) - F = Fabbricati (buildings) - TF = Both domains (where supported by the endpoint)
provincia
required
string
Default: "<string>"

Province code (2 letters).

comune
required
string
Default: "<string>"

Municipality name in uppercase.

sezione
string
Default: "<string>"

Required only if the municipality exposes sections.

sezione_urbana
string
Default: "<string>"

Never required; include only if available.

required
string or integer

Cadastral sheet number.

required
string or integer

Cadastral parcel number.

Responses

Response Schema: application/json
object (Richiesta)
success
boolean
message
string
error
integer

Request samples

Content type
application/json
Example
{
  • "tipo_catasto": "F",
  • "provincia": "RM",
  • "comune": "ROMA",
  • "sezione": "",
  • "foglio": "872",
  • "particella": "405"
}

Response samples

Content type
application/json
Example
{
  • "data": {
    },
  • "esito": "OK",
  • "timestamp": 1625232029,
  • "owner": "[email protected]",
  • "id": "60e581c58138e80d804dad20"
}

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) [ items ]
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "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
Default: "<string>"
Example: 60e580f1617b512c3450d3c7

Request id

Responses

Response Schema: application/json
object (Richiesta)
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Indirizzo

Method that allows you to search for an address

Create address search request

This method allows you to create a request to obtain an id_indirizzo, which will subsequently be used in the POST /richiesta/indirizzo endpoint.

Authorizations:
Request Body schema: application/json
provincia
required
string
Default: "<string>"
comune
required
string
Default: "<string>"
sezione
string
Default: "<string>"
indirizzo
required
string
Default: "<string>"
object or object (Callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

Response Schema: application/json
object
success
boolean
message
string
error
integer or null

Request samples

Content type
application/json
{
  • "provincia": "TR",
  • "comune": "Terni",
  • "sezione": "",
  • "indirizzo": "del rivo"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Search for an address

This endpoint allows two functions:

  • Synchronous search: Provide the query parameters (province, municipality, section, address) to obtain the corresponding id_indirizzo, which can be used in POST/richiesta/indirizzo.

  • Request list: If you do not provide any query parameters, you will get a list of id_indirizzo from your previous POST/indirizzo requests.

Authorizations:
query Parameters
provincia
string
Default: "<string>"
Example: provincia=TR

Province (Required for synchronous search)

comune
string
Default: "<string>"
Example: comune=TERNI

City (Required for synchronous search)

sezione
string
Default: "<string>"
Example: sezione=Q

Section of the city if it is present

indirizzo
string
Default: "<string>"
Example: indirizzo=del rivo

Address searched; enter only the address and not the toponym (Required for synchronous search)

Responses

Response Schema: application/json
One of
object
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
Example
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Detail of the address

Allows you to see the detail of the id_indirizzo identified by the id

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Example: 485e6399966a385c6f0416c2

Request id

Responses

Response Schema: application/json
object (RisultatoRichiestaIndirizzo)
success
boolean
message
string
error
integer

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://catasto.openapi.it/indirizzo/%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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Visura Catastale

Methods that make it possible to obtain a Visura Catastale

Create visura request

Create a request to obtain a Visura Catastale (property or subject).

• By property (entita: immobile)

-With id_immobile: the request is performed directly using the property identifier.

-Without id_immobile: the request is performed using the available cadastral data.

• By subject (entita: soggetto)

-With id_soggetto: provincia is optional. If provided, the visura is performed for that province; if omitted, the visura is performed for the first available province returned for that subject.

-Without id_soggetto: the request is performed using the available subject data.

tipo_visura can be ordinaria or storica.

• Use tipo_catasto: T | F | TF.

The response returns a request id. Check status with GET /visura_catastale/{id} and download the PDF with GET /visura_catastale/{id}/documento when available.

Authorizations:
Request Body schema: application/json
One of
One of
entita
required
string
Default: "<string>"
Value: "immobile"
id_immobile
required
string
Default: "<string>"
tipo_visura
required
string
Default: "<string>"
Enum: "ordinaria" "storica"
richiedente
string
Default: "<string>"
object or object (Callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

Response Schema: application/json
object (Visura)
success
boolean
message
string
error
integer

Request samples

Content type
application/json
Example
{
  • "entita": "immobile",
  • "id_immobile": "MTY1NjcyOCMxNjU2NzI4I0YjODcyIzQwNSNINTAxIzIyNTkyNjkjNDgjICNST01B",
  • "tipo_visura": "ordinaria",
  • "richiedente": "jane doe"
}

Response samples

Content type
application/json
Example
{
  • "data": {
    },
  • "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) [ items ]
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "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
Default: "<string>"
Example: 628e41900e304d63044f857d

Visura id

Responses

Response Schema: application/json
object (Visura)
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Download visura

This method allows you to directly download the document

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Example: 628e41900e304d63044f857d

Visura id

Responses

Response Schema: application/pdf
string <binary>

Request samples

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

Content type
application/json
{
  • "success": false,
  • "message": "Wrong id",
  • "error": 286,
  • "data": null
}