API Overview — Developer Docs
What the PrecisionDocs public API is, the base URL, and the three ways to connect.
What is the PrecisionDocs public API?
The PrecisionDocs public API lets your own tools, agents, and scripts drive the same project workflow the app uses: create a project for a site, wait for the knowledge base to build, ask the project agent cited questions, search indexed sources, generate reports, and download artifacts.
All REST endpoints live under https://api.precisiondocs.ai/v1.
Two access surfaces, one API:
| Surface | How it connects | Best for |
|---|---|---|
| Remote MCP | https://api.precisiondocs.ai/mcp - PrecisionDocs OAuth, no key | Claude Code, OpenAI Codex, Gemini CLI, Cursor, the Claude app, any MCP client |
| REST | HTTPS + Authorization: Bearer pd_live_... header | Scripts, backends, CI, ChatGPT Actions |
The machine-readable spec is at https://api.precisiondocs.ai/v1/openapi.json.
For copy-paste connector setup per client, use Account -> Integrations or the Help Center. This page is the endpoint-level reference.
Creating a project from an agent (wizard parity). A connected agent walks the same steps a person does in the app: POST /v1/parcels/resolve for each address or APN (candidates carry ll_uuid, address, size, confidence and GeoJSON geometry), POST /v1/parcels/preview with the chosen geometries to show the user the highlighted parcels, POST /v1/plan-check to learn which goal questions still need asking, then POST /v1/projects with dry_run: true and setup_mode: "wizard". The dry-run response is the pre-Create screen: estimate, prep_summary.sources (every governing source discovery found, with status and URL) and gaps - each source discovery could not settle, naming the request field that fills it (ordinance_url, county_ordinance_url, pending_gis_sources, or a skip_* flag the user must confirm). A confirmation_required response is the wizard asking a question; answer it by re-submitting with the field its options map to. Then create for real with an Idempotency-Key and poll GET /v1/projects/{id} until chat_ready.