PrecisionDocs

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.

Three access surfaces, one API:

SurfaceHow it connectsBest for
RESTHTTPS + Authorization: Bearer pd_live_...Scripts, backends, ChatGPT Actions
Remote MCPhttps://api.precisiondocs.ai/mcp (OAuth, no key)Claude connectors, Claude Code, OpenAI Codex, Cursor remote MCP
Local MCPnpx -y @precisiondocs/mcp with a pd_live_ keyClaude Desktop, Cursor (Local tab), Gemini CLI

The machine-readable spec is at https://api.precisiondocs.ai/v1/openapi.json.

For guided, in-app connector setup (OpenAI, Claude, Cursor, Gemini CLI), use Account -> Integrations or the Help Center wizards. 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.

Other API topics