Projects Lifecycle — Developer Docs
Create a project, poll readiness, and verify parcel zoning over REST.
How do I create and manage projects?
| Endpoint | What it does | Rate limit |
|---|---|---|
POST /v1/projects | Create a project (returns 202 — bootstrap runs async) | 8/min |
GET /v1/projects | List your projects (limit/offset pagination) | 60/min |
GET /v1/projects/{project_id} | Poll readiness + knowledge-base summary | 60/min |
PATCH /v1/projects/{project_id}/parcels/{parcel_index}/zoning | Verify or correct a parcel zoning designation | 30/min |
Creating a project (POST /v1/projects):
dry_run: truereturns a setup and cost estimate without creating anything.setup_mode: "wizard"(default) runs the same source-discovery gates as the in-app New Project wizard;setup_mode: "provided"preserves caller-supplied parcels and source decisions.- When the platform needs a decision (ambiguous parcels, source choices, duplicates), the API responds
422withconfirmation_requiredand the choices to present. Re-submit with the selections applied. - Send an
Idempotency-Keyheader so a retried create never makes a duplicate project.
Polling readiness (GET /v1/projects/{project_id}):
- Poll every 5–15 seconds until
chat_readyistrue. - The response carries a
readinessblock with per-target ordinance status, GIS layer states, supplemental source lanes, and advisories - use it to see exactly which lane is still open. - A ready bootstrap can still hold
chat_ready: falsewithzoning_verification_requireduntil every parcel's zoning is verified — confirm or correct each parcel via the zoning PATCH, then re-poll.