The cadastre API for Spain and Europe
Paste a cadastral reference exactly as it appears on the deed, or a pair of coordinates, and get GPS, polygon and parcel data in 29 European countries (by cadastral reference in 27, by coordinates in all 29). Depending on the country, also solar potential, agriculture, market data and an investment score.
redeem 25 units a month free forever
No card and no expiry date. Move to a paid plan only when you need more volume. Searches with no result (not found) do not use up your quota.
8 MCP tools for AI agents
get_parcel
Cadastral data by reference or GPS
get_solar_potential
Solar potential (PVGIS)
get_agriculture
Land use, NDVI, prices
get_market_data
Transactions and prices/m²
get_investment_score
Investment score from 1 to 10
get_value_history
Cadastral value history
compare_parcels
Compare 2 or 3 parcels
get_boundaries
Official parcel polygon
Integrate in minutes
MCP server for Claude Desktop/Code, or call the API directly.
// claude_desktop_config.json
{
"mcpServers": {
"catastrogps": {
"command": "npx",
"args": ["-y", "catastro-gps-mcp"],
"env": {
"CATASTROGPS_API_KEY": "pk_live_YOUR_KEY"
}
}
}
}Coverage by country
What the API returns for every cadastre connected today. If a country is missing, the API tells you which country the coordinate falls in instead of a bare "not found".
| Country / cadastre | By reference | By coordinates | Polygon | Address search | Units per finca |
|---|---|---|---|---|---|
| ESSpain | check_circle | check_circle | check_circle | check_circle | check_circle |
| NANavarre (foral cadastre) | check_circle | check_circle | check_circle | check_circle | check_circle |
| PVBasque Country (foral cadastres) | check_circle | check_circle | check_circle | check_circle | info |
| PTPortugalPortugal's digital cadastre is partial | info | check_circle | info | info | remove |
| FRFrance | check_circle | check_circle | check_circle | check_circle | remove |
| ITItaly | check_circle | check_circle | check_circle | check_circle | remove |
| DEGermanyBavaria without parcel numbers: by coordinates, the declared agricultural parcel (InVeKoS) | info | info | info | info | remove |
| ATAustria | check_circle | check_circle | check_circle | check_circle | remove |
| PLPoland | check_circle | check_circle | check_circle | check_circle | remove |
| NLNetherlands | check_circle | check_circle | check_circle | check_circle | remove |
| BEBelgium | check_circle | check_circle | check_circle | check_circle | remove |
| LULuxembourg | check_circle | check_circle | check_circle | check_circle | remove |
| CHSwitzerlandSome cantons publish no parcels (e.g. Vaud) | check_circle | info | info | info | remove |
| LILiechtenstein | check_circle | check_circle | check_circle | check_circle | remove |
| CZCzechia | check_circle | check_circle | check_circle | check_circle | remove |
| SKSlovakia | check_circle | check_circle | check_circle | check_circle | remove |
| SISlovenia | check_circle | check_circle | check_circle | check_circle | remove |
| HRCroatiaARKOD agricultural parcels only (Croatian Paying Agency), by coordinates and not nationwide; not the Croatian cadastre | remove | remove | remove | remove | remove |
| BGBulgaria | check_circle | check_circle | check_circle | check_circle | remove |
| GRGreeceBy reference you must pass ?country= | info | check_circle | check_circle | check_circle | remove |
| CYCyprusAddress search with low confidence: OpenStreetMap has few house numbers in Cyprus | check_circle | check_circle | check_circle | info | remove |
| DKDenmark | check_circle | check_circle | check_circle | check_circle | remove |
| SESwedenCoordinates return the agricultural block (Jordbruksverket), not the cadastral property | remove | info | info | remove | remove |
| NONorway | check_circle | check_circle | check_circle | check_circle | remove |
| FIFinland | check_circle | check_circle | check_circle | check_circle | remove |
| ISIceland | check_circle | check_circle | check_circle | check_circle | remove |
| EEEstonia | check_circle | check_circle | check_circle | check_circle | remove |
| LVLatviaBy reference you must pass ?country= | info | check_circle | check_circle | check_circle | remove |
| LTLithuania | check_circle | check_circle | check_circle | check_circle | remove |
| IEIrelandBy reference only with ?country=IE and the numeric SP_ID; partial by coordinates and by address | info | info | info | info | remove |
| UKUnited KingdomScotland only, by coordinates and by address | remove | info | info | info | remove |
Why this API and not another
Compared with the cadastre APIs on the market today.
Navarre and the Basque Country included
Spain's foral cadastres run their own services. We query them and return them in the same format as the rest of Spain.
From data to official document
Nota simple, visura, certidão permanente, odpis KW… Your user goes from the parcel to the land registry document without leaving the flow.
Free text, no country needed
The reference with spaces, hyphens or in lower case, as printed on the deed, or coordinates in degrees or pasted from Google Maps: we detect the country and the format.
Each country's native reference
We work with each country's official cadastral reference, not with an in-house identifier shared by all.
Detailed comparisons
- Predio: API and MCP for the Spanish cadastre, without Navarre or the Basque Country.
- Regrid: parcels from 20 European countries in a common schema, no official documents.
Data from their public websites as of 29 September 2026.
29 countries
Reference in 27, coordinates in 29; incl. Navarre and the Basque Country
10 languages
Website and docs: es, ca, en, pt, fr, it, de, nl, pl, cs
Own copy + live lookups
If something is missing, we query the official cadastre
Secure API key
pk_live_xxx format
Service status
Live availability
Pricing
Start free. Scale when you need to.
Check the endpoints before you pick a plan:DocsOpenAPI spec
Developer
VAT included
5,000 units/mo
60 requests/min
Extra units: €5 per 1,000
For personal projects
Get startedStartup
VAT included
15,000 units/mo
120 requests/min
Extra units: €4 per 1,000
For products in production
Get startedGrowth
VAT included
50,000 units/mo
300 requests/min
Extra units: €2.50 per 1,000
For high volume
Get startedEnterprise
VAT included
Custom volume
300/min or more, by contract
Extra units: by contract
For mission-critical integrations
- SLA and priority support
- Annual invoice
- All 29 European countries
Plans: VAT included. Extra units are deducted from your prepaid balance at your plan’s price; top-ups are the net amount + 21 % VAT. With the balance at zero the API answers 429: never any debt. For custom volume or SLA (Enterprise): contact us
The quota resets at 00:00 UTC on the 1st of each month; unused units do not roll over. What counts as a unit
Bulk extraction, redistribution of the data or using it to build a database that competes with ours is not allowed. Terms of use
Cost simulator
Work out how many units you would use each month and which plan is cheapest for you.
Estimated total
1,000 units/mo
- Developer Best for you19 €/mo
19 € plan, no extra units
- Startup 49 €/mo
49 € plan, no extra units
- Growth 99 €/mo
99 € plan, no extra units
Developer plan: up to 60 requests/min.
Extra units come out of the prepaid balance; top-ups carry 21 % VAT on top.
Pay as you go when the quota runs out
Every plan, Free included, has a prepaid balance: when the monthly quota runs out the service is not cut and each unit is deducted from the balance at your plan's price. It comes switched on and spends nothing until you top up. Top up any amount from 5.00 EUR to 1,000.00 EUR, plus VAT. With the balance at zero the API answers 429, no debt.
- Free: 10.00 EUR per 1,000 overage units
- Developer: 5.00 EUR per 1,000 overage units
- Startup: 4.00 EUR per 1,000 overage units
- Growth: 2.50 EUR per 1,000 overage units
What counts as a unit
Each plan includes units per month. A lookup with data costs 1; if it returns no data, it costs nothing.
| Request | Units |
|---|---|
GET /v1/parcels/{reference}Parcel by cadastral reference | 1 (0 if there is no data) |
POST /v1/search/coordinatesParcel by coordinates | 1 (0 if there is no data) |
/solar · /agriculture · /score · /marketSolar, agriculture, score or market for a parcel | 1 each (0 if there is no data) |
GET /v1/search/address/candidatesAddress search | 1 if there are candidates |
GET /v1/parcels/{reference14}/unitsDwellings and premises in a building | 1 per unit served |
POST /v1/parcels/compareCompare parcels | 1 per parcel found |
304 · 300 · 4xx · 5xxNot modified, ambiguous, client or server errors | 0 |
Cost examples
Real estate agency
2,000 parcels a month with record and market data (2 units per parcel) = 4,000 units.
Developer plan: €19 a month, VAT included.
Farming app
300 farmers with 10 parcels each, with record and agriculture data (2 units per parcel) = 6,000 units.
Developer plan (€19) + 1,000 extra units (€5) = €24 a month.
Property manager
10 buildings of 365 dwellings a month: 1 address search + 365 dwellings = 366 units each, 3,660 in total. Re-importing them unchanged (304) costs 0.
Developer plan: €19 a month, VAT included.
Extra units come out of the prepaid balance; top-ups carry 21 % VAT on top.
Work out your cost with the simulator
Pricing questions
What happens when my quota runs out?
Calls keep working: each extra unit is deducted from your prepaid balance at your plan’s price. With the balance at zero the API answers 429 and you never run into debt. You can top up or change plan at any time.
When does the quota reset?
At 00:00 UTC on the 1st of each month. Unused units do not roll over to the next month.
Do errors cost units?
No. 304, 300, 4xx and 5xx responses cost nothing, and neither do lookups that return no data.
Is VAT included?
For plans, yes: the price you see is the price you pay. Balance top-ups are the net amount + 21 % VAT, itemised on the invoice.
Can I change plan?
Yes, whenever you like, with no commitment. You move up from your developer dashboard and move down or cancel from the subscription management page.
Europe's first cadastral data MCP
25 free units a month. No credit card.
Create my API key arrow_forward