API-Dokumentation

Vollständige Kataster-API-Referenz

Basis-URL

https://api.parcelgps.com

OpenAPI 3.1 specification

Every endpoint on this page in machine-readable form, for Postman, Insomnia or client generators:

https://api.parcelgps.com/api/openapi.json

Units pages and address searches carry an ETag: with If-None-Match the answer is 304 with no body and costs no quota.

apartmentGuide: import a homeowners' association in 3 calls

Ländercodes

Die Endpunkte akzeptieren ?country=XX. Optional: ohne ihn erkennt die API das Land an der Form der Referenz, in 21 Ländern. Eine mehrdeutige Referenz liefert 300 CNV_AMBIGUOUS mit den Kandidaten; ein noch nicht abgedecktes Land 422 CNV_COVERAGE; etwas, das wie ein Ortsname aussieht, 422 CNV_PLACE_NAME mit dem geokodierten Punkt. Das spanische Festland nutzt ES, aber das Baskenland und Navarra führen ein eigenes (forales) Kataster und verlangen ihren eigenen Code: mit ES werden ihre Flurstücke nicht gefunden.

ES · SpanienPV · BaskenlandNA · NavarraPT · PortugalFR · FrankreichIT · ItalienDE · DeutschlandAT · ÖsterreichPL · PolenNL · NiederlandeCZ · TschechienFI · FinnlandBE · BelgienEE · EstlandSI · SlowenienLT · LitauenLU · LuxemburgSK · SlowakeiBG · BulgarienCY · ZypernIS · IslandLI · LiechtensteinCH · Schweiz

Endpoint-Referenz

MethodeEndpointAuthBeschreibung
GET/api/resolve?q=TEXTAPI KeyOrdnet jede Eingabe ein: Referenz (und Land), Koordinaten oder Ortsname. Ohne Kontingent.
GET/api/search/address/candidates?q=TEXT&country=XXAPI KeyAdresse → Flurstück mit gewichteten Kandidaten: Spanien und 25 weitere europäische Länder
GET/api/catastro/:refcatAPI KeyFlurstückabfrage
GET/api/catastro/:refcat14/unitsAPI KeyAlle Einheiten eines Grundstücks (Wohnungen, Gewerbe, Garagen) — Spanien
GET/api/catastro/:refcat/polygon?country=XXAPI KeyFlurstückgeometrie (GeoJSON)
GET/api/catastro/:refcat/terrain?country=XXAPI KeyRelief (Höhe, Neigung, Exposition) und Natura 2000 / Schutzgebiete des Flurstücks
GET/api/catastro/:refcat/ground-motion?country=XXAPI KeyBodenbewegung (Senkung oder Hebung in mm/Jahr, 2020-2024) per Satellit gemessen
GET/api/catastro/:refcat/solar?country=XXAPI KeySolarpotenzial
GET/api/catastro/:refcat/agro?country=XXAPI KeyLandwirtschaftliche Flächendaten
GET/api/export/kml?refcat=X&country=XAPI KeyKML/GPX/PDF/DXF exportieren
GET/api/catastro/:refcat/market?country=XXWeb und AppMarktdaten (nicht über die API)
GET/api/catastro/:refcat/score?country=XXWeb und AppInvestment-Score (nicht über die API)

Zuverlässigkeit

Was wir aus eigener Infrastruktur liefern und was von einer Behörde abhängt. Vor dem Produktivbetrieb lesenswert.

EndpointWoher die Daten kommen
/catastro/:refcat (ES)Eigene Kopie des Katasters (50,9 Mio. Flurstücke). Antwortet ohne das Catastro.
/polygon · /search/address · /search/coordinatesCatastro (Behörde). Kann ohne Vorwarnung ausfallen.
/agroSIGPAC
/solarPVGIS

Fehler und Wiederholungen

Ein 503 heißt, dass eine offizielle Quelle gerade nicht antwortet: mit wachsendem Abstand erneut versuchen, das klärt sich von selbst. Ein 429 ist Ihr Kontingent — erneutes Senden bringt es nicht zurück; auf den Reset warten oder den Tarif wechseln. Ein 404 ist eine nicht existierende Referenz und sollte nicht wiederholt werden.

Statusseite

Wir veröffentlichen den Zustand unserer API und der neun Katasterquellen, von denen wir abhängen — alle fünf Minuten geprüft und außerhalb dieser API gehostet, damit sie bei einer Störung verlässlich bleibt: catastrogps.es/status.

Authentifizierung

Alle API-Anfragen erfordern einen API-Key im X-API-Key-Header.

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/9872023VH5797S"

Erhalten Sie Ihren kostenlosen API-Key auf Ihrem Entwickler-Dashboard.

Fehlercodes

StatusCodeBeschreibung
200—OK — Die Anfrage wurde erfolgreich abgeschlossen.
400VALIDATION_ERRORBad Request — Ungültige Parameter oder Katasterreferenz mit falschem Format.
401UNAUTHORIZEDUnauthorized — API-Key ungültig, abgelaufen oder nicht übermittelt.
404NOT_FOUNDNot Found — Kein Flurstück zur angegebenen Referenz oder zu den Koordinaten gefunden. Verbraucht kein Kontingent.
429KEY_AUTH_004Quota Exceeded — Das Monatskontingent Ihres Tarifs ist aufgebraucht. Die Header X-Quota-Remaining und X-Quota-Reset zeigen, was noch übrig ist und wann es zurückgesetzt wird.
429RATE_LIMIT_EXCEEDED / DAILY_LIMIT_REACHEDToo Many Requests — KEY_RATE_002: Sie haben das Burst-Limit pro Minute Ihres Schlüssels überschritten (Free 10, Developer 60, Startup 120, Growth 300). RATE_LIMIT_EXCEEDED: zu viele Anfragen von derselben IP. Beide liefern X-RateLimit-* und Retry-After. DAILY_LIMIT_REACHED: Tageslimit für kostenlose Suchen ohne API-Schlüssel.
500INTERNAL_ERRORInternal Server Error — Fehler auf unserer Seite. Wenn er bestehen bleibt, wenden Sie sich an den Support.
503SERVICE_UNAVAILABLEService Unavailable — Der externe Katasterdienst des angefragten Landes ist vorübergehend nicht verfügbar. Diese Dienste werden von Behörden betrieben (Catastro, DGT, Géoportail, Agenzia Entrate, ALKIS...) und liegen außerhalb unserer Kontrolle. Versuchen Sie es in einigen Minuten erneut.

Kontingent- und Rate-Limit-Header

Es gibt zwei Header-Familien, die Verschiedenes messen. X-Quota-* ist das Monatskontingent Ihres Tarifs: das, das mit KEY_AUTH_004 aufgebraucht ist.

HeaderBeschreibung
X-Quota-LimitIm Tarif enthaltene Aufrufe pro Monat (z. B. 5000).
X-Quota-RemainingVerbleibende Aufrufe in diesem Monat.
X-Quota-ResetDatum, an dem das Monatskontingent zurückgesetzt wird (ISO 8601, UTC).
X-Quota-TierName der aktuellen Stufe (free, basic, pro, business).

X-RateLimit-* ist das Burst-Limit pro Minute Ihres Schlüssels, je nach Tarif: Free 10, Developer 60, Startup 120 und Growth 300 Anfragen alle 60 Sekunden. Mit dem Monatskontingent hat es nichts zu tun.

HeaderBeschreibung
X-RateLimit-LimitErlaubte Anfragen pro Minute mit Ihrem Schlüssel (je nach Tarif).
X-RateLimit-RemainingVerbleibende Anfragen in der laufenden Minute.
X-RateLimit-ResetSekunden, bis das Ein-Minuten-Fenster zurückgesetzt wird.

Anleitungen nach Anwendungsfall

Vier reale Aufgaben, gelöst mit API-Aufrufen. Jeder Schritt zeigt den Aufruf in cURL, mit dem JavaScript-SDK und mit dem Python-SDK sowie die echte Antwort aus der Produktion.

Eine Immobilie vor dem Kauf prüfen

Von der Adresse in der Anzeige zu dem, was das Kataster sagt und was der Satellit sieht: um welche Finca es sich handelt, was sie enthält, ob sie in einem Schutzgebiet liegt und ob sich der Boden bewegt. Jeder Schritt verwendet ein anderes Flurstück, um einen Fall mit Daten zu zeigen; in Ihrem Ablauf ist es von Anfang bis Ende dieselbe Referenz.

Länder: ES

1. Von der Adresse zur Finca

Eine Adresse als Freitext liefert Kandidaten, sortiert nach Konfidenz (0 bis 1), mit der 14-stelligen Referenz, der Nutzung, den Wohnungen und dem Baujahr. Ab 0,75 stimmen Hausnummer und Gemeinde überein. Es kostet nur dann 1 Einheit, wenn es Kandidaten gibt.

curl -G "https://api.parcelgps.com/api/search/address/candidates" \
  --data-urlencode "q=Avenida José Rodríguez de la Borbolla Camoyán 10, Dos Hermanas" \
  --data-urlencode "limit=3" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

{
  "success": true,
  "data": {
    "consulta": {
      "texto": "Avenida José Rodríguez de la Borbolla Camoyán 10, Dos Hermanas",
      "calle": "Avenida José Rodríguez de la Borbolla Camoyán",
      "numero": 10,
      "municipio": "Dos Hermanas"
    },
    "candidatos": [
      {
        "refCatastral": "0745901TG4304N",
        "pais": "ES",
        "direccion": "AVENIDA JOSE RGUEZ BORBOLLA CAMOY 10",
        "numero": 10,
        "codigoPostal": "41704",
        "municipio": "Dos Hermanas",
        "provincia": "Sevilla",
        "latitud": 37.31947088654626,
        "longitud": -5.926788955974699,
        "confianza": 0.93,
        "coincideNumero": true,
        "coincideMunicipio": true,
        "enCopia": true,
        "direccionCatastro": "AV JOSE RGUEZ BORBOLLA CAMOY 10",
        "uso": "Residencial",
        "viviendas": 346,
        "anioConstruccion": 2023
      },
      {
        "refCatastral": "0747201TG4304N",
        "pais": "ES",
        "direccion": "BULEVAR JOSE RODRIGUEZ DE LA BORBOLLA CAMOYAN 11",
        "numero": 11,
        "confianza": 0.55,
        "coincideNumero": false,
        "coincideMunicipio": true,
        "enCopia": true
      }
    ],
    "attribution": "CartoCiudad (Instituto Geográfico Nacional) y Dirección General del Catastro"
  }
}

2. Was enthalten ist: Wohnungen, Gewerbeeinheiten und Nebenräume

Mit der 14-stelligen Referenz erhalten Sie jede Einheit der Finca mit Nutzung, Fläche, Stockwerk, Tür und Miteigentumsanteil. So prüfen Sie, ob Fläche und Nutzung aus der Anzeige mit dem Kataster übereinstimmen. Es kostet 1 Einheit pro gelieferter Einheit.

curl "https://api.parcelgps.com/api/catastro/0745901TG4304N/units" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

HTTP/2 200
etag: "5ab6bd3d95f85dddba81818bcb0cb65e"
cache-control: private, max-age=21600
x-quota-remaining: 2893

{
  "success": true,
  "data": {
    "refCatastral": "0745901TG4304N",
    "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10",
    "codigoPostal": "41704",
    "municipio": "DOS HERMANAS",
    "provincia": "Sevilla",
    "usoGeneral": "Residencial",
    "superficieTotal": 32789,
    "anioConstruccion": 2023,
    "totalUnidades": 200,
    "totalUnidadesFinca": 365,
    "unidades": [
      {
        "refCatastral": "0745901TG4304N0002KH",
        "escalera": "",
        "planta": "01",
        "puerta": "B",
        "uso": "Residencial",
        "superficie": 155,
        "descripcion": "Planta 01, Pta. B - Residencial",
        "participacion": 0.279543,
        "anio": 2023,
        "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10 Pl:01 Pt:B"
      },
      {
        "refCatastral": "0745901TG4304N0003LJ",
        "escalera": "",
        "planta": "01",
        "puerta": "C",
        "uso": "Residencial",
        "superficie": 163,
        "descripcion": "Planta 01, Pta. C - Residencial",
        "participacion": 0.293879,
        "anio": 2023,
        "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10 Pl:01 Pt:C"
      }
    ],
    "truncated": true,
    "nextCursor": "0745901TG4304N0201MZ",
    "dataSource": "clone",
    "dataDate": "2026-01-23",
    "attribution": "Dirección General del Catastro"
  },
  "searchesRemaining": -1
}

3. Schutzgebiete: Natura 2000 und Parks

Vor dem Kauf eines ländlichen Grundstücks lohnt es sich zu wissen, ob es in einem Schutzgebiet liegt: Das schränkt ein, was gebaut oder angepflanzt werden darf. /terrain verschneidet den Umriss des Flurstücks mit Natura 2000 und den nationalen Schutzgebieten (CDDA) und gibt an, welcher Anteil des Flurstücks darin liegt. Reales Beispiel: ein Flurstück vollständig im Nationalpark Monfragüe.

curl "https://api.parcelgps.com/api/catastro/10194A00110004/terrain?country=ES" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort, gekürzt

{
  "success": true,
  "data": {
    "refcat": "10194A00110004",
    "country": "ES",
    "protected_areas": {
      "status": "ok",
      "intersects": true,
      "inside": true,
      "max_overlap_pct": 100,
      "natura2000": [
        {
          "code": "ES0000014",
          "name": "Monfragüe y las Dehesas del Entorno",
          "type": "SPA",
          "country": "ES",
          "overlap_pct": 100
        },
        {
          "code": "ES4320077",
          "name": "Monfragüe",
          "type": "SCI",
          "country": "ES",
          "overlap_pct": 100
        }
      ],
      "national": [
        {
          "code": "4820",
          "name": "Monfragüe",
          "designation": "National Park",
          "country": "ES",
          "overlap_pct": 100
        }
      ],
      "method": "parcel",
      "sources": [
        {
          "name": "Natura 2000",
          "license": "CC BY 4.0",
          "edition": "end 2024"
        },
        {
          "name": "Nationally designated areas (CDDA)",
          "license": "CC BY 4.0",
          "edition": "2025"
        }
      ]
    }
  }
}

4. Ob der Boden absinkt

/ground-motion liefert die vertikale Bodengeschwindigkeit über dem Flurstück, gemessen vom Sentinel-1-Radar (Copernicus EGMS, 2020-2024). Reales Beispiel: ein Flurstück in Murcia, das um 40,9 mm pro Jahr absinkt, Klasse severe_subsidence. Wenn der Satellit keine Reflektoren findet (offenes Feld, Wald, Wasser), lautet die Antwort status no_data, statt zu raten.

curl "https://api.parcelgps.com/api/catastro/30024A16000286/ground-motion?country=ES" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

{
  "success": true,
  "data": {
    "refcat": "30024A16000286",
    "country": "ES",
    "status": "ok",
    "period": { "from": "2020-01", "to": "2024-12", "label": "2020-2024" },
    "ground_motion": {
      "class": "severe_subsidence",
      "worst_class": "severe_subsidence",
      "vertical": {
        "mean_mm_year": -40.9, "max_subsidence_mm_year": -40.9, "max_uplift_mm_year": 0,
        "std_mm_year": 0.1, "acceleration_mm_year2": -0.7, "rmse_mm": 2.3
      },
      "east_west": { "mean_mm_year": -5.1, "std_mm_year": 0.1 },
      "yearly_displacement": [
        { "year": 2020, "mm": -17.9 }, { "year": 2021, "mm": -57.2 }, { "year": 2022, "mm": -95.8 },
        { "year": 2023, "mm": -141.8 }, { "year": 2024, "mm": -179.8 }
      ],
      "cells_with_data": 1, "cells_considered": 1, "coverage_pct": 100,
      "basis": "parcel", "cell_size_m": 100
    },
    "source": {
      "name": "European Ground Motion Service (EGMS) L3 Ortho",
      "license": "Copernicus data policy (Regulation (EU) No 1159/2013): free, commercial use allowed with attribution",
      "attribution": "Contains modified Copernicus Land Monitoring Service information, European Ground Motion Service 2020-2024 (© European Union, Copernicus Land Monitoring Service, EEA)",
      "resolution": "100 m"
    },
    "calculated_at": "2026-10-01T06:14:34Z",
    "provenance": "1"
  }
}

Der Bestand einer Hausverwaltung

Importieren Sie jede Finca, die Sie verwalten, mit ihren Einheiten und prüfen Sie sie jeden Monat erneut, ohne doppelt für Unverändertes zu zahlen.

Länder: ES

1. Erster Import

Durchlaufen Sie Ihre Liste 14-stelliger Referenzen. Jede Seite enthält bis zu 200 Einheiten und einen nextCursor; die SDKs folgen dem Cursor für Sie. Speichern Sie das ETag jeder Seite zusammen mit der Finca. Ihr verbleibendes Kontingent steht im Header X-Quota-Remaining und in lastQuota des SDK.

curl -i "https://api.parcelgps.com/api/catastro/0745901TG4304N/units" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

curl -i "https://api.parcelgps.com/api/catastro/0745901TG4304N/units?cursor=0745901TG4304N0201MZ" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

HTTP/2 200
etag: "5ab6bd3d95f85dddba81818bcb0cb65e"
cache-control: private, max-age=21600
x-quota-remaining: 2893

{
  "success": true,
  "data": {
    "refCatastral": "0745901TG4304N",
    "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10",
    "codigoPostal": "41704",
    "municipio": "DOS HERMANAS",
    "provincia": "Sevilla",
    "usoGeneral": "Residencial",
    "superficieTotal": 32789,
    "anioConstruccion": 2023,
    "totalUnidades": 200,
    "totalUnidadesFinca": 365,
    "unidades": [
      {
        "refCatastral": "0745901TG4304N0002KH",
        "escalera": "",
        "planta": "01",
        "puerta": "B",
        "uso": "Residencial",
        "superficie": 155,
        "descripcion": "Planta 01, Pta. B - Residencial",
        "participacion": 0.279543,
        "anio": 2023,
        "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10 Pl:01 Pt:B"
      },
      {
        "refCatastral": "0745901TG4304N0003LJ",
        "escalera": "",
        "planta": "01",
        "puerta": "C",
        "uso": "Residencial",
        "superficie": 163,
        "descripcion": "Planta 01, Pta. C - Residencial",
        "participacion": 0.293879,
        "anio": 2023,
        "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10 Pl:01 Pt:C"
      }
    ],
    "truncated": true,
    "nextCursor": "0745901TG4304N0201MZ",
    "dataSource": "clone",
    "dataDate": "2026-01-23",
    "attribution": "Dirección General del Catastro"
  },
  "searchesRemaining": -1
}

2. Monatliche Prüfung mit ETag

Wiederholen Sie den Aufruf mit If-None-Match und dem gespeicherten ETag. Hat sich die Finca nicht geändert, lautet die Antwort 304 Not Modified und kostet nichts. Mit dem SDK übergeben Sie das vorherige Ergebnis: changed zeigt an, ob sich etwas geändert hat. Halten Sie das Minutenlimit Ihres Plans ein (Free 10, Developer 60, Startup 120, Growth 300): Die SDKs wiederholen eine 429-Antwort selbstständig.

curl -i "https://api.parcelgps.com/api/catastro/0745901TG4304N/units" \
  -H "X-API-Key: $CATASTROGPS_API_KEY" \
  -H 'If-None-Match: "5ab6bd3d95f85dddba81818bcb0cb65e"'

HTTP/2 304
x-quota-remaining: 2929
Vollständige Anleitung zum Import einer Eigentümergemeinschaft

Solare Machbarkeit eines Flurstücks

Geschätzter Ertrag aus PVGIS, Einsparung, Amortisation und für Freiflächenanlagen die tatsächliche Neigung und Ausrichtung des Geländes. /solar deckt Spanien (mit Baskenland und Navarra), Portugal, Frankreich, Italien und Deutschland ab; anderswo lautet die Antwort 422 CNV_COVERAGE.

Länder: ESPVNAPTFRITDE

1. Ertrag und Wirtschaftlichkeit der Anlage

Die Antwort enthält die installierbaren kWp, die kWh pro Jahr, die Einsparung, die Amortisation, das vermiedene CO2 und einen economics-Block mit Eigenverbrauch, Überschuss, Nettoertrag, Amortisationszeit und internem Zinsfuß. Gibt es keine Solardaten, lautet die Antwort disponible false und kostet nichts.

curl "https://api.parcelgps.com/api/catastro/9872023VH5797S/solar" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

{
  "success": true,
  "data": {
    "kwh_year": 23749.9,
    "kw_instalables": 17.86,
    "ahorro_anual_eur": 3562.49,
    "amortizacion_anos": 5,
    "co2_evitado_kg": 5533.73,
    "irradiacion_media": 1807.08,
    "nota_solar": 5,
    "orientacion_optima": "Sur",
    "angulo_inclinacion": 34,
    "costo_instalacion_eur": 17865,
    "disponible": true,
    "estado": "ok",
    "fuente": "PVGIS (JRC)",
    "economics": {
      "autoconsumo_kwh_ano": 5000,
      "excedentes_kwh_ano": 18749.9,
      "ingreso_neto_anual_eur": 1473.18,
      "payback_anos": 12.13,
      "tir_pct": 6.56,
      "retorno_total_25_anos_eur": 18964.5
    }
  }
}

2. Neigung und Ausrichtung des Geländes

Für eine Freiflächenanlage liefert /terrain die mittlere und maximale Neigung mit ihrer Klasse sowie die vorherrschende Ausrichtung über dem tatsächlichen Umriss (Copernicus DEM GLO-30, 30 m). Reales Beispiel: ein sehr steiler Nordhang, wenig geeignet für eine Freiflächenanlage.

curl "https://api.parcelgps.com/api/catastro/10194A00110004/terrain?country=ES" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort, gekürzt

{
  "success": true,
  "data": {
    "refcat": "10194A00110004",
    "country": "ES",
    "relief": {
      "status": "ok",
      "elevation_m": {
        "mean": 365.8,
        "min": 212.3,
        "max": 506.6
      },
      "slope": {
        "mean_pct": 36.5,
        "mean_deg": 20,
        "max_pct": 71.6,
        "class": "very_steep",
        "max_class": "very_steep",
        "share_over_10_pct": 98.4,
        "classes_pct": {
          "flat": 0.2,
          "gentle": 1.4,
          "moderate": 6.8,
          "steep": 20,
          "very_steep": 71.7
        }
      },
      "aspect": {
        "dominant": "N",
        "dominant_share_pct": 75.3,
        "mean_deg": 0,
        "flat_share_pct": 0.2,
        "sectors_pct": {
          "N": 75.3,
          "NE": 10.6,
          "E": 0.6,
          "SE": 0.1,
          "S": 0,
          "SW": 1,
          "W": 1.4,
          "NW": 10.8
        }
      },
      "sample": {
        "method": "parcel",
        "cells": 1448,
        "resolution_m": 31
      },
      "source": {
        "name": "Copernicus DEM GLO-30",
        "license": "Copernicus DEM licence (free, commercial use allowed)",
        "attribution": "© DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved"
      }
    }
  }
}

Flurstücksrisiko für einen Versicherer

Drei Signale pro Flurstück aus offenen europäischen Quellen: Bodenabsenkung (EGMS), Relief und Schutzgebiete (Copernicus DEM, EEA) sowie Klima (ERA5-Land). Es funktioniert im gesamten EGMS-Abdeckungsgebiet (EEA-39), wo uns der Umriss vorliegt; außerhalb von Spanien, Portugal, Frankreich, Italien und Deutschland übergeben Sie zusätzlich lat und lng.

Länder: EEA-39

1. Absenkung und Beschleunigung

class und worst_class fassen die Bewegung zusammen (stable, slow_subsidence, notable_subsidence, severe_subsidence und ihre Entsprechungen für Hebung). vertical enthält den Mittelwert, die schnellste Absenkung, die Beschleunigung und die kumulierte Verschiebung jedes Jahres. Jede Antwort enthält die Copernicus-Quellenangabe, die Sie anzeigen müssen.

curl "https://api.parcelgps.com/api/catastro/30024A16000286/ground-motion?country=ES" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Echte Antwort

{
  "success": true,
  "data": {
    "refcat": "30024A16000286",
    "country": "ES",
    "status": "ok",
    "period": { "from": "2020-01", "to": "2024-12", "label": "2020-2024" },
    "ground_motion": {
      "class": "severe_subsidence",
      "worst_class": "severe_subsidence",
      "vertical": {
        "mean_mm_year": -40.9, "max_subsidence_mm_year": -40.9, "max_uplift_mm_year": 0,
        "std_mm_year": 0.1, "acceleration_mm_year2": -0.7, "rmse_mm": 2.3
      },
      "east_west": { "mean_mm_year": -5.1, "std_mm_year": 0.1 },
      "yearly_displacement": [
        { "year": 2020, "mm": -17.9 }, { "year": 2021, "mm": -57.2 }, { "year": 2022, "mm": -95.8 },
        { "year": 2023, "mm": -141.8 }, { "year": 2024, "mm": -179.8 }
      ],
      "cells_with_data": 1, "cells_considered": 1, "coverage_pct": 100,
      "basis": "parcel", "cell_size_m": 100
    },
    "source": {
      "name": "European Ground Motion Service (EGMS) L3 Ortho",
      "license": "Copernicus data policy (Regulation (EU) No 1159/2013): free, commercial use allowed with attribution",
      "attribution": "Contains modified Copernicus Land Monitoring Service information, European Ground Motion Service 2020-2024 (© European Union, Copernicus Land Monitoring Service, EEA)",
      "resolution": "100 m"
    },
    "calculated_at": "2026-10-01T06:14:34Z",
    "provenance": "1"
  }
}

2. Relief, Schutzgebiete und Klima

Derselbe Aufruf von /terrain liefert das Relief, die Schutzgebiete und den climate-Block mit den ERA5-Land-Normalwerten: Mitteltemperatur, Jahresniederschlag, Frosttage und Tage über 35 Grad in einem Referenzzeitraum im Vergleich zu den letzten Jahren. Das ERA5-Land-Raster wird gerade geladen: Bis dahin antwortet climate mit status unavailable, der Rest der Antwort kommt wie gewohnt. Das Beispiel verwendet eine belgische Referenz, die einen Schrägstrich enthält und als %2F kodiert wird.

curl "https://api.parcelgps.com/api/catastro/21802B1307%2F00B000/terrain?country=BE&lat=50.848139&lng=4.353613" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Der climate-Block, während das ERA5-Land-Raster geladen wird

"climate": {
  "status": "unavailable",
  "source": {
    "name": "ERA5-Land",
    "provider": "Copernicus Climate Change Service (C3S) / ECMWF",
    "license": "CC BY 4.0",
    "attribution": "Contains modified Copernicus Climate Change Service information; …",
    "url": "https://cds.climate.copernicus.eu/datasets/reanalysis-era5-land-monthly-means",
    "resolution": "0.1° (~9 km)"
  }
}

SDKs und MCP

Offizielle Clients für JavaScript/TypeScript und Python sowie ein MCP-Server, damit ein KI-Assistent mit Ihrem Schlüssel Flurstücke abfragen kann. Alle drei lesen den Schlüssel aus der Umgebungsvariable CATASTROGPS_API_KEY.

JavaScript und TypeScript (npm)

npm install catastrogps
import { CatastroGPS } from 'catastrogps'

const client = new CatastroGPS({ apiKey: process.env.CATASTROGPS_API_KEY })

const parcel = await client.parcels.get('9872023VH5797S0001WX')
const inWarsaw = await client.parcels.atPoint({ lat: 52.2297, lng: 21.0122 })
const terrain = await client.request('GET', '/api/catastro/10194A00110004/terrain', { query: { country: 'ES' } })
console.log(parcel.municipio, inWarsaw.referenciaCatastral, terrain.relief.slope.class, client.lastQuota)

Python (PyPI)

pip install catastrogps
from catastrogps import CatastroGPS

client = CatastroGPS()

parcel = client.parcels.get("9872023VH5797S0001WX")
in_warsaw = client.parcels.at_point(52.2297, 21.0122)
terrain = client.request("GET", "/api/catastro/10194A00110004/terrain", query={"country": "ES"})
print(parcel["municipio"], in_warsaw["referenciaCatastral"], terrain["relief"]["slope"]["class"], client.last_quota)

Für einen Endpunkt ohne eigene SDK-Methode, etwa /terrain oder /ground-motion, verwenden Sie client.request: Es signiert den Aufruf, wiederholt 429- und 5xx-Antworten und aktualisiert das Kontingent wie alle anderen Methoden.

Den MCP-Server mit einem Assistenten verbinden

Der Server catastro-gps-mcp (npm) stellt die API als Tools für Claude, Cursor, VS Code und jeden MCP-Client bereit. Jeder Tool-Aufruf ist ein API-Aufruf, der Ihr Kontingent belastet.

Claude Desktop: Fügen Sie dies in claude_desktop_config.json ein und starten Sie die App neu.

{
  "mcpServers": {
    "catastro-gps": {
      "command": "npx",
      "args": ["-y", "catastro-gps-mcp"],
      "env": { "CATASTROGPS_API_KEY": "pk_live_your_key_here" }
    }
  }
}

Claude Code: ein Befehl im Terminal.

claude mcp add catastro-gps --env CATASTROGPS_API_KEY=pk_live_your_key_here -- npx -y catastro-gps-mcp

Cursor, Windsurf, VS Code und andere MCP-Clients: derselbe Befehl mit CATASTROGPS_API_KEY in der Umgebung.

npx -y catastro-gps-mcp

Tools

get_parcelsearch_addressget_boundariesget_solar_potentialget_terrainget_agricultureget_market_dataget_investment_scoreget_value_historycompare_parcels

Fragen Sie zum Beispiel

  • Find the cadastral parcel at Calle Mallorca 213, Barcelona, and give me its area and outline.
  • What is the parcel at 52.2297, 21.0122? What is its area?
  • Look up the Polish parcel 146510_8.0502.1/3 and tell me its area.

Spanien (ES)

Spanisches Kataster — Dirección General del Catastro

GET/api/search/address/candidates

Geocodes a Spanish address with CartoCiudad (IGN) and returns the matching building entrances ranked by confidence, with their 14-character reference and, when they are in our copy, use, dwellings and year. Does not depend on the Catastro. Costs 1 quota unit.

Parameter

qstringFree-text address: street and number, municipality (and postcode if you have it).
street / number / municipality / postcode / limitstringOptional: street, number, municipality, postcode (override what is read from q) and limit (1-10, default 5).
curl -G "https://api.parcelgps.com/api/search/address/candidates" \
  --data-urlencode "q=Avenida José Rodríguez de la Borbolla Camoyán 10, Dos Hermanas" \
  --data-urlencode "limit=3" \
  -H "X-API-Key: $CATASTROGPS_API_KEY"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "consulta": {
      "texto": "Avenida José Rodríguez de la Borbolla Camoyán 10, Dos Hermanas",
      "calle": "Avenida José Rodríguez de la Borbolla Camoyán",
      "numero": 10,
      "municipio": "Dos Hermanas"
    },
    "candidatos": [
      {
        "refCatastral": "0745901TG4304N",
        "pais": "ES",
        "direccion": "AVENIDA JOSE RGUEZ BORBOLLA CAMOY 10",
        "numero": 10,
        "codigoPostal": "41704",
        "municipio": "Dos Hermanas",
        "provincia": "Sevilla",
        "latitud": 37.31947088654626,
        "longitud": -5.926788955974699,
        "confianza": 0.93,
        "coincideNumero": true,
        "coincideMunicipio": true,
        "enCopia": true,
        "direccionCatastro": "AV JOSE RGUEZ BORBOLLA CAMOY 10",
        "uso": "Residencial",
        "viviendas": 346,
        "anioConstruccion": 2023
      },
      {
        "refCatastral": "0747201TG4304N",
        "pais": "ES",
        "direccion": "BULEVAR JOSE RODRIGUEZ DE LA BORBOLLA CAMOYAN 11",
        "numero": 11,
        "confianza": 0.55,
        "coincideNumero": false,
        "coincideMunicipio": true,
        "enCopia": true
      }
    ],
    "attribution": "CartoCiudad (Instituto Geográfico Nacional) y Dirección General del Catastro"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Die Referenz hat kein gültiges Format für das Land.
NOT_FOUND404No building entrance with a cadastral reference matches the address.
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503CartoCiudad is not answering. Retry after Retry-After.
GET/api/catastro/:refcat

Flurstückdaten per Katasterreferenz abrufen (14 oder 20 Zeichen).

Parameter

:refcatstringKatasterreferenz (z. B. 9872023VH5797S0001WX)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/9872023VH5797S0001WX"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "9872023VH5797S0001WX",
    "direccion": "CL GLORIA 51",
    "codigoPostal": "13730",
    "municipio": "SANTA CRUZ DE MUDELA",
    "provincia": "CIUDAD REAL",
    "latitud": 38.640143,
    "longitud": -3.463284,
    "googleMapsUrl": "https://www.google.com/maps?q=38.640143,-3.463284",
    "uso": "Residencial",
    "clase": "Urbano",
    "superficieConstruida": 308,
    "superficieParcela": 397,
    "anioConstruccion": 1980,
    "coefParticipacion": "100",
    "poligono": [ /* geometría de la parcela */ ],
    "availableFields": {
      "uso": true, "clase": true, "anioConstruccion": true,
      "superficieConstruida": true, "coefParticipacion": true,
      "direccion": true, "busquedaDireccion": true
    }
  },
  "searchesRemaining": 4
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Die Referenz hat kein gültiges Format für das Land.
NOT_FOUND404Referenz nicht gefunden. Ein nicht unterstütztes ?country wird als Spanien (ES) behandelt und liefert meist NOT_FOUND; verwenden Sie ES/PT/FR/IT/DE/PV/NA. Bei foralen Katastern (NA, PV) ergänzt das Feld message einen Formathinweis.
RATE_LIMIT_EXCEEDED / DAILY_LIMIT_REACHED429KEY_RATE_002: Burst-Limit pro Minute Ihres Schlüssels. RATE_LIMIT_EXCEEDED: zu viele Anfragen von derselben IP. DAILY_LIMIT_REACHED: Tageslimit für kostenlose Suchen ohne API-Schlüssel.
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503Der offizielle Katasterdienst des Landes ist ausgefallen oder in Wartung. Erneut versuchen.
GET/api/catastro/:refcat14/units

Alle Einheiten eines spanischen Grundstücks anhand der 14-stelligen Referenz in einem einzigen Aufruf (bis zu 200 pro Seite, mit Cursor). Jede Einheit enthält Nutzung, Fläche, Miteigentumsanteil, Baujahr und Treppe/Etage/Tür. Kostet 1 Kontingenteinheit pro zurückgegebener Einheit (mindestens 1). Erfordert einen API-Key oder eine angemeldete Sitzung. Quelle: Dirección General del Catastro.

Parameter

:refcat14string14-stellige Katasterreferenz des Grundstücks (z. B. 0745901TG4304N)
cursorstringOptional. Der nextCursor der vorherigen Seite, wenn truncated true ist.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/0745901TG4304N/units"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "0745901TG4304N",
    "direccion": "AV JOSE RGUEZ BORBOLLA CAMOY 10",
    "codigoPostal": "41704",
    "municipio": "DOS HERMANAS",
    "provincia": "Sevilla",
    "usoGeneral": "Residencial",
    "superficieTotal": 32789,
    "anioConstruccion": 2023,
    "totalUnidades": 200,
    "totalUnidadesFinca": 365,
    "truncated": true,
    "nextCursor": "0745901TG4304N0201MZ",
    "dataSource": "clone",
    "dataDate": "2026-08-19",
    "attribution": "Dirección General del Catastro",
    "unidades": [
      {
        "refCatastral": "0745901TG4304N0002KH",
        "planta": "01",
        "puerta": "B",
        "uso": "Residencial",
        "superficie": 155,
        "participacion": 0.279543,
        "anio": 2023,
        "descripcion": "Planta 01, Pta. B - Residencial"
      }
    ]
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Der Cursor ist keine 20-stellige Referenz dieses Grundstücks.
UNAUTHORIZED / UNT_001401Weder Organisations-API-Key noch angemeldete Sitzung.
NOT_FOUND404Das Grundstück ist weder in unserer Kopie des Catastro noch im Catastro.
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503Der offizielle Katasterdienst des Landes ist ausgefallen oder in Wartung. Erneut versuchen.
GET/api/catastro/:refcat/terrain

Relief über dem Flurstückspolygon aus Copernicus DEM GLO-30 (30 m): mittlere, minimale und maximale Höhe, mittlere und maximale Neigung mit Klasse und Verteilung, Flächenanteil mit Neigung > 10 % und vorherrschende Exposition. Dazu der Abgleich mit Natura 2000 (EUA, end 2024) und national ausgewiesenen Schutzgebieten (CDDA 2025): Name, Code, Typ (SPA = Vogelschutzgebiet, SCI = FFH-Gebiet) und Anteil des Flurstücks in jedem Gebiet. Jeder Block nennt Quelle und Lizenz. status = ok, no_data (keine Abdeckung) oder unavailable (vorübergehender Fehler, erneut versuchen). Gleiches Flurstück, gleiche Kontingenteinheit wie die Abfrage.

Parameter

:refcatstringKatasterreferenz
countrystringOptional. ES, PV, NA, PT, FR, IT, DE; wird aus der Referenz abgeleitet, wenn es fehlt.
lat, lngnumberNur für die übrigen Länder mit eigener Geometrie: ungefähre Lage des Flurstücks, um den Umriss zu finden.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/10194A00110004/terrain?country=ES"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refcat": "10194A00110004",
    "country": "ES",
    "relief": {
      "status": "ok",
      "elevation_m": { "mean": 365.8, "min": 212.3, "max": 506.6 },
      "slope": {
        "mean_pct": 36.5, "mean_deg": 20, "max_pct": 71.6,
        "class": "very_steep", "max_class": "very_steep", "share_over_10_pct": 98.4,
        "classes_pct": { "flat": 0.2, "gentle": 1.4, "moderate": 6.8, "steep": 20, "very_steep": 71.7 }
      },
      "aspect": {
        "dominant": "N", "dominant_share_pct": 75.3, "mean_deg": 0, "flat_share_pct": 0.2,
        "sectors_pct": { "N": 75.3, "NE": 10.6, "E": 0.6, "SE": 0.1, "S": 0, "SW": 1, "W": 1.4, "NW": 10.8 }
      },
      "sample": { "method": "parcel", "cells": 1448, "resolution_m": 31 },
      "source": { "name": "Copernicus DEM GLO-30", "license": "Copernicus DEM licence (free, commercial use allowed)", "attribution": "© DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved" }
    },
    "protected_areas": {
      "status": "ok",
      "intersects": true,
      "inside": true,
      "max_overlap_pct": 100,
      "natura2000": [
        { "code": "ES0000014", "name": "Monfragüe y las Dehesas del Entorno", "type": "SPA", "country": "ES", "overlap_pct": 100 },
        { "code": "ES4320077", "name": "Monfragüe", "type": "SCI", "country": "ES", "overlap_pct": 100 }
      ],
      "national": [
        { "code": "4820", "name": "Monfragüe", "designation": "National Park", "country": "ES", "overlap_pct": 100 }
      ],
      "method": "parcel",
      "sources": [
        { "name": "Natura 2000", "license": "CC BY 4.0", "edition": "end 2024" },
        { "name": "Nationally designated areas (CDDA)", "license": "CC BY 4.0", "edition": "2025" }
      ]
    },
    "calculated_at": "2026-09-30T19:45:02Z",
    "provenance": "3"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
UNAUTHORIZED401Weder Organisations-API-Key noch angemeldete Sitzung.
NOT_FOUND404Das Flurstück existiert nicht oder es gibt außerhalb der sieben Hauptländer an dieser Position keinen Umriss.
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
TRN_040503Der offizielle Katasterdienst des Landes ist ausgefallen oder in Wartung. Erneut versuchen.
GET/api/catastro/:refcat/ground-motion

Vertikale und Ost-West-Geschwindigkeit des Bodens über dem Flurstückspolygon aus dem European Ground Motion Service von Copernicus (EGMS L3 Ortho, Sentinel-1-Radar, 100-m-Raster, 2020-2024): Mittelwert, stärkste Senkung, stärkste Hebung, Klasse, Zellen mit Daten und mittlere Verschiebung jedes Jahres. Ohne Reflektoren (Feld, Wald, Wasser) lautet die Antwort status = no_data mit reason = no_reflectors statt einer Schätzung. Gesamte EGMS-Abdeckung (EEA-39). Mit Quelle, Lizenz und der anzuzeigenden Quellenangabe. Gleiches Flurstück, gleiche Kontingenteinheit wie die Abfrage.

Parameter

:refcatstringKatasterreferenz
countrystringOptional. ES, PV, NA, PT, FR, IT, DE; wird aus der Referenz abgeleitet, wenn es fehlt.
lat, lngnumberNur für die übrigen Länder mit eigener Geometrie: ungefähre Lage des Flurstücks, um den Umriss zu finden.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/30024A16000286/ground-motion?country=ES"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refcat": "30024A16000286",
    "country": "ES",
    "status": "ok",
    "period": { "from": "2020-01", "to": "2024-12", "label": "2020-2024" },
    "ground_motion": {
      "class": "severe_subsidence",
      "worst_class": "severe_subsidence",
      "vertical": {
        "mean_mm_year": -40.9, "max_subsidence_mm_year": -40.9, "max_uplift_mm_year": 0,
        "std_mm_year": 0.1, "acceleration_mm_year2": -0.7, "rmse_mm": 2.3
      },
      "east_west": { "mean_mm_year": -5.1, "std_mm_year": 0.1 },
      "yearly_displacement": [
        { "year": 2020, "mm": -17.9 }, { "year": 2021, "mm": -57.2 }, { "year": 2022, "mm": -95.8 },
        { "year": 2023, "mm": -141.8 }, { "year": 2024, "mm": -179.8 }
      ],
      "cells_with_data": 1, "cells_considered": 1, "coverage_pct": 100,
      "basis": "parcel", "cell_size_m": 100
    },
    "source": {
      "name": "European Ground Motion Service (EGMS) L3 Ortho",
      "license": "Copernicus data policy (Regulation (EU) No 1159/2013): free, commercial use allowed with attribution",
      "attribution": "Contains modified Copernicus Land Monitoring Service information, European Ground Motion Service 2020-2024 (© European Union, Copernicus Land Monitoring Service, EEA)",
      "resolution": "100 m"
    },
    "calculated_at": "2026-10-01T06:14:34Z",
    "provenance": "1"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
UNAUTHORIZED401Weder Organisations-API-Key noch angemeldete Sitzung.
NOT_FOUND404Das Flurstück existiert nicht oder es gibt außerhalb der sieben Hauptländer an dieser Position keinen Umriss.
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
GMV_040503Der offizielle Katasterdienst des Landes ist ausgefallen oder in Wartung. Erneut versuchen.
POST/api/search/coordinates

Umgekehrte Geokodierung: Katasterflurstück an GPS-Koordinaten finden.

Parameter

latitudenumberBreitengrad (WGS84)
longitudenumberLängengrad (WGS84)
countrystringLändercode (optional: wird aus der Referenz erkannt)
curl -X POST -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude": 40.4196, "longitude": -3.7029, "country": "ES"}' \
  "https://api.parcelgps.com/api/search/coordinates"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "referenciaCatastral": "0447502VK4704G",
    "refCat14": "0447502VK4704G",
    "direccion": "CL TRES CRUCES 7",
    "municipio": "MADRID",
    "tipoInmueble": "Urbano",
    "coordenadas": { "latitud": 40.4196984, "longitud": -3.7028067 },
    "googleMapsUrl": "https://www.google.com/maps?q=40.419698,-3.702807",
    "pais": "ES"
  },
  "searchesRemaining": -1
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Koordinaten außerhalb der Grenzen des angegebenen oder erkannten Landes, oder lat/lng fehlen oder sind fehlerhaft.
NOT_FOUND404An diesen Koordinaten gibt es kein Flurstück.
RATE_LIMIT_EXCEEDED / DAILY_LIMIT_REACHED429KEY_RATE_002: Burst-Limit pro Minute Ihres Schlüssels. RATE_LIMIT_EXCEEDED: zu viele Anfragen von derselben IP. DAILY_LIMIT_REACHED: Tageslimit für kostenlose Suchen ohne API-Schlüssel.
SERVICE_UNAVAILABLE503Katasterdienst vorübergehend nicht verfügbar.
POST/api/search/address/parse

Katasterflurstück per Postadresse suchen.

Parameter

direccionstringAdresse als Freitext (nur Spanien). Empfohlenes Format: «Calle, Número, Municipio» — z. B. «Calle Mallorca, 213, Barcelona». Die Hausnummer kann auch direkt an der Straße stehen («Gran Vía 1, Madrid»).
curl -X POST -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"direccion": "Gran Via 1, Madrid"}' \
  "https://api.parcelgps.com/api/search/address/parse"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "referenciaCatastral": "0847106VK4704F",
    "refCat14": "0847106VK4704F",
    "direccion": "CL GRAN VIA, 1, Madrid",
    "tipoVia": "CL",
    "nombreVia": "GRAN VIA",
    "numero": 1,
    "municipio": "Madrid",
    "provincia": "MADRID"
  },
  "searchesRemaining": -1
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Ungültiger Request-Body (fehlende Felder oder fehlerhaftes JSON).
NOT_FOUND404Adresse nicht gefunden (Straße, Gemeinde oder Hausnummer existiert nicht oder hat keine Katasterentsprechung). Die Adresssuche ist nur in Spanien verfügbar.
RATE_LIMIT_EXCEEDED / DAILY_LIMIT_REACHED429KEY_RATE_002: Burst-Limit pro Minute Ihres Schlüssels. RATE_LIMIT_EXCEEDED: zu viele Anfragen von derselben IP. DAILY_LIMIT_REACHED: Tageslimit für kostenlose Suchen ohne API-Schlüssel.

Baskenland (PV)

Forale Kataster — Araba/Álava, Bizkaia und Gipuzkoa (INSPIRE-WFS)

GET/api/catastro/:refcat?country=PV

Flurstückabfrage in den drei foralen Gebieten. Erfordert country=PV: Ihre Flurstücke haben ein eigenes Kataster und stehen nicht im zentralen Catastro.

Parameter

:refcatstringForale Referenz. Bizkaia mit Punkten (48.020.1611.02001); Álava und Gipuzkoa in Ziffern (64010007, 8594149).
countrystringErforderlich: PV.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/48.020.1611.02001?country=PV"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "48.020.1611.02001",
    "pais": "PV",
    "municipio": "Bizkaia",
    "provincia": "Bizkaia",
    "latitud": 43.263633,
    "longitud": -2.935856,
    "superficieParcela": 3061,
    "googleMapsUrl": "https://www.google.com/maps?q=43.263633,-2.935856",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Mit country=ES (falsch)

404
{
  "success": false,
  "error": "No parcel was found for this reference or location.",
  "code": "NOT_FOUND"
}

Portugal (PT)

Portugiesisches Kataster — Direção-Geral do Território

GET/api/catastro/:refcat?country=PT

Portugiesische Flurstückdaten per Katasterreferenz abrufen.

Parameter

:refcatstringPortugiesische Katasterreferenz (z. B. AAA000587359). Die Abdeckung ist teilweise (~30 %); Gebiete wie Lissabon und Porto sind von der DGT noch nicht digitalisiert.
countrystringErforderlich: PT.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/AAA000587359?country=PT"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "AAA000587359",
    "pais": "PT",
    "municipio": "TAVIRA, Tavira (Santa Maria e Santiago)",
    "latitud": 37.127156,
    "longitud": -7.648066,
    "superficieParcela": 49,
    "googleMapsUrl": "https://www.google.com/maps?q=37.127156,-7.648066",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Frankreich (FR)

Französisches Kataster — Cadastre / Géoplateforme

GET/api/search/address/candidates?country=FR

Wandelt eine französische Adresse in das darunterliegende Flurstück (14-stellige IDU) um: Geokodierung mit der Base Adresse Nationale, dann Abfrage des amtlichen Katasters an diesem Punkt. Kandidaten nach Konfidenz sortiert (0 bis 1). Kostet 1 Kontingenteinheit nur, wenn Kandidaten zurückkommen.

Parameter

qstringFree-text address: street and number, municipality (and postcode if you have it).
countrystringErforderlich: FR.
street / number / municipality / postcode / limitstringOptional: street, number, municipality, postcode (override what is read from q) and limit (1-10, default 5).
curl -G -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/search/address/candidates" \
  --data-urlencode "q=8 boulevard du Port, Amiens" -d country=FR

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "consulta": { "texto": "8 boulevard du Port, Amiens", "calle": "boulevard du Port", "numero": 8, "municipio": "Amiens" },
    "candidatos": [
      {
        "refCatastral": "80021000VA0065",
        "pais": "FR",
        "direccion": "8 Boulevard du Port 80000 Amiens",
        "numero": 8,
        "codigoPostal": "80000",
        "municipio": "Amiens",
        "provincia": "Somme",
        "latitud": 49.897442,
        "longitud": 2.290084,
        "confianza": 0.99,
        "coincideNumero": true,
        "coincideMunicipio": true,
        "enCopia": false
      }
    ],
    "attribution": "Base Adresse Nationale (data.gouv.fr); Plan cadastral (DGFiP, Géoplateforme IGN)"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Die Referenz hat kein gültiges Format für das Land.
NOT_FOUND404No building entrance with a cadastral reference matches the address.
CNV_COVERAGE422Das Land hat keine Adresssuche (SE, HR oder ein nicht abgedecktes Land)
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503CartoCiudad is not answering. Retry after Retry-After.
GET/api/catastro/:refcat?country=FR

Französische Flurstückdaten per Katasterreferenz abrufen.

Parameter

:refcatstringFranzösische Katasterreferenz (z. B. 75104000AE0003)
countrystringErforderlich: FR.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/75104000AE0003?country=FR"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "75104000AE0003",
    "pais": "FR",
    "municipio": "Paris",
    "provincia": "75",
    "latitud": 48.856347,
    "longitud": 2.352415,
    "superficieParcela": 15168,
    "googleMapsUrl": "https://www.google.com/maps?q=48.856347,2.352415",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Italien (IT)

Italienisches Kataster — Agenzia delle Entrate

GET/api/search/address/candidates?country=IT

Wandelt eine italienische Adresse in die darunterliegende Particella um: Geokodierung mit OpenStreetMap (Photon, Nominatim als Reserve), dann Abfrage der Agenzia delle Entrate an diesem Punkt. Liefert nie Straßen oder Gewässer (STRADA, ACQUA): fällt der Punkt auf die Straße, wird das nächstgelegene Flurstück genommen. Kostet 1 Kontingenteinheit nur, wenn Kandidaten zurückkommen.

Parameter

qstringFree-text address: street and number, municipality (and postcode if you have it).
countrystringErforderlich: IT.
street / number / municipality / postcode / limitstringOptional: street, number, municipality, postcode (override what is read from q) and limit (1-10, default 5).
curl -G -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/search/address/candidates" \
  --data-urlencode "q=Via Toledo 256, Napoli" -d country=IT

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "consulta": { "texto": "Via Toledo 256, Napoli", "calle": "Via Toledo", "numero": 256, "municipio": "Napoli" },
    "candidatos": [
      {
        "refCatastral": "F839_019800.166",
        "pais": "IT",
        "direccion": "Via Toledo 256, 80132 Napoli",
        "numero": 256,
        "codigoPostal": "80132",
        "municipio": "Napoli",
        "provincia": "Napoli",
        "latitud": 40.8386034,
        "longitud": 14.248223,
        "confianza": 1,
        "coincideNumero": true,
        "coincideMunicipio": true,
        "enCopia": false
      }
    ],
    "attribution": "OpenStreetMap contributors (ODbL); Agenzia delle Entrate, cartografia catastale (CC BY 4.0)"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Die Referenz hat kein gültiges Format für das Land.
NOT_FOUND404No building entrance with a cadastral reference matches the address.
CNV_COVERAGE422Das Land hat keine Adresssuche (SE, HR oder ein nicht abgedecktes Land)
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503CartoCiudad is not answering. Retry after Retry-After.
GET/api/catastro/:refcat?country=IT

Italienische Flurstückdaten per Katasterreferenz abrufen.

Parameter

:refcatstringItalienische Katasterreferenz (foglio/particella, z. B. H501A048100.A)
countrystringErforderlich: IT.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/H501A048100.A?country=IT"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "H501A048100.A",
    "pais": "IT",
    "municipio": "H501",
    "provincia": "H501",
    "latitud": 41.902698,
    "longitud": 12.496247,
    "superficieParcela": 1059,
    "googleMapsUrl": "https://www.google.com/maps?q=41.902698,12.496247",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Deutschland (DE)

Deutsches Kataster — ALKIS (8 Bundesländer)

GET/api/catastro/:refcat?country=DE

Deutsche Flurstückdaten per Katasterreferenz abrufen.

Parameter

:refcatstringDeutsche Katasterreferenz (Flurstückskennzeichen)
countrystringErforderlich: DE.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/05495803101122?country=DE"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "05495803101122",
    "pais": "DE",
    "latitud": 50.937566,
    "longitud": 6.960140,
    "superficieParcela": 54,
    "googleMapsUrl": "https://www.google.com/maps?q=50.937566,6.960140",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Österreich (AT)

Österreichisches Kataster — BEV (Katastralgemeinde / Grundstück)

GET/api/catastro/:refcat?country=AT

Flurstückabfrage in Österreich. Erfordert country=AT. Die Referenz ist KATASTRALGEMEINDE-GRUNDSTÜCK. Teilweise Abdeckung, wird ausgebaut.

Parameter

:refcatstringFormat Katastralgemeinde-Grundstück (z. B. 01004-1711).
countrystringErforderlich: AT.
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/01004-1711?country=AT"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "refCatastral": "01004-1711",
    "pais": "AT",
    "municipio": "Innere Stadt",
    "provincia": "Wien",
    "latitud": 48.208478,
    "longitud": 16.372810,
    "uso": "Gebäude, Straßenverkehrsanlagen",
    "superficieParcela": 10641,
    "googleMapsUrl": "https://www.google.com/maps?q=48.208478,16.372810",
    "poligono": [ /* geometría de la parcela */ ]
  }
}

Mit country=ES (falsch)

400
{
  "success": false,
  "error": "A Spanish cadastral reference has at least 14 characters. For any other country add ?country=XX (coverage: https://parcelgps.com/developers).",
  "code": "VALIDATION_ERROR"
}

Übriges Europa (Adresse)

Die Adresssuche funktioniert in 26 Ländern gleich: in den Niederlanden, der Schweiz, Polen, Tschechien, Estland, Dänemark und Flandern mit dem amtlichen Adressregister, sonst mit OpenStreetMap. Das Flurstück stammt immer aus dem amtlichen Kataster des jeweiligen Landes. Schweden und Kroatien haben sie nicht.

GET/api/search/address/candidates?country=NL

Wandelt eine europäische Adresse in das Flurstück darunter um: geokodiert mit dem nationalen Adressregister (PDOK in den Niederlanden) oder OpenStreetMap und fragt an diesem Punkt das amtliche Kataster des Landes ab. Kandidaten nach Sicherheit sortiert (0 bis 1). Kostet 1 Kontingenteinheit nur, wenn Kandidaten zurückkommen.

Parameter

qstringFree-text address: street and number, municipality (and postcode if you have it).
countrystringErforderlich: NL.
street / number / municipality / postcode / limitstringOptional: street, number, municipality, postcode (override what is read from q) and limit (1-10, default 5).
curl -G -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/search/address/candidates" \
  --data-urlencode "q=Damrak 1, 1012 LG Amsterdam" -d country=NL

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "consulta": { "texto": "Damrak 1, 1012 LG Amsterdam", "calle": "Damrak", "numero": 1, "municipio": "Amsterdam", "codigoPostal": "1012 LG" },
    "candidatos": [
      {
        "refCatastral": "ASD04-F-3937",
        "pais": "NL",
        "direccion": "Damrak 1, 1012LG Amsterdam",
        "numero": 1,
        "codigoPostal": "1012LG",
        "municipio": "Amsterdam",
        "provincia": "Noord-Holland",
        "latitud": 52.37714446,
        "longitud": 4.89803846,
        "confianza": 1,
        "coincideNumero": true,
        "coincideMunicipio": true,
        "enCopia": false
      }
    ],
    "attribution": "PDOK Locatieserver (Kadaster, BAG); Kadaster, Basisregistratie Kadaster (PDOK, CC BY 4.0)"
  }
}

Mögliche Fehler

CodeHTTPBeschreibung
VALIDATION_ERROR400Die Referenz hat kein gültiges Format für das Land.
NOT_FOUND404No building entrance with a cadastral reference matches the address.
CNV_COVERAGE422Das Land hat keine Adresssuche (SE, HR oder ein nicht abgedecktes Land)
KEY_AUTH_004429Monatskontingent des API-Schlüssels aufgebraucht (siehe X-Quota-*-Header).
SERVICE_UNAVAILABLE503CartoCiudad is not answering. Retry after Retry-After.

Flurstück-Intelligence und Exporte

Geometrie, Solarpotenzial, landwirtschaftliche Daten und Datei-Exporte (KML/GPX/PDF/DXF), verfügbar mit Ihrem API-Key. Marktdaten und der Investment-Score bleiben im Web und in der App (Pro) und werden nicht über die API bereitgestellt.

GET/api/catastro/:refcat/polygon

GeoJSON-Polygon eines Flurstücks abrufen.

Parameter

:refcatstringKatasterreferenz
countrystringLändercode (Query-Parameter, Standard: ES)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/9872023VH5797S/polygon"

Antwortbeispiel

200 OK
{
  "data": {
    "refcat": "9872023VH5797S",
    "geojson": {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [ [ [-3.463391, 38.640317], [-3.463174, 38.640217], /* ... */ ] ]
      }
    }
  }
}

Monatskontingent aufgebraucht

429
{
  "success": false,
  "error": "Monthly quota used up (5000/5000). Upgrade at https://parcelgps.com/developers",
  "code": "KEY_AUTH_004"
}
GET/api/catastro/:refcat/solar

Solarpotenzial-Daten (PVGIS) eines europäischen Flurstücks abrufen.

Parameter

:refcatstringKatasterreferenz
countrystringLändercode (Query-Parameter, Standard: ES)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/9872023VH5797S/solar"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "kwh_year": 23749.9,
    "kw_instalables": 17.86,
    "ahorro_anual_eur": 3562.49,
    "amortizacion_anos": 5,
    "co2_evitado_kg": 5533.73,
    "irradiacion_media": 1807.08,
    "nota_solar": 5,
    "orientacion_optima": "Sur",
    "angulo_inclinacion": 34,
    "costo_instalacion_eur": 17865,
    "disponible": true,
    "estado": "ok",
    "fuente": "PVGIS (JRC)",
    "economics": {
      "autoconsumo_kwh_ano": 5000,
      "excedentes_kwh_ano": 18749.9,
      "ingreso_neto_anual_eur": 1473.18,
      "payback_anos": 12.13,
      "tir_pct": 6.56,
      "retorno_total_25_anos_eur": 18964.5
    }
  }
}

Flurstück ohne Solardaten

200
{
  "success": true,
  "data": { "disponible": false, "estado": "sin_datos" }
}
GET/api/catastro/:refcat/agro

Landwirtschaftliche Flächendaten eines Flurstücks (SIGPAC): Hauptkultur, Bodennutzung, Hangneigung, Höhe und Fläche. Nur ländliche Flurstücke — städtische liefern "cultivo_principal": "urbano".

Parameter

:refcatstringKatasterreferenz
countrystringLändercode (Query-Parameter, Standard: ES)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/catastro/23058A00700036/agro"

Antwortbeispiel

200 OK
{
  "success": true,
  "data": {
    "agro": {
      "cultivo_principal": "olivar",
      "uso_suelo": "Asociación olivar - viñedo",
      "superficie_ha": 10.6045,
      "coef_regadio": 1,
      "ndvi": {
        "valor_medio": 0.18,
        "salud_cultivo": "bajo",
        "ultima_actualizacion": "2026-06-18T00:00:00Z"
      },
      "precios_mercado": {
        "precio_kg": 8.5,
        "tendencia": "+12.5% vs periodo anterior"
      },
      "recinto": {
        "provincia": 23,
        "municipio": 58,
        "poligono": 7,
        "parcela": 36,
        "recinto": 1,
        "altitud": 559,
        "pendiente_media": 12.3
      }
    }
  }
}

Monatskontingent aufgebraucht

429
{
  "success": false,
  "error": "Monthly quota used up (5000/5000). Upgrade at https://parcelgps.com/developers",
  "code": "KEY_AUTH_004"
}
GET/api/export/kml?refcat=:refcat

Flurstückdaten im KML-Format exportieren (Google Earth).

Parameter

refcatstringKatasterreferenz
countrystringLändercode (optional: wird aus der Referenz erkannt)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/export/kml?refcat=9872023VH5797S" -o parcel.kml

Antwortbeispiel

200 OK
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Placemark>
      <name>9872023VH5797S</name>
      ...
    </Placemark>
  </Document>
</kml>
GET/api/export/gpx?refcat=:refcat

Flurstückdaten im GPX-Format exportieren (GPS-Navigationsgeräte).

Parameter

refcatstringKatasterreferenz
countrystringLändercode (optional: wird aus der Referenz erkannt)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parcelgps.com/api/export/gpx?refcat=9872023VH5797S" -o parcel.gpx

Antwortbeispiel

200 OK
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1">
  <wpt lat="40.4168" lon="-3.7038">
    <name>9872023VH5797S</name>
  </wpt>
</gpx>

Änderungsprotokoll

Was diese Woche in der API veröffentlicht wurde, mit der Änderungsnummer im Repository. Die Antworten bleiben kompatibel: Kein bestehendes Feld wird umbenannt.

  • /api/catastro/:refcat/units liefert jetzt auch Grundstücke im Baskenland und in Navarra aus unserer Kopie der foralen Kataster, mit demselben Vertrag wie das übrige Spanien (200 pro Seite, Cursor, ETag, 1 Kontingenteinheit pro Einheit), der Quellenangabe jeder foralen Behörde und ohne Miteigentumsanteil, den die offenen foralen Daten nicht veröffentlichen. Álava wird noch geladen. Änderungen: #101, #102, #103

  • Von der Adresse zum Flurstück in 26 europäischen Ländern mit /api/search/address/candidates?country=XX: das amtliche Adressregister, wo es eines gibt (Niederlande, Schweiz, Polen, Tschechien, Estland, Dänemark, Flandern), und sonst OpenStreetMap, mit höchstens 10 Sekunden pro Punkt. Änderungen: #93, #94
  • Neuer Endpunkt /api/catastro/:refcat/ground-motion: vertikale und Ost-West-Bodengeschwindigkeit aus Copernicus EGMS 2020-2024 im gesamten Abdeckungsgebiet, einschließlich der neu veröffentlichten Kacheln der Niederlande, Belgiens und der Pyrenäen. Änderungen: #80, #91
  • Neuer climate-Block in /terrain mit den ERA5-Land-Normalwerten. Das Raster wird gerade geladen: Bis dahin lautet die Antwort status unavailable. Änderungen: #78
  • Außerhalb Spaniens: availableFields gibt an, was jede Antwort enthält, leere Antworten kosten nichts, /solar /agro /score antworten mit 422 CNV_COVERAGE, wo keine Daten vorliegen, mehrdeutige Ziffern ergeben 300 CNV_AMBIGUOUS, die Referenz kommt vollständig zurück und Belgien liefert Breiten- und Längengrad in der richtigen Reihenfolge. Änderungen: #76
  • Mit einem API-Schlüssel kommen Fehlertexte auf Englisch; das Feld code ändert sich nicht. Änderungen: #77
  • Von der Adresse zum Flurstück in Frankreich (Base Adresse Nationale) und Italien; Deutschland und Österreich per Koordinaten mit Fläche und Umriss; Zypern in unter einer Sekunde; /terrain und /ground-motion finden den Umriss im übrigen Europa. Änderungen: #83, #84, #85, #86
  • POST /api/search/coordinates leitet alle Länder so weiter wie die GET-Variante. Änderungen: #79
  • /terrain und /ground-motion dekodieren Referenzen mit Schrägstrich (Belgien, Tschechien, Polen): Das Feld refcat kommt nicht mehr als %2F zurück. Änderungen: #95

  • Neuer Endpunkt /api/catastro/:refcat/terrain: Relief über dem Umriss (Copernicus DEM GLO-30) und Verschneidung mit Natura 2000 und nationalen Schutzgebieten (CDDA), ohne Gebiete doppelt aufzuführen, die in beiden Listen stehen. Änderungen: #67, #69, #70
  • Neuer Endpunkt /api/catastro/:refcat14/units: alle Einheiten einer spanischen Finca, 200 pro Seite mit Cursor, zu 1 Kontingenteinheit pro gelieferter Einheit und nie mehr, als Ihnen verbleibt; Baskenland und Navarra antworten mit 422 CNV_COVERAGE. Änderungen: #53, #55, #73, #74, #75
  • Von der Adresse zur Finca in Spanien mit Kandidaten aus CartoCiudad, ETag und kostenlosen 304-Reimporten sowie die OpenAPI-3.1-Spezifikation unter /api/openapi.json. Änderungen: #72
  • Header X-Quota-Limit, X-Quota-Remaining, X-Quota-Reset und X-Quota-Tier mit dem Monatskontingent sowie ein Minutenlimit pro Schlüssel je nach Plan. Änderungen: #52, #58