Developers
REST API and MCP connector
Every response carries the same envelope the UI reads: data, plus sources, assumptions, gaps, confidence, warnings, engine versions and disclaimers.
Response envelope
{
"data": { ... },
"meta": {
"generatedAt": "2026-07-26T12:00:00.000Z",
"engineVersions": { "zoning": "1.2.0", "envelope": "1.3.0", ... },
"confidence": "medium",
"sources": [ { "sourceName": "...", "citation": { "section": "..." }, "effectiveDate": "...", "retrievedAt": "..." } ],
"assumptions": [ { "label": "...", "value": 11, "origin": "platform_default", "rationale": "..." } ],
"gaps": [ { "label": "...", "reason": "...", "remediation": "..." } ],
"warnings": [ "..." ],
"disclaimers": [ "..." ]
}
}
Endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /api/v1/addresses/search | Resolve an address or APN to ranked parcel candidates |
| GET | /api/v1/parcels/{id} | Parcel record, geometry, ownership, tax, improvements, easements |
| GET | /api/v1/parcels/{id}/zoning | Base district, overlays, dimensional standards, use table |
| GET | /api/v1/parcels/{id}/envelope | Buildable envelope geometry, area and lot-line classification |
| GET | /api/v1/parcels/{id}/yield | Footprint, floor area, stories, units by use, parking, subdivision |
| GET | /api/v1/parcels/{id}/plans | Architectural plan matches with placement geometry |
| GET | /api/v1/parcels/{id}/comparables | Comparable sales grid with every adjustment |
| GET | /api/v1/parcels/{id}/valuation | Reconciled valuation with approach weights |
| GET | /api/v1/parcels/{id}/scenarios | Available scenario templates for the parcel |
| POST | /api/v1/parcels/{id}/scenarios | Run a scenario with overrides and receive the full pro forma |
| POST | /api/v1/copilot/ask | Ask the Copilot; returns the answer, tool transcript and guardrail verdict |
| GET | /api/v1/jurisdictions | Published jurisdictions, rules versions and known gaps |
| GET | /api/v1/sources | Source registry with licence and acquisition method |
| GET | /api/v1/me | Current identity, organisation, plan, entitlements and quota status |
| GET | /api/v1/openapi.json | Machine-readable specification |
Standards
- Versioned path prefix; no breaking change without a new version
- Bearer API key or session authentication; scopes per key
- Rate limited per organisation, with limit headers on every response
- Idempotency keys on writes
- Every access written to the audit log
- Errors return a machine-readable code, a human message, and the remedy
MCP connector
Groundline ships a Model Context Protocol server so an AI assistant can use the same tools the Copilot uses — with the same guardrails. Run npm run mcp for the stdio server.