www1.sedecatastro.gob.es APIwww1.sedecatastro.gob.es ↗
Access Spanish land registry data via 4 endpoints: property details by cadastral reference or address, plus province and municipality listings from Catastro.
curl -X GET 'https://api.parse.bot/scraper/073d8617-d709-4e76-8905-044a931efbfb/get_property_by_reference?reference=9872023VH5797S0001WX' \ -H 'X-API-Key: $PARSE_API_KEY'
Look up property data by cadastral reference number (referencia catastral). Returns location, class (urban/rural), main use, surface area, construction year, and detailed construction breakdown. Invalid or malformed references return an upstream_error with the Catastro error message.
| Param | Type | Description |
|---|---|---|
| referencerequired | string | Cadastral reference number (14, 18, or 20 characters). Example: 9872023VH5797S0001WX |
{
"type": "object",
"fields": {
"class": "string - Human-readable class name",
"location": "string - Full location text",
"main_use": "string - Main use of the property (Residencial, Comercial, etc.)",
"class_code": "string - Class code (UR=Urban, RU=Rural)",
"postal_code": "string - Postal code",
"street_name": "string - Street name",
"street_type": "string - Street type abbreviation (CL, AV, etc.)",
"constructions": "array - Detailed construction breakdown with use, floor, door, surface_m2",
"province_code": "string - Province code",
"province_name": "string - Province name",
"street_number": "string - Street number",
"construction_year": "string - Year of construction",
"municipality_code": "string - Municipality code",
"municipality_name": "string - Municipality name",
"catastral_reference": "string - Full cadastral reference",
"constructed_surface_m2": "string - Total constructed surface in m²",
"participation_coefficient": "string - Participation coefficient percentage"
},
"sample": {
"data": {
"class": "Urbano",
"location": "CL ACERO DEL 1 33403 AVILES (AVILES) (ASTURIAS)",
"main_use": "Residencial",
"class_code": "UR",
"postal_code": "33403",
"street_name": "ACERO DEL",
"street_type": "CL",
"constructions": [
{
"use": "ALMACEN",
"door": "01",
"floor": "00",
"staircase": "1",
"surface_m2": "53"
},
{
"use": "VIVIENDA",
"door": "IZ",
"floor": "01",
"staircase": "1",
"surface_m2": "58"
}
],
"province_code": "33",
"province_name": "ASTURIAS",
"street_number": "1",
"construction_year": "1967",
"municipality_code": "4",
"municipality_name": "AVILES",
"catastral_reference": "4664810TP6246S0001IS",
"constructed_surface_m2": "577",
"participation_coefficient": "100,000000"
},
"status": "success"
}
}About the www1.sedecatastro.gob.es API
This API exposes 4 endpoints covering Spain's official Catastro (land registry) public records, returning property details such as class, main use, surface area, construction year, and per-unit construction breakdowns. The get_property_by_reference endpoint accepts a 14-, 18-, or 20-character cadastral reference and returns over 10 structured fields. Supporting endpoints list all Spanish provinces and municipalities, making it straightforward to build valid address lookups without prior knowledge of Catastro codes.
Property Lookup by Reference and Address
The get_property_by_reference endpoint takes a reference string (14, 18, or 20 characters, e.g. 9872023VH5797S0001WX) and returns structured property data: location, class (urban or rural, via class_code values UR or RU), main_use (e.g. Residencial, Comercial), postal_code, street_name, street_type, province_code, and province_name. The constructions array breaks down each unit by use, floor, door, and surface_m2. If the reference is invalid or unrecognised, the endpoint surfaces the upstream Catastro error message verbatim.
The get_property_by_address endpoint accepts province and municipality as required inputs, with optional street, street_type (e.g. CL for Calle, AV for Avenida, PZ for Plaza), and number fields. It returns the same response shape as the reference endpoint, including the full constructions array. Matching Catastro's naming conventions for province and municipality matters here — the discovery endpoints exist specifically to solve that.
Province and Municipality Discovery
list_provinces takes no inputs and returns all Spanish provinces as an array of code and name pairs, along with a total count. list_municipalities accepts a required province name and an optional partial municipality filter, returning each municipality's province_code, municipality_code, name, delegation_code, and catastro_municipality_code. These are the canonical identifiers expected by the address lookup endpoint.
Coverage and Data Source
All data originates from Spain's Dirección General del Catastro via its publicly available OVC web service. Coverage is limited to properties registered in the Spanish Catastro; properties in the Basque Country (País Vasco) and Navarra, which maintain independent land registries, are not covered by this service.
- Retrieve construction year and surface area for a Spanish property using its cadastral reference number
- Identify whether a property is classified as urban (
UR) or rural (RU) fromclass_code - Build a municipality autocomplete by filtering
list_municipalitieswith a partial name string - Map
constructionsarray data to floor-level breakdowns for multi-unit building analysis - Validate and normalise Spanish addresses by resolving province and municipality codes before a property lookup
- Extract postal codes and street details for geocoding pipelines using Catastro as a canonical address source
- Research main use categories (Residencial, Comercial, Industrial) across properties in a given municipality
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Spain's Catastro have an official developer API?+
What does the `constructions` field contain, and how is it structured?+
constructions array is returned by both get_property_by_reference and get_property_by_address. Each element represents a construction unit and includes the use type, floor identifier, door identifier, and surface_m2 as a numeric area in square metres. A single property can have multiple entries if it contains several units or distinct construction types.Does this API cover properties in the Basque Country or Navarra?+
Can I retrieve valuation (valor catastral) or ownership information for a property?+
How specific do address inputs need to be for `get_property_by_address`?+
province and municipality are required and must match Catastro's canonical names. Use list_provinces and list_municipalities first to get exact strings. street_type, street, and number are optional but improve match accuracy; omitting them may return ambiguous or no results depending on the municipality's data density.