Cadastral Parcel Search Workflow
End-to-end workflow for searching cadastral parcels, reviewing results on a map, and optionally ingesting them as plots or sheds into the supply chain.
The workflow is shaped as search → wait → review → ingest → verify because a parcel lookup is a resolution step, not the final product: it turns bare coordinates into official boundary polygons, but you almost always want to look at those polygons before committing them as supply-chain locations. Search and ingest are kept as separate calls so you can inspect (and discard failures) in between, rather than blindly promoting every lookup.
▶Use cases
- Land parcel verification — look up official cadastral boundaries for your sourcing coordinates to verify they correspond to real registered parcels
- Plot creation from parcels — search for parcels and ingest the results directly as plots, using official boundaries instead of estimated geometries
- EUDR geolocation support — obtain verified parcel polygons to strengthen the geolocation data in your Due Diligence Statements
- Supply chain data enrichment — add official boundary polygons, area measurements, and ownership details to your existing location data
▶Overview
Search Points ──→ Poll Task ──→ View Results + Map ──→ Ingest as Plots
│ (parcels) │
│ ▼
└── JSON body or file upload Plots visible on /locations/plots
▶Steps
▶1. Search Parcels — JSON body (POST /cadastral/parcels/search)
POST /cadastral/parcels/search)Submit a GeoJSON FeatureCollection of point coordinates. For small requests (≤500 points), the search completes synchronously. Larger requests are queued as background tasks.
▶2. Search Parcels — File upload (POST /cadastral/parcels/search)
POST /cadastral/parcels/search)Upload a file (CSV, GeoJSON, Shapefile, etc.) containing point geometries. File uploads always process asynchronously via a background task.
▶2b. Search Parcels — Forest fallback (POST /cadastral/parcels/search)
POST /cadastral/parcels/search)Optional variant with forest_fallback: true. Captures {{forest_parcel_task_id}} and
leaves {{parcel_task_id}} untouched.
▶2c. Search Parcels — Segmentation (POST /cadastral/parcels/search)
POST /cadastral/parcels/search)Optional variant with geometry_source: "segmentation". Captures
{{segmentation_parcel_task_id}} and leaves {{parcel_task_id}} untouched.
▶3. Get Task Status (GET /cadastral/tasks/:id)
GET /cadastral/tasks/:id)Poll until the task reaches a terminal status: completed, completed_with_errors, or failed.
▶4. Get Task Summary (GET /cadastral/tasks/:id/summary)
GET /cadastral/tasks/:id/summary)Quick overview of how many parcels succeeded vs failed.
▶5. View Results + Map (GET /cadastral/parcels/results/:id)
GET /cadastral/parcels/results/:id)Retrieve parcel polygons and render them on an interactive Leaflet map alongside the original input points. Failed lookups shown as red markers.
▶6. Ingest as Plots (POST /cadastral/parcels/results/:id/ingest)
POST /cadastral/parcels/results/:id/ingest)Promote successful parcel results into the supply chain as plots (or sheds). Runs the standard normalization pipeline.
▶7. Verify on Locations (GET /locations/plots)
GET /locations/plots)Confirm the ingested parcels are now visible as plots.
▶Prerequisites
- Valid API key with
parcels:writeandparcels:readscopes - Cadastral service emulator running (Docker Compose) or external API token configured