Skip to main content

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

  1. 1Generate an API key from the Manage Keys page.
  2. 2Add the key to the Authorization: Bearer … header of every request.
  3. 3Call the endpoints below. Default rate limit: 60 req/min, 5000 req/day.

Endpoints

MethodPathPurpose
POST/api/realtime-score27-signal Genome Score for a property
POST/api/cashflow30-year DCF/IRR/NPV projection + sensitivity
POST/api/mismoMISMO 3.6 / UAD 3.6 XML export
GET/api/property-profile/[address]Subject property metadata
POST/api/compsSales-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.1432

Python — 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.