Real estate data API for proptech and property apps

A real estate data API for your product: find the parcel at an address, store its stable ID, and pay only for the records your users look up.

Proptech apps: the job to be done

Real estate apps, CRMs, underwriting tools and marketplaces need the record behind an address: parcel number, land use, building, values and the last sale, and sometimes the owner. They need it in a consistent shape across counties, keyed by an ID they can store. Owner fields are available on request (opt-in per organization).

Korzy normalizes parcel records from every U.S. county into one schema with a stable korzy_id, behind a JSON API with an OpenAPI spec.

Questions Korzy answers for proptech apps

  • Which parcel is at this address, and what is its parcel number and land use?
  • What were the last sale date and price, and what are the assessed and market values?
  • Who is the owner of record, and what is the mailing address (where the county publishes it; owner fields are opt-in per organization)?
  • Which parcel covers this map point, for example a pin a user dropped?

API routes and MCP tools for proptech apps

Each MCP tool on the Korzy MCP server runs the matching API route, at the same credits. Routes link to their section of the API reference; credits and rate limits covers what each request costs.

MCP toolAPI routeWhat it returns
lookup/v1/lookupThe parcels at an address or a map point, each with its korzy_id and record. Never owner fields.
enrich/v1/enrichThe fields you choose for up to 25 addresses, points or IDs per request; owner fields with the owner group, available on request (opt-in per organization).
get_record/v1/records/{id}One parcel again by its stored korzy_id.
list_fields/v1/fieldsEvery enrich field, group and preset, and what each request costs. Free.

Example requests and production responses

Real responses from the production API, captured November 5, 2026 and trimmed to the main fields. Every request needs an API key; see API authentication.

1. Find the parcel at an address

An exact lookup for 1600 Glenarm Pl, Denver, which returns the parcel records at that address. 1 credit.

curl --fail-with-body -sS \
  -H "Authorization: Bearer $KORZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"1600 Glenarm Pl, Denver, CO"}' \
  https://api.korzy.co/v1/lookup
Production response (trimmed)
{
  "location": {
    "longitude": -104.98947115039978,
    "latitude": 39.744195649999995,
    "address": "1600 GLENARM PL, DENVER",
    "match_type": "exact"
  },
  "parcels": {
    "records": [
      {
        "id": "08031-00608646b37458fef5b5",
        "countyname": "Denver",
        "latitude": 39.744195649999995,
        "longitude": -104.98947115039978,
        "korzy_id": "08031-00608646b37458fef5b5",
        "parceladdr": "1628 GLENARM PL",
        "parcelcity": "DENVER",
        "parcelid": "0234610034000",
        "saleamt": 131000000,
        "saledate": "2018-07-11",
        "statefp": "08",
        "updated": "2026-04-21",
        "usedesc": "COMMERCIAL-MISC IMPS",
        "situs_zip": "80202",
        "legal_description": "EAST DENVER B195 L7 & SW/2 OF L6 LAND ONLY SEE 02346-10-035 FOR IMPS",
        "zoning_code": "CBD",
        "assessed_value_usd": 0,
        "market_value_usd": 1408800,
        "geoid": "08031",
        "ogparcelid": "0234610034000"
      },
      {
        "id": "08031-38ea02a85c11fd253b1c",
        "countyname": "Denver",
        "latitude": 39.744195649999995,
        "longitude": -104.98947115039978,
        "korzy_id": "08031-38ea02a85c11fd253b1c",
        "parceladdr": "1600 GLENARM PL",
        "parcelcity": "DENVER",
        "parcelid": "0234610035000",
        "saleamt": 131000000,
        "saledate": "2018-07-11",
        "statefp": "08",
        "updated": "2026-04-21",
        "usedesc": "COMMERCIAL-OFFICE",
        "situs_zip": "80202-4311",
        "legal_description": "EAST DENVER B195 L7 & SW/2 OF L6 IMPS ONLY SEE 02346-10-034 FOR LAND ONLY",
        "zoning_code": "CBD",
        "assessed_value_usd": 0,
        "market_value_usd": 885700,
        "geoid": "08031",
        "ogparcelid": "0234610035000"
      },
      {
        "id": "08031-5b4cf0a0a15d0ff3a944",
        "countyname": "Denver",
        "latitude": 39.744195649999995,
        "longitude": -104.98947115039978,
        "korzy_id": "08031-5b4cf0a0a15d0ff3a944",
        "parceladdr": "1628 GLENARM PL MASTR",
        "parcelcity": "DENVER",
        "parcelid": "0234610034998",
        "saleamt": 0,
        "saledate": "2026-06-15",
        "statefp": "08",
        "updated": "2026-04-21",
        "usedesc": "COMMERCIAL-FINANCIAL OFFICE",
        "situs_zip": "80202",
        "legal_description": "EAST DENVER B195 L7 & SW/2 OF L6 MASTER CARD",
        "zoning_code": "CBD",
        "assessed_value_usd": 0,
        "market_value_usd": 0,
        "geoid": "08031",
        "ogparcelid": "0234610034998"
      }
    ],
    "truncated": false,
    "provenance": {
      "source": "Korzy parcels",
      "as_of": "2026-11-04"
    }
  },
  "sections": {},
  "credits": {
    "charged": 1,
    "refunded": 0
  },
  "credits_url": "/v1/fields#attribution"
}

2. Fetch owner and sale fields

The same parcel by korzy_id with the owner group. Owner values are shown as placeholders. 2 credits.

curl --fail-with-body -sS \
  -H "Authorization: Bearer $KORZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"korzy_id":"08031-38ea02a85c11fd253b1c"}],"fields":["identity","sale","owner"]}' \
  https://api.korzy.co/v1/enrich
Production response (trimmed)
{
  "fields": [
    "korzy_id",
    "parcelid",
    "alternate_parcel_number",
    "statefp",
    "geoid"
  ],
  "results": [
    {
      "index": 0,
      "input": {
        "korzy_id": "08031-38ea02a85c11fd253b1c"
      },
      "status": "ok",
      "records": [
        {
          "id": "08031-38ea02a85c11fd253b1c",
          "korzy_id": "08031-38ea02a85c11fd253b1c",
          "parcelid": "0234610035000",
          "statefp": "08",
          "geoid": "08031",
          "countyname": "Denver",
          "updated": "2026-04-21",
          "saledate": "2018-07-11",
          "saleamt": 131000000,
          "owner_name": "EXAMPLE HOLDINGS LLC",
          "owner_mailing_address": "100 EXAMPLE ST, SAMPLE CITY, ST 00000"
        }
      ],
      "truncated": false,
      "credits": 2
    }
  ],
  "credits": {
    "charged": 2,
    "refunded": 0
  },
  "credits_url": "/v1/fields#attribution"
}

County parcel data for proptech apps

Parcel coverage, infrastructure counts and example requests for counties where this work is common. Korzy covers parcel data in every U.S. county.

How Korzy compares with other parcel data APIs

More Korzy use cases

Ship parcel data in your product

Lookups, enrichment and records work the same in every county, with monthly credits shared across all of them.