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)

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)

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)

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)

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)

Poll until the task reaches a terminal status: completed, completed_with_errors, or failed.

4. Get Task Summary (GET /cadastral/tasks/:id/summary)

Quick overview of how many parcels succeeded vs failed.

5. View Results + Map (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)

Promote successful parcel results into the supply chain as plots (or sheds). Runs the standard normalization pipeline.

7. Verify on Locations (GET /locations/plots)

Confirm the ingested parcels are now visible as plots.

Prerequisites

  • Valid API key with parcels:write and parcels:read scopes
  • Cadastral service emulator running (Docker Compose) or external API token configured