PropertyGenome API
Developer Portal
Build on the most transparent property-intelligence API. 27 signals, lender-grade MISMO XML, 30-year cash-flow projections, conformal AVM intervals — all behind a single REST endpoint.
Quick Start
- 1Generate an API key from the Manage Keys page.
- 2Add the key to the
Authorization: Bearer …header of every request. - 3Call the endpoints below. Default rate limit: 60 req/min, 5000 req/day.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /api/realtime-score | 27-signal Genome Score for a property |
| POST | /api/cashflow | 30-year DCF/IRR/NPV projection + sensitivity |
| POST | /api/mismo | MISMO 3.6 / UAD 3.6 XML export |
| GET | /api/property-profile/[address] | Subject property metadata |
| POST | /api/comps | Sales-comparable search |
| GET | /api/list-builder/[id] | Build / fetch saved investor lists |
Code Samples
cURL — fetch Genome Score
curl -X POST https://app.propertygenome.ai/api/realtime-score \
-H "Authorization: Bearer pg_live_abcdef123456" \
-H "Content-Type: application/json" \
-d '{"address":"319 Plyler Rd, Indian Trail, NC 28079"}'JavaScript — cash-flow projection
const res = await fetch("https://app.propertygenome.ai/api/cashflow", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.PG_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
purchasePrice: 252423,
downPaymentPct: 0.25,
mortgageRate: 0.0725,
mortgageTermYears: 30,
monthlyRent: 1850,
holdYears: 10,
exitCapRate: 0.07,
}),
});
const data = await res.json();
console.log(data.projection.summary.irr); // 0.1432Python — MISMO export
import os, requests
res = requests.post(
"https://app.propertygenome.ai/api/mismo",
headers={"Authorization": f"Bearer {os.environ['PG_API_KEY']}"},
json={"address": "319 Plyler Rd, Indian Trail, NC 28079",
"valuation": {"estimated_today": 252423}},
)
with open("report.mismo.xml", "wb") as f:
f.write(res.content)Authentication & Rate Limits
All API requests require a valid API key in the Authorization header. Keys are scoped to your subscription tier. Default rate limits are 60 requests per minute and 5,000 requests per day; enterprise tiers can request higher limits.
Need Higher Limits?
Contact [email protected] for volume pricing, dedicated SLAs, and custom data-feed integrations.