{"openapi":"3.1.0","info":{"title":"PrecisionDocs Public API v1","version":"1.0.0","description":"Create a project knowledge base, poll until it is chat-ready, ask the PrecisionDocs civil-engineering agent questions, and remint signed artifact download URLs."},"servers":[{"url":"https://api.precisiondocs.ai","description":"PrecisionDocs API"}],"paths":{"/v1/parcels/resolve":{"post":{"tags":["Public API v1"],"summary":"Resolve an address, APN, or coordinates to ranked parcel candidates","description":"The wizard's parcel picker, for a connected agent.\n\nSame resolver, scoring, and ranking as the in-app map (``/zoning/\nresolve-parcels``); the candidates carry Regrid identity (``ll_uuid``),\naddress, size, and geometry, so the agent can show the user a choice,\npreview the selection, and pass the confirmed parcels to create_project\nwith their geometry intact. Regrid spend is attributed to this org.","operationId":"resolveParcels","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelResolveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PrecisionDocsApiKey":[]}]}},"/v1/parcels/preview":{"post":{"tags":["Public API v1"],"summary":"Render candidate parcels as a confirmation image","description":"The parcel picker's highlighted map, as a PNG the agent can show.\n\nStateless: nothing is stored and no project exists yet. Pass the\n``geometry`` of each candidate the user chose from resolveParcels; the\nimage outlines them over aerial imagery so the user can confirm the\nselection before create_project spends credits.","operationId":"previewParcels","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelPreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PrecisionDocsApiKey":[]}]}},"/v1/plan-check":{"post":{"tags":["Public API v1"],"summary":"Stateless wizard plan check over goal text","description":"Decide which plan-check questions ``goal_text`` already answers.\n\nStateless wrapper over the wizard's classifier core (``run_plan_check``) -\nsame verdict shape (``answered``/``ask`` per key, plus ``typology`` when no\n``primary_typology`` is supplied) and the same fail-open contract:\n``{\"verdicts\": null}`` means the engine was unavailable and the caller\nshould fall back to asking every question. Values the engine settles are\n``derived``-provenance; a client-asserted typology is user_confirmed-class.","operationId":"planCheck","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PlanCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PlanCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PrecisionDocsApiKey":[]}]}},"/v1/projects":{"post":{"tags":["Public API v1"],"summary":"Create Project","operationId":"createProject","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectCreateRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectCreateResponse"}}}},"200":{"description":"Dry-run project setup preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectCreateResponse"}}}},"422":{"description":"Project setup confirmation required or request validation error.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/V1ProjectCreateResponse"},{"$ref":"#/components/schemas/HTTPValidationError"}]}}}}}},"get":{"tags":["Public API v1"],"summary":"List Projects","description":"List projects visible to this credential, newest first.\n\nAn org-scoped API key held by an owner sees every org project; every\nother credential - members, and any connector (MCP) session regardless\nof role - sees only projects it owns or is shared into. Rows are slim -\npoll GET /v1/projects/{project_id} for authoritative chat readiness.","operationId":"listProjects","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}":{"get":{"tags":["Public API v1"],"summary":"Get V1 Project","operationId":"getProject","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/parcels/{parcel_index}/zoning":{"patch":{"tags":["Public API v1"],"summary":"Update Project Parcel Zoning","operationId":"verifyProjectParcelZoning","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"parcel_index","in":"path","required":true,"schema":{"type":"integer","title":"Parcel Index"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelZoningRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ParcelZoningResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/sources":{"post":{"tags":["Public API v1"],"summary":"Add a source URL to a project","description":"Route a source URL through the one source router and commit its lane.\n\nOrdinance-family URLs dispatch the supplemental ingest, GIS links dispatch\nthe registration pipeline, everything else queues the URL document ingest.\n``duplicate`` and ``publisher_blocked`` dispatch nothing; a governing\nsuggestion never auto-dispatches (the explicit confirm stays on the in-app\nsurfaces) and answers 409.","operationId":"addProjectSource","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1AddProjectSourceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1AddProjectSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/gis-sources":{"post":{"tags":["Public API v1"],"summary":"Verify and register a GIS source URL","description":"Verify (quick-resolve) and register a user-provided GIS link through the\nsame pipeline the wizard and sources panel use: URL-to-REST backtracking,\ndeep layer validation, once-per-jurisdiction registration. Jurisdiction\nidentity is inherited from the project, never from the request.","operationId":"addProjectGisSource","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1AddGisSourceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1AddGisSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uploads/initiate":{"post":{"tags":["Public API v1"],"summary":"Admit a direct upload and mint its storage path","description":"ApiActor wrapper over the direct-upload initiate lane: metadata-only\nadmission, then the storage path mint bound to an ``ingestion_jobs`` row.\nSession-JWT callers upload bytes straight to Supabase Storage (TUS) with\ntheir own session; PrecisionDocs-issued credentials (API key, connector\ntoken) hold no Supabase session, so they additionally receive a\nservice-role signed upload URL scoped to the exact object path and PUT the\nbytes to it directly. Either way the client then calls\n``/v1/uploads/{job_id}/finalize``. Returns transport='legacy' where no TUS\nendpoint exists (local dev).","operationId":"initiateUpload","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UploadInitiateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UploadInitiateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uploads/{job_id}/finalize":{"post":{"tags":["Public API v1"],"summary":"Verify a direct upload landed and dispatch ingestion","description":"ApiActor wrapper over the direct-upload finalize lane: verify the object\nlanded in storage, atomically flip the job to queued, then dispatch the\nsame Celery ingest pipeline the session lane uses. Idempotent on the job\nstatus flip; the Idempotency-Key header additionally replays the response.","operationId":"finalizeUpload","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UploadFinalizeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UploadFinalizeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/site-knowledge":{"get":{"tags":["Public API v1"],"summary":"Retrieve structured site intelligence","description":"Structured, geometry-free site intelligence digest for a project.\n\nReturns zoning, flood, wetlands, soils, utilities, adjacency, environmental,\nfeasibility, spatial-layer, and knowledge-base sections built from persisted\nevidence — no LLM call, no credit spend. Use askAgent instead for cited\nprose analysis, and generate deliverables through the agent.","operationId":"getSiteKnowledge","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SiteKnowledgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/gis-exports":{"post":{"tags":["Public API v1"],"summary":"Create a stored GIS export","description":"Create a raw-geometry GIS export and return a signed download URL only.","operationId":"createGisExport","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GisExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GisExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/gis-exports/{artifact_id}":{"get":{"tags":["Public API v1"],"summary":"Remint a GIS export signed URL","operationId":"getGisExport","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GisExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/site-plan":{"get":{"tags":["Public API v1"],"summary":"Read concept site-plan geometry","description":"Latest compiled Site Plan Studio concept as a WGS84-only GeoJSON\nFeatureCollection, plus metrics and scenario.\n\nThe multi-MB IR is never returned raw. Until a concept compiles the\nresponse is an honest empty: has_concept=false with zero features.","operationId":"getSitePlan","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SitePlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/design-criteria":{"get":{"tags":["Public API v1"],"summary":"Read resolved zoning design criteria","description":"Resolved zoning standards per district with per-field provenance.\n\nAbsent values carry the two honest states (NOT_PROVIDED_IN_ORDINANCE when\nthe extraction corroborated the absence, NOT_LOCATED_IN_INDEXED_ORDINANCE\notherwise), never bare ambiguous nulls. When a compiled concept exists,\nits rule_inputs, rule_evidence_snapshot, and stormwater_context ride along.","operationId":"getDesignCriteria","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1DesignCriteriaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/yield-scenario":{"get":{"tags":["Public API v1"],"summary":"Read settled yield scenarios","description":"Latest settled yield_scenario facts per district, plus snapshot summaries.\n\nScenario values the user settled under a different district are inherited\ninto a partition miss, with the borrowing stated per key in ``inherited``.","operationId":"getYieldScenario","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1YieldScenarioResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/maps":{"post":{"tags":["Public API v1"],"summary":"Render a site map or georeferenced aerial snapshot","description":"Render a map over the project's parcels and return a signed download URL.\n\n``site_map`` is the locator exhibit PDF (parcel outline, street labels,\nscale bar, north arrow). ``aerial`` is the bare aerial image plus the\ngeoreference (CRS, both bboxes, world file) needed to place it under CAD\ngeometry. Both need parcels only, so a map is available as soon as the\nproject has geometry - it does not wait on ordinance bootstrap.","operationId":"createProjectMap","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MapCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MapResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/site-plan-exports":{"post":{"tags":["Public API v1"],"summary":"Create a site-plan CAD export","description":"Render the latest concept to LandXML, DXF, or GeoJSON and return a\nsigned download URL only - geometry travels as a file, never inline.","operationId":"createSitePlanExport","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SitePlanExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SitePlanExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/search":{"post":{"tags":["Public API v1"],"summary":"Search the project knowledge base","description":"Hybrid semantic + keyword retrieval over the project's indexed knowledge\nbase (governing ordinances, reference sources, uploaded documents).\n\nReturns ranked text chunks with citation metadata (document, section,\npage). No LLM call — flat 2-credit charge per successful search. Use\naskAgent for cited prose analysis over the same corpus.","operationId":"searchProject","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/summaries":{"post":{"tags":["Public API v1"],"summary":"Create a constrained project summary","description":"One-pass LLM summary over geometry-free site knowledge and top KB chunks.","operationId":"createSummary","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SummaryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1SummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/messages":{"post":{"tags":["Public API v1"],"summary":"Ask Agent","operationId":"askAgent","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Public API v1"],"summary":"List Message Turns","description":"List prior public-API assistant turns, newest first.\n\nWeb-chat turns are not visible on this surface. Fetch a full answer with\ngetMessage.","operationId":"listMessages","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/messages/{turn_id}":{"get":{"tags":["Public API v1"],"summary":"Get Message Turn","operationId":"getMessage","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"turn_id","in":"path","required":true,"schema":{"type":"string","title":"Turn Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/reports":{"get":{"tags":["Public API v1"],"summary":"List Report Jobs","description":"List report jobs for a project, newest first. Poll getReport for detail.","operationId":"listReports","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReportListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Public API v1"],"summary":"Generate Project Report","description":"Dispatch async generation of a project deliverable and return a poll URL.\n\nAn explicit generate request always dispatches — there is no\ncompleted-artifact dedup here. Duplicate POSTs attach to the in-flight job\nfor the same project + report type and return the same job_id instead of\ndouble-billing.","operationId":"generateReport","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReportCreateRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReportCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/reports/{job_id}":{"get":{"tags":["Public API v1"],"summary":"Get Report Job","description":"Poll an async report job. Failures never expose internal error detail.","operationId":"getReport","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReportJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/artifacts":{"get":{"tags":["Public API v1"],"summary":"List Artifacts","description":"List ready generated deliverables, newest first.\n\nNo download URLs here — remint a fresh signed URL via getArtifact.","operationId":"listArtifacts","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ArtifactListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/artifacts/{artifact_id}":{"get":{"tags":["Public API v1"],"summary":"Get Artifact","operationId":"getArtifact","security":[{"PrecisionDocsApiKey":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ArtifactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet":{"get":{"tags":["Public API v1"],"summary":"Get Wallet","operationId":"getWallet","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1WalletResponse"}}}}},"security":[{"PrecisionDocsApiKey":[]}]}}},"components":{"schemas":{"ArtifactSummary":{"properties":{"artifact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifact Id"},"label":{"type":"string","title":"Label"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"},"download_url":{"type":"string","title":"Download Url"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary"},"tool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool"}},"type":"object","required":["label","download_url"],"title":"ArtifactSummary"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"V1AddGisSourceRequest":{"properties":{"url":{"type":"string","maxLength":2000,"minLength":1,"title":"Url"},"scope":{"type":"string","enum":["municipality","county","state_reference"],"title":"Scope"},"jurisdiction_name":{"type":"string","maxLength":200,"title":"Jurisdiction Name","default":""}},"type":"object","required":["url","scope"],"title":"V1AddGisSourceRequest"},"V1AddGisSourceResponse":{"properties":{"url":{"type":"string","title":"Url"},"scope":{"type":"string","title":"Scope"},"status":{"type":"string","title":"Status"},"rest_bases_found":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rest Bases Found"},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["url","scope","status"],"title":"V1AddGisSourceResponse"},"V1AddProjectSourceRequest":{"properties":{"url":{"type":"string","maxLength":2000,"minLength":1,"title":"Url"},"title":{"type":"string","maxLength":200,"title":"Title","default":""},"category":{"type":"string","maxLength":40,"title":"Category","default":""}},"type":"object","required":["url"],"title":"V1AddProjectSourceRequest"},"V1AddProjectSourceResponse":{"properties":{"url":{"type":"string","title":"Url"},"lane":{"type":"string","title":"Lane"},"dispatched":{"type":"boolean","title":"Dispatched"},"status":{"type":"string","title":"Status"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"corpus_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corpus Id"},"needs_confirm":{"type":"boolean","title":"Needs Confirm","default":false},"confidence":{"type":"string","title":"Confidence","default":""},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["url","lane","dispatched","status"],"title":"V1AddProjectSourceResponse","description":"The lane the URL routed to and what the dispatch started."},"V1ArtifactListItem":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"filename":{"type":"string","title":"Filename","default":""},"mime_type":{"type":"string","title":"Mime Type","default":""},"doc_type":{"type":"string","title":"Doc Type","default":""},"created_at":{"type":"string","title":"Created At","default":""}},"type":"object","required":["artifact_id"],"title":"V1ArtifactListItem"},"V1ArtifactListResponse":{"properties":{"artifacts":{"items":{"$ref":"#/components/schemas/V1ArtifactListItem"},"type":"array","title":"Artifacts"},"limit":{"type":"integer","title":"Limit","default":20},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"V1ArtifactListResponse"},"V1ArtifactResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"download_url":{"type":"string","title":"Download Url"}},"type":"object","required":["artifact_id","filename","mime_type","download_url"],"title":"V1ArtifactResponse"},"V1DesignCriteriaDistrict":{"properties":{"zoning_code":{"type":"string","title":"Zoning Code"},"resolution":{"type":"string","title":"Resolution"},"fields":{"additionalProperties":true,"type":"object","title":"Fields"},"user_provided_fields":{"items":{"type":"string"},"type":"array","title":"User Provided Fields"},"not_regulated_fields":{"items":{"type":"string"},"type":"array","title":"Not Regulated Fields"},"citations":{"items":{"type":"string"},"type":"array","title":"Citations"},"citation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Citation Url"},"authority":{"type":"string","title":"Authority","default":""}},"type":"object","required":["zoning_code","resolution"],"title":"V1DesignCriteriaDistrict"},"V1DesignCriteriaResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"has_concept":{"type":"boolean","title":"Has Concept","default":false},"revision_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision Id"},"districts":{"items":{"$ref":"#/components/schemas/V1DesignCriteriaDistrict"},"type":"array","title":"Districts"},"rule_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rule Inputs"},"rule_evidence_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rule Evidence Snapshot"},"stormwater_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stormwater Context"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["project_id","generated_at"],"title":"V1DesignCriteriaResponse"},"V1FeasibilitySummary":{"properties":{"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"overall_risk_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Risk Level"},"overall_risk_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Risk Statement"},"top_risks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top Risks"},"missing_info_summary":{"items":{"type":"string"},"type":"array","title":"Missing Info Summary"}},"type":"object","title":"V1FeasibilitySummary"},"V1GisExportRequest":{"properties":{"format":{"type":"string","title":"Format","description":"shapefile, kml, kmz, geojson, or dxf","default":"shapefile"},"layers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Layers","description":"Optional GIS layer keys to export"}},"type":"object","title":"V1GisExportRequest"},"V1GisExportResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"project_id":{"type":"string","title":"Project Id"},"format":{"type":"string","title":"Format"},"layers":{"items":{"type":"string"},"type":"array","title":"Layers"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"download_url":{"type":"string","title":"Download Url"},"expires_at":{"type":"string","title":"Expires At"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["artifact_id","project_id","format","filename","mime_type","download_url","expires_at","created_at"],"title":"V1GisExportResponse"},"V1KeyValueItem":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["key","label","value"],"title":"V1KeyValueItem"},"V1KnowledgeBaseSection":{"properties":{"summary":{"additionalProperties":{"type":"string"},"type":"object","title":"Summary"},"sources":{"items":{"$ref":"#/components/schemas/V1SourceStatusRow"},"type":"array","title":"Sources"}},"type":"object","title":"V1KnowledgeBaseSection"},"V1MapCreateRequest":{"properties":{"kind":{"type":"string","title":"Kind","description":"site_map for the parcel exhibit PDF, aerial for the georeferenced image.","default":"site_map"},"buffer_meters":{"anyOf":[{"type":"integer","maximum":2000.0,"minimum":100.0},{"type":"null"}],"title":"Buffer Meters","description":"Half-extent in meters. Omit to fit the project's own parcels."},"latitude":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Longitude"}},"type":"object","title":"V1MapCreateRequest"},"V1MapResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"project_id":{"type":"string","title":"Project Id"},"kind":{"type":"string","title":"Kind"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"download_url":{"type":"string","title":"Download Url"},"expires_at":{"type":"string","title":"Expires At"},"created_at":{"type":"string","title":"Created At"},"center":{"additionalProperties":{"type":"number"},"type":"object","title":"Center"},"extent_feet":{"type":"integer","title":"Extent Feet","default":0},"parcels_drawn":{"type":"integer","title":"Parcels Drawn","default":0},"road_labels":{"type":"boolean","title":"Road Labels","default":false},"attribution":{"type":"string","title":"Attribution","default":""},"georeference":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Georeference"},"usage":{"type":"string","title":"Usage","default":""}},"type":"object","required":["artifact_id","project_id","kind","filename","mime_type","download_url","expires_at","created_at"],"title":"V1MapResponse"},"V1MessageListItem":{"properties":{"turn_id":{"type":"string","title":"Turn Id"},"created_at":{"type":"string","title":"Created At","default":""},"answer_preview":{"type":"string","title":"Answer Preview","default":""},"tools_used":{"items":{"type":"string"},"type":"array","title":"Tools Used"}},"type":"object","required":["turn_id"],"title":"V1MessageListItem"},"V1MessageListResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/V1MessageListItem"},"type":"array","title":"Messages"},"limit":{"type":"integer","title":"Limit","default":20},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"V1MessageListResponse"},"V1MessageRequest":{"properties":{"message":{"type":"string","maxLength":12000,"minLength":1,"title":"Message"},"wait":{"type":"boolean","title":"Wait","default":true},"detail":{"type":"string","enum":["standard","verbose"],"title":"Detail","default":"standard"}},"type":"object","required":["message"],"title":"V1MessageRequest"},"V1MessageResponse":{"properties":{"turn_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Turn Id"},"status":{"type":"string","title":"Status"},"answer":{"type":"string","title":"Answer","default":""},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"citations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Citations"},"tools_used":{"items":{"type":"string"},"type":"array","title":"Tools Used"},"artifacts":{"items":{"$ref":"#/components/schemas/ArtifactSummary"},"type":"array","title":"Artifacts"},"bootstrap_required":{"type":"boolean","title":"Bootstrap Required","default":false},"tool_summary":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tool Summary"}},"type":"object","required":["status"],"title":"V1MessageResponse"},"V1ParcelCandidate":{"properties":{"ll_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ll Uuid"},"parcel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parcel Id"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code"},"lot_size_acres":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lot Size Acres"},"zoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zoning"},"land_use":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Land Use"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"geometry":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Geometry"},"confidence":{"type":"number","title":"Confidence","default":0.0},"confidence_reason":{"type":"string","title":"Confidence Reason","default":""},"stack_unit_count":{"type":"integer","title":"Stack Unit Count","default":1}},"type":"object","title":"V1ParcelCandidate"},"V1ParcelPreviewParcel":{"properties":{"geometry":{"additionalProperties":true,"type":"object","title":"Geometry"},"label":{"type":"string","maxLength":120,"title":"Label","default":""}},"type":"object","required":["geometry"],"title":"V1ParcelPreviewParcel"},"V1ParcelPreviewRequest":{"properties":{"parcels":{"items":{"$ref":"#/components/schemas/V1ParcelPreviewParcel"},"type":"array","maxItems":30,"minItems":1,"title":"Parcels"},"buffer_meters":{"anyOf":[{"type":"integer","maximum":2000.0,"minimum":100.0},{"type":"null"}],"title":"Buffer Meters"}},"type":"object","required":["parcels"],"title":"V1ParcelPreviewRequest"},"V1ParcelPreviewResponse":{"properties":{"image_base64":{"type":"string","title":"Image Base64"},"mime_type":{"type":"string","title":"Mime Type","default":"image/png"},"center":{"additionalProperties":{"type":"number"},"type":"object","title":"Center"},"extent_feet":{"type":"integer","title":"Extent Feet","default":0},"parcels_drawn":{"type":"integer","title":"Parcels Drawn","default":0},"road_labels":{"type":"boolean","title":"Road Labels","default":false},"attribution":{"type":"string","title":"Attribution","default":""},"usage":{"type":"string","title":"Usage","default":""}},"type":"object","required":["image_base64"],"title":"V1ParcelPreviewResponse"},"V1ParcelResolveRequest":{"properties":{"address":{"anyOf":[{"type":"string","maxLength":500,"minLength":5},{"type":"null"}],"title":"Address"},"apn":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Apn"},"state":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"State"},"county":{"anyOf":[{"type":"string","maxLength":128,"minLength":2},{"type":"null"}],"title":"County"},"latitude":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Longitude"},"ll_uuid":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Ll Uuid"},"max_candidates":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Candidates","default":5}},"type":"object","title":"V1ParcelResolveRequest","description":"One parcel lookup: an address, an APN with its state, coordinates, or a\nRegrid ll_uuid from an earlier candidate."},"V1ParcelResolveResponse":{"properties":{"candidates":{"items":{"$ref":"#/components/schemas/V1ParcelCandidate"},"type":"array","title":"Candidates"},"query":{"additionalProperties":true,"type":"object","title":"Query"}},"type":"object","title":"V1ParcelResolveResponse"},"V1ParcelZoningRequest":{"properties":{"zoning_code":{"type":"string","maxLength":64,"minLength":1,"title":"Zoning Code"},"zoning_description":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Zoning Description"}},"type":"object","required":["zoning_code"],"title":"V1ParcelZoningRequest"},"V1ParcelZoningResponse":{"properties":{"status":{"type":"string","title":"Status"},"parcel":{"additionalProperties":true,"type":"object","title":"Parcel"},"zoning_verified":{"type":"boolean","title":"Zoning Verified"},"briefing_regenerating":{"type":"boolean","title":"Briefing Regenerating","default":false}},"type":"object","required":["status","parcel","zoning_verified"],"title":"V1ParcelZoningResponse"},"V1PendingGisSourceInput":{"properties":{"url":{"type":"string","maxLength":2000,"minLength":1,"title":"Url"},"scope":{"type":"string","enum":["municipality","county","state_reference"],"title":"Scope"},"jurisdiction_name":{"type":"string","maxLength":200,"title":"Jurisdiction Name","default":""}},"type":"object","required":["url","scope"],"title":"V1PendingGisSourceInput","description":"A client-staged GIS source handoff for project creation."},"V1PlanCheckRequest":{"properties":{"goal_text":{"type":"string","maxLength":5000,"minLength":1,"title":"Goal Text"},"primary_typology":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Primary Typology"},"has_existing_structure":{"type":"boolean","title":"Has Existing Structure","default":false}},"type":"object","required":["goal_text"],"title":"V1PlanCheckRequest"},"V1PlanCheckResponse":{"properties":{"verdicts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verdicts"}},"type":"object","title":"V1PlanCheckResponse","description":"Same fail-open contract as the wizard route: ``verdicts`` is null when\nthe classifier was unavailable and the caller should ask every question."},"V1ProjectCreateParcel":{"properties":{"address":{"type":"string","maxLength":300,"title":"Address","default":""},"parcel_id":{"type":"string","maxLength":120,"title":"Parcel Id","default":""},"apn":{"type":"string","maxLength":120,"title":"Apn","default":""},"ll_uuid":{"type":"string","maxLength":128,"title":"Ll Uuid","default":""},"zoning_code":{"type":"string","maxLength":64,"title":"Zoning Code","default":""},"zoning_description":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Zoning Description"},"zoning_verification":{"anyOf":[{"type":"string","const":"confirmed"},{"type":"null"}],"title":"Zoning Verification"},"geometry":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Geometry"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"}},"type":"object","title":"V1ProjectCreateParcel"},"V1ProjectCreateRequest":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"city":{"type":"string","maxLength":100,"title":"City","default":""},"state":{"type":"string","maxLength":50,"title":"State","default":""},"county":{"type":"string","maxLength":100,"title":"County","default":""},"user_goal":{"type":"string","maxLength":5000,"minLength":10,"title":"User Goal"},"parcels":{"items":{"$ref":"#/components/schemas/V1ProjectCreateParcel"},"type":"array","maxItems":30,"title":"Parcels"},"address":{"type":"string","maxLength":500,"title":"Address","default":""},"ordinance_url":{"type":"string","maxLength":500,"title":"Ordinance Url","default":""},"county_ordinance_url":{"type":"string","maxLength":500,"title":"County Ordinance Url","default":""},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"allow_duplicate_parcel":{"type":"boolean","title":"Allow Duplicate Parcel","default":false},"setup_mode":{"type":"string","enum":["wizard","provided"],"title":"Setup Mode","default":"wizard"},"skip_municipal_ordinance":{"type":"boolean","title":"Skip Municipal Ordinance","default":false},"skip_county_ordinance":{"type":"boolean","title":"Skip County Ordinance","default":false},"project_goal_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Project Goal Context"},"pending_supplemental_sources":{"items":{"$ref":"#/components/schemas/V1SupplementalSourceInput"},"type":"array","maxItems":10,"title":"Pending Supplemental Sources"},"pending_gis_sources":{"items":{"$ref":"#/components/schemas/V1PendingGisSourceInput"},"type":"array","maxItems":6,"title":"Pending Gis Sources"}},"type":"object","required":["name","user_goal"],"title":"V1ProjectCreateRequest"},"V1ProjectCreateResponse":{"properties":{"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"status":{"type":"string","title":"Status"},"poll":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poll"},"estimate":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Estimate"},"confirmation_required":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Confirmation Required"},"prep_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prep Summary"},"gaps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Gaps"}},"type":"object","required":["status"],"title":"V1ProjectCreateResponse"},"V1ProjectListItem":{"properties":{"project_id":{"type":"string","title":"Project Id"},"name":{"type":"string","title":"Name","default":""},"created_at":{"type":"string","title":"Created At","default":""},"foundation_status":{"type":"string","title":"Foundation Status","default":""},"ordinance_status":{"type":"string","title":"Ordinance Status","default":""},"county_ordinance_status":{"type":"string","title":"County Ordinance Status","default":""},"zoning_verified":{"type":"boolean","title":"Zoning Verified","default":true},"poll":{"type":"string","title":"Poll","default":""}},"type":"object","required":["project_id"],"title":"V1ProjectListItem"},"V1ProjectListResponse":{"properties":{"projects":{"items":{"$ref":"#/components/schemas/V1ProjectListItem"},"type":"array","title":"Projects"},"limit":{"type":"integer","title":"Limit","default":20},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"V1ProjectListResponse"},"V1ProjectReadiness":{"properties":{"ordinance_targets":{"items":{"$ref":"#/components/schemas/V1ReadinessOrdinanceTarget"},"type":"array","title":"Ordinance Targets"},"gis_layers":{"items":{"$ref":"#/components/schemas/V1ReadinessGisLayer"},"type":"array","title":"Gis Layers"},"supplemental_sources":{"items":{"$ref":"#/components/schemas/V1ReadinessSupplementalSource"},"type":"array","title":"Supplemental Sources"},"advisories":{"items":{"$ref":"#/components/schemas/V1ReadinessAdvisory"},"type":"array","title":"Advisories"}},"type":"object","title":"V1ProjectReadiness","description":"Bounded bootstrap readiness detail for polling clients.\n\nSummary rows only - the event firehose stays on the session surface."},"V1ProjectResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"step":{"type":"string","title":"Step"},"progress":{"type":"integer","title":"Progress"},"message":{"type":"string","title":"Message"},"chat_ready":{"type":"boolean","title":"Chat Ready"},"retry_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retry After Seconds"},"kb_summary":{"additionalProperties":{"type":"string"},"type":"object","title":"Kb Summary"},"location":{"additionalProperties":{"type":"string"},"type":"object","title":"Location"},"zoning_verified":{"type":"boolean","title":"Zoning Verified","default":false},"zoning_verification_required":{"type":"boolean","title":"Zoning Verification Required","default":false},"parcels":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Parcels"},"readiness":{"anyOf":[{"$ref":"#/components/schemas/V1ProjectReadiness"},{"type":"null"}]}},"type":"object","required":["project_id","name","status","step","progress","message","chat_ready"],"title":"V1ProjectResponse"},"V1ReadinessAdvisory":{"properties":{"advisory_id":{"type":"string","title":"Advisory Id","default":""},"title":{"type":"string","title":"Title","default":""},"message":{"type":"string","title":"Message","default":""},"status":{"type":"string","title":"Status","default":""}},"type":"object","title":"V1ReadinessAdvisory","description":"One open (un-dismissed) advisory, e.g. an unresolved adopted reference."},"V1ReadinessGisLayer":{"properties":{"name":{"type":"string","title":"Name","default":""},"layer_type":{"type":"string","title":"Layer Type","default":""},"scope":{"type":"string","title":"Scope","default":""},"jurisdiction_name":{"type":"string","title":"Jurisdiction Name","default":""},"status":{"type":"string","title":"Status","default":""},"feature_count":{"type":"integer","title":"Feature Count","default":0}},"type":"object","title":"V1ReadinessGisLayer"},"V1ReadinessOrdinanceTarget":{"properties":{"authority":{"type":"string","title":"Authority","default":""},"scope":{"type":"string","title":"Scope","default":""},"status":{"type":"string","title":"Status","default":""},"reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Code"},"message":{"type":"string","title":"Message","default":""}},"type":"object","title":"V1ReadinessOrdinanceTarget","description":"One required governing ordinance target's lane state."},"V1ReadinessSupplementalSource":{"properties":{"source_url":{"type":"string","title":"Source Url","default":""},"source_title":{"type":"string","title":"Source Title","default":""},"category":{"type":"string","title":"Category","default":""},"status":{"type":"string","title":"Status","default":""},"detail":{"type":"string","title":"Detail","default":""}},"type":"object","title":"V1ReadinessSupplementalSource"},"V1ReportCreateRequest":{"properties":{"report_type":{"type":"string","enum":["due_diligence","feasibility"],"title":"Report Type"}},"type":"object","required":["report_type"],"title":"V1ReportCreateRequest"},"V1ReportCreateResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status","default":"queued"},"poll":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poll"}},"type":"object","required":["job_id"],"title":"V1ReportCreateResponse"},"V1ReportJobResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"report_type":{"type":"string","title":"Report Type","default":""},"status":{"type":"string","enum":["queued","running","completed","failed"],"title":"Status"},"progress_percent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress Percent"},"message":{"type":"string","title":"Message","default":""},"artifact":{"anyOf":[{"$ref":"#/components/schemas/ArtifactSummary"},{"type":"null"}]},"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/ArtifactSummary"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"poll":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poll"}},"type":"object","required":["job_id","status"],"title":"V1ReportJobResponse"},"V1ReportListItem":{"properties":{"job_id":{"type":"string","title":"Job Id"},"report_type":{"type":"string","title":"Report Type","default":""},"status":{"type":"string","title":"Status","default":""},"created_at":{"type":"string","title":"Created At","default":""},"poll":{"type":"string","title":"Poll","default":""}},"type":"object","required":["job_id"],"title":"V1ReportListItem"},"V1ReportListResponse":{"properties":{"reports":{"items":{"$ref":"#/components/schemas/V1ReportListItem"},"type":"array","title":"Reports"},"limit":{"type":"integer","title":"Limit","default":20},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"V1ReportListResponse"},"V1SearchRequest":{"properties":{"query":{"type":"string","maxLength":1000,"minLength":2,"title":"Query"},"top_k":{"type":"integer","maximum":15.0,"minimum":1.0,"title":"Top K","default":8},"document_name":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Document Name"},"parcel_index":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Parcel Index"},"ordinance_chapter":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Ordinance Chapter"}},"type":"object","required":["query"],"title":"V1SearchRequest"},"V1SearchResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"found":{"type":"boolean","title":"Found"},"confidence":{"type":"string","title":"Confidence","default":"low"},"chunks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Chunks"},"citations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Citations"},"authority_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authority Warning"},"truncated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Truncated"},"coverage_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Note"},"credits_charged":{"type":"integer","title":"Credits Charged","default":0}},"type":"object","required":["project_id","found"],"title":"V1SearchResponse"},"V1SiteKnowledgeResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"generated_at":{"type":"string","title":"Generated At"},"foundation_status":{"type":"string","title":"Foundation Status","default":""},"site_essentials":{"items":{"$ref":"#/components/schemas/V1KeyValueItem"},"type":"array","title":"Site Essentials"},"parcels":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Parcels"},"zoning":{"additionalProperties":true,"type":"object","title":"Zoning"},"flood":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Flood"},"wetlands":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Wetlands"},"soils":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Soils"},"utilities":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Utilities"},"adjacency":{"additionalProperties":true,"type":"object","title":"Adjacency"},"environmental":{"additionalProperties":true,"type":"object","title":"Environmental"},"feasibility":{"anyOf":[{"$ref":"#/components/schemas/V1FeasibilitySummary"},{"type":"null"}]},"spatial_layers":{"items":{"$ref":"#/components/schemas/V1SourceStatusRow"},"type":"array","title":"Spatial Layers"},"knowledge_base":{"$ref":"#/components/schemas/V1KnowledgeBaseSection"}},"type":"object","required":["project_id","generated_at"],"title":"V1SiteKnowledgeResponse"},"V1SitePlanExportRequest":{"properties":{"format":{"type":"string","enum":["landxml","dxf","geojson"],"title":"Format","default":"landxml"}},"type":"object","title":"V1SitePlanExportRequest"},"V1SitePlanExportResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"project_id":{"type":"string","title":"Project Id"},"format":{"type":"string","title":"Format"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"download_url":{"type":"string","title":"Download Url"},"expires_at":{"type":"string","title":"Expires At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["artifact_id","project_id","format","filename","mime_type","download_url","expires_at","created_at"],"title":"V1SitePlanExportResponse"},"V1SitePlanResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"has_concept":{"type":"boolean","title":"Has Concept"},"revision_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"feature_collection":{"additionalProperties":true,"type":"object","title":"Feature Collection"},"feature_count":{"type":"integer","title":"Feature Count","default":0},"truncated":{"type":"boolean","title":"Truncated","default":false},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics"},"scenario":{"additionalProperties":true,"type":"object","title":"Scenario"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["project_id","has_concept","generated_at"],"title":"V1SitePlanResponse"},"V1SourceStatusRow":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label","default":""},"status":{"type":"string","title":"Status"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"capability_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Capability Ids"},"data_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Class"},"gap_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gap Reason"}},"type":"object","required":["key","status"],"title":"V1SourceStatusRow"},"V1SummaryRequest":{"properties":{"focus":{"type":"string","maxLength":1200,"minLength":3,"title":"Focus"},"format":{"type":"string","enum":["paragraph","bullets"],"title":"Format","default":"paragraph"},"max_words":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":80.0},{"type":"null"}],"title":"Max Words","default":300}},"type":"object","required":["focus"],"title":"V1SummaryRequest"},"V1SummaryResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"focus":{"type":"string","title":"Focus"},"format":{"type":"string","enum":["paragraph","bullets"],"title":"Format"},"summary":{"type":"string","title":"Summary"},"citations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Citations"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["project_id","focus","format","summary","generated_at"],"title":"V1SummaryResponse"},"V1SupplementalSourceInput":{"properties":{"url":{"type":"string","maxLength":2000,"minLength":1,"title":"Url"},"title":{"type":"string","maxLength":200,"title":"Title","default":""},"category":{"type":"string","maxLength":40,"title":"Category","default":""},"authority_scope":{"anyOf":[{"type":"string","enum":["municipality","county"]},{"type":"null"}],"title":"Authority Scope"}},"type":"object","required":["url"],"title":"V1SupplementalSourceInput","description":"A client-staged supplemental ordinance source for project creation.\n\nLands on ``CreateProjectRequest.pending_supplemental_sources`` unchanged\n(via the prep state's ``accepted_supplemental_sources``) and dispatches as\na non-blocking background ingest after the governing lanes complete."},"V1UploadFinalizeRequest":{"properties":{"page_ranges":{"anyOf":[{"items":{"items":{"type":"integer"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Page Ranges"},"parcel_indices":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Parcel Indices"}},"type":"object","title":"V1UploadFinalizeRequest"},"V1UploadFinalizeResponse":{"properties":{"status":{"type":"string","title":"Status"},"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["status","job_id"],"title":"V1UploadFinalizeResponse"},"V1UploadInitiateRequest":{"properties":{"project_id":{"type":"string","title":"Project Id"},"filename":{"type":"string","maxLength":255,"minLength":1,"title":"Filename"},"size_bytes":{"type":"integer","exclusiveMinimum":0.0,"title":"Size Bytes"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"user_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"User Label"}},"type":"object","required":["project_id","filename","size_bytes"],"title":"V1UploadInitiateRequest"},"V1UploadInitiateResponse":{"properties":{"transport":{"type":"string","title":"Transport"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"bucket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"},"object_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Path"},"tus_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tus Endpoint"},"signed_upload_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Upload Url"},"max_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Bytes"}},"type":"object","required":["transport"],"title":"V1UploadInitiateResponse"},"V1WalletResponse":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"granted_credits":{"type":"integer","title":"Granted Credits"},"used_credits":{"type":"integer","title":"Used Credits"},"reserved_credits":{"type":"integer","title":"Reserved Credits"},"remaining_credits":{"type":"integer","title":"Remaining Credits"},"available_credits":{"type":"integer","title":"Available Credits"}},"type":"object","required":["organization_id","granted_credits","used_credits","reserved_credits","remaining_credits","available_credits"],"title":"V1WalletResponse"},"V1YieldScenarioDistrict":{"properties":{"fact_key":{"type":"string","title":"Fact Key"},"district_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District Code"},"scenario":{"additionalProperties":true,"type":"object","title":"Scenario"},"inherited":{"additionalProperties":{"type":"string"},"type":"object","title":"Inherited"}},"type":"object","required":["fact_key"],"title":"V1YieldScenarioDistrict"},"V1YieldScenarioResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"districts":{"items":{"$ref":"#/components/schemas/V1YieldScenarioDistrict"},"type":"array","title":"Districts"},"snapshots":{"items":{"$ref":"#/components/schemas/V1YieldSnapshotSummary"},"type":"array","title":"Snapshots"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["project_id","generated_at"],"title":"V1YieldScenarioResponse"},"V1YieldSnapshotSummary":{"properties":{"snapshot_id":{"type":"string","title":"Snapshot Id"},"district_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District Code"},"use_kind":{"type":"string","title":"Use Kind","default":""},"generated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated At"}},"type":"object","required":["snapshot_id"],"title":"V1YieldSnapshotSummary"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"PrecisionDocsApiKey":{"type":"http","scheme":"bearer","bearerFormat":"pd_live API key"}}},"security":[{"PrecisionDocsApiKey":[]}]}