Send us your addresses or parcels. Get back canonical entities carrying underwriting, market signal, deed comps, jurisdiction behavior, and permit history — the same engines behind our own product, as a graph you can query and keep in sync. Stop reconciling records; start building on them.
# resolve a parcel key to a canonical entity + its signal curl -H "X-API-Key: $PG_KEY" \ https://developer.permitgranted.ai/api/partner/v1/resolve \ -d '{"ahj":"jersey-city-nj","block":"7902","lot":"16"}' # → { match: { uri:"pg:parcel:03EDA726-…", decision:"match" } }
One GET /parcels/:id returns the node with every engine lit up. Real Jersey City figures below.
Opportunity read + by-right buildability + residual land value — our underwriting engine, as a property.
Is this tract heating? Log-excess over the statewide market tide, consecutive-year only.
A ~2-year forward read from the permit lead — see it warming before the comps confirm.
Current-year market value from usable arm’s-length deeds. Names dark by construction.
How the jurisdiction actually behaves — approval odds, board friction, review days by trade.
The full application history on the parcel: status, review days, revision counts, the pros on record.
The intelligence behind our product — resolve, underwrite, time the market, read the jurisdiction, map it — as graph properties you call.
Send your addresses or parcels; get back canonical entity IDs, resolved with probabilistic record linkage. Store the URI once and every endpoint takes it — stop reconciling records by hand.
One GET returns the engine's full read on a parcel: five strategies (ground-up, value-add, buy-hold, flip, land-bank), each with developer spread, yield-on-cost, residual land value, and the for-sale-vs-rental exit — plus the assumptions behind them.
Every tract carries a signal — heating, warming, cooling — priced against the statewide tide, and a no-hindsight history that shows the year it turned. The same read behind the NJ Wave Report, machine-readable.
Approval odds, board friction, admin review days by trade, and readiness — per jurisdiction. Plus the permit track record on any parcel, from 2.46M cases. The "how does this town actually work" moat, as data.
Every parcel returns a centroid and every market a Census tract GEOID — join them to public geometry and paint the same heating choropleth we ship. First-party tiles and parcel GeoJSON are on the roadmap.
Names resolve through per-jurisdiction privacy regimes; a new geography fails closed until it is explicitly cleared. Comps and assemblage carry the structure, never the identity. Derived intelligence, never a compliance liability.
Eleven endpoints live in production today, over REST. Each is one authenticated call and returns JSON-LD you can store, traverse, and sync.
/resolve/parcels/{id}/parcels/{id}/underwritingBuild+/parcels/{id}/assemblagePlatform+/markets/{id}/markets/{id}/history/rankings/comparablesBuild+/ahj/{slug}/permits/entities/{uri}Delivery: REST today · GraphQL, bulk nodes+edges, a change-feed, and webhooks on the roadmap. Full-graph edges, geometry, and vector tiles next.
Start free on a New Jersey sample of live data. Widen your scope to go to production. Contact us for volume, bulk, and SLAs.
Evaluate the live graph on a free dev key, scoped to a New Jersey sample.
Ship on production scope: underwriting, comps, a feed you keep in sync.
Scale: assemblage origination, bulk nodes + edges, priority webhooks, mTLS.
Private/bulk delivery, data residency, SSO, SLA.
A free dev key takes a minute — real data, scoped to a New Jersey sample. Go to production when you are ready.