> ## Documentation Index
> Fetch the complete documentation index at: https://docs.realie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Property Data Schema (v3)

> The full nested v3 parcel record — the standard response shape and the bulk export shape

This page documents the **full nested v3 parcel record** — the shape shipped in bulk full-record exports. Fields with no value for a parcel are omitted rather than returned as null. Persist `realieParcelId` as your property key: API responses in the v3 shape carry no `_id` at all, and the `_id` values in bulk files and flat responses are regenerated on each data load — never a stable reference.

Normalized coded fields store values from the **Realie code system** (`XX####` codes plus integer ordinal/band scales); every such code decodes with the [Property Feature Field Key](/api-reference/v3/feature-key), which also documents the system's three representation classes and its append-only guarantee. The deliberate exception is the jurisdiction-issued fields documented below (`stateLandUseCode`, `countyLandUseCode`, `taxDistrictCode`, `zoningInfo.zoningCode`) — those carry each jurisdiction's own value verbatim, with no national decode table.

<Note>
  API endpoints return this nested record for accounts with the **v3 response shape enabled** — the default for new accounts; existing accounts enable it from the dashboard's **Usage** page (one-way, see the [migration FAQ](/api-reference/v3/migration-faq)). Accounts that haven't switched receive the same data in the **v2-compatible flat layout** documented in the [legacy tab](/api-reference/property-data-schema); the [migration guide](/api-reference/v3/migration) includes a field-by-field mapping between the two shapes. Two current exceptions return the flat layout even on v3-enabled accounts — records resolved through legacy coverage fallbacks, and searches using foreclosure filters (see the [migration FAQ](/api-reference/v3/migration-faq)).
</Note>

## Identity & location

<ResponseField name="parcelId" type="string">
  Primary parcel identifier (Assessor's Parcel Number / tax map parcel ID) as recorded by the county assessor. Example: "0314- -0009"
</ResponseField>

<ResponseField name="realieParcelId" type="string">
  Stable Realie parcel identifier, persistent across data releases — persist this as your property key. Format: 5-digit county FIPS + the parcel ID with spaces escaped as `~`. Example: "11001-0314-\~-0009"
</ResponseField>

<ResponseField name="state" type="string">
  Two-letter USPS state abbreviation for the parcel. Example: "DC"
</ResponseField>

<ResponseField name="address" type="string">
  Street number and street name of the property, promoted from `propertyLocation.address`. Example: "1217 12TH ST NW"
</ResponseField>

<ResponseField name="useCode" type="string">
  Property use code, promoted from `propertyClassification.propertyUseCode`. Coded value — decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "1110"
</ResponseField>

<ResponseField name="zipCode" type="string">
  5-digit ZIP code of the property, promoted from `propertyLocation.zipCode`. Example: "20005"
</ResponseField>

<ResponseField name="countyFips" type="string">
  5-digit FIPS code (state + county) of the parcel's county, promoted from `propertyLocation.fipsCode`. Example: "11001"
</ResponseField>

<ResponseField name="latitude" type="number">
  Latitude of the parcel centroid in decimal degrees (mirrors `coordinates.latitude`). Omitted when the parcel has no valid geocode. Example: 38.906297
</ResponseField>

<ResponseField name="longitude" type="number">
  Longitude of the parcel centroid in decimal degrees (mirrors `coordinates.longitude`). Omitted when the parcel has no valid geocode. Example: -77.027766
</ResponseField>

<ResponseField name="location" type="object">
  GeoJSON Point at the parcel centroid, suitable for geospatial indexing and queries. Coordinates are `[longitude, latitude]` per the GeoJSON spec. Omitted when the parcel has no valid geocode. Example: `{ "type": "Point", "coordinates": [-77.027766, 38.906297] }`

  <Expandable title="location properties">
    <ResponseField name="type" type="string">
      GeoJSON geometry type — always "Point".
    </ResponseField>

    <ResponseField name="coordinates" type="array">
      `[longitude, latitude]` of the parcel centroid. Example: \[-77.027766, 38.906297]
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="coordinates" type="object">
  Geographic coordinates of the parcel centroid.

  <Expandable title="coordinates properties">
    <ResponseField name="latitude" type="number">
      Latitude of the parcel centroid. Example: 38.906297
    </ResponseField>

    <ResponseField name="longitude" type="number">
      Longitude of the parcel centroid. Example: -77.027766
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="geometry" type="object">
  Parcel boundary as a GeoJSON MultiPolygon (single-polygon boundaries are wrapped to MultiPolygon). Omitted when no boundary was matched for the parcel — see `geometrySource`.

  <Expandable title="geometry properties">
    <ResponseField name="type" type="string">
      GeoJSON geometry type — always "MultiPolygon".
    </ResponseField>

    <ResponseField name="coordinates" type="array">
      MultiPolygon coordinate array per the GeoJSON spec: an array of polygons, each an array of linear rings, each ring an array of `[longitude, latitude]` positions.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="geometrySource" type="string">
  Provenance of the parcel boundary in `geometry`: "apn\_match" (boundary matched by parcel number), "point\_in\_parcel" (boundary matched by the parcel's geocoded point falling inside a polygon), or "none" (no boundary matched; `geometry` is omitted). Example: "apn\_match"
</ResponseField>

<ResponseField name="propertyIdentification" type="object">
  Tax jurisdiction identifiers, parcel IDs, and current ownership.

  <Expandable title="propertyIdentification properties">
    <ResponseField name="municipality" type="string">
      Municipality, township, or ward name within the county. Example: "WARD 2"
    </ResponseField>

    <ResponseField name="city" type="string">
      City name for tax jurisdiction purposes. Example: "WASHINGTON"
    </ResponseField>

    <ResponseField name="county" type="string">
      County name. Example: "DISTRICT OF COLUMBIA"
    </ResponseField>

    <ResponseField name="state" type="string">
      State abbreviation. Example: "DC"
    </ResponseField>

    <ResponseField name="parcelId" type="string">
      Primary parcel identifier (tax map parcel ID) — same value as the top-level `parcelId`. Example: "0314- -0009"
    </ResponseField>

    <ResponseField name="accountNumber" type="string">
      Tax account or assessment account number.
    </ResponseField>

    <ResponseField name="mapParcelId" type="string">
      Combined map and parcel identifier (e.g., "MAP-PARCEL" format).
    </ResponseField>

    <ResponseField name="mapBlockLot" type="string">
      Combined map, block, and lot identifier (e.g., "MAP-BLOCK-LOT" format).
    </ResponseField>

    <ResponseField name="oldParcelId" type="string">
      A prior or alternate parcel identifier for the same physical property (e.g., a superseded assessor parcel number or an alternate county/tax-authority ID).
    </ResponseField>

    <ResponseField name="countyNumber" type="string">
      Numeric county code assigned by the state.
    </ResponseField>

    <ResponseField name="parcelNumber" type="string">
      Numeric parcel sequence number within the tax district.
    </ResponseField>

    <ResponseField name="groupNumber" type="string">
      Tax district group number that this parcel belongs to.
    </ResponseField>

    <ResponseField name="controlMap" type="string">
      Tax map sheet or cadastral map reference used by the assessor to index this parcel.
    </ResponseField>

    <ResponseField name="specialInterest" type="string">
      Special assessment code — an additional tax levy for specific public improvements (e.g., street reconstruction, sewer, sidewalks) benefiting this parcel.
    </ResponseField>

    <ResponseField name="propertyRecordLink" type="string">
      URL of the county assessor's property detail page for this parcel.
    </ResponseField>

    <ResponseField name="currentOwner" type="object">
      Current owner of record with name and mailing address (from county assessor records).

      <Expandable title="currentOwner properties">
        <ResponseField name="ownerName" type="string">
          Full name of the property owner. Example: "6 TREE LLC"
        </ResponseField>

        <ResponseField name="ownerName2" type="string">
          Second owner's full name when title is jointly held (e.g., spouse or co-owner).
        </ResponseField>

        <ResponseField name="ownerOccupied" type="boolean">
          Whether the owner of record occupies the property (owner-occupancy flag from the source feed).
        </ResponseField>

        <ResponseField name="ownerStreet" type="string">
          Owner mailing address street. Example: "11654 PLAZA AMERICA DR"
        </ResponseField>

        <ResponseField name="ownerCity" type="string">
          Owner mailing address city. Example: "RESTON"
        </ResponseField>

        <ResponseField name="ownerState" type="string">
          Owner mailing address state. Example: "VA"
        </ResponseField>

        <ResponseField name="ownerZipCode" type="string">
          Owner mailing address ZIP code. Example: "20190"
        </ResponseField>

        <ResponseField name="ownerZipCodePlusFour" type="string">
          Owner mailing address ZIP+4 extension. Example: "4700"
        </ResponseField>

        <ResponseField name="ownerAddress" type="string">
          Owner mailing address (street line only).
        </ResponseField>

        <ResponseField name="ownerFullAddress" type="string">
          Owner full mailing address (street, city, state, ZIP).
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="propertyLocation" type="object">
  Physical (situs) address of the parcel. The owner mailing address lives in `propertyIdentification.currentOwner`.

  <Expandable title="propertyLocation properties">
    <ResponseField name="address" type="string">
      Formatted property address (street line only). Example: "1217 12TH ST NW"
    </ResponseField>

    <ResponseField name="fullAddress" type="string">
      Full, formatted property address (street line + city + state + ZIP).
    </ResponseField>

    <ResponseField name="rawAddress" type="string">
      Unformatted property address as it appears in the county source record. Example: "1217 12TH ST NW"
    </ResponseField>

    <ResponseField name="street" type="string">
      Street line: direction prefix + name + type + direction suffix. Example: "12TH ST NW"
    </ResponseField>

    <ResponseField name="streetNumber" type="string">
      Street number. Example: "1217"
    </ResponseField>

    <ResponseField name="streetDirectionPrefix" type="string">
      Directional prefix (e.g., "N", "SW").
    </ResponseField>

    <ResponseField name="streetName" type="string">
      Street name without number, direction, or type. Example: "12TH"
    </ResponseField>

    <ResponseField name="streetType" type="string">
      Street type suffix. Example: "ST"
    </ResponseField>

    <ResponseField name="streetDirectionSuffix" type="string">
      Directional suffix. Example: "NW"
    </ResponseField>

    <ResponseField name="unitNumber" type="string">
      Unit, apartment, or suite number.
    </ResponseField>

    <ResponseField name="city" type="string">
      City of the property's physical location. Example: "WASHINGTON"
    </ResponseField>

    <ResponseField name="state" type="string">
      State of the property's physical location. Example: "DC"
    </ResponseField>

    <ResponseField name="zipCode" type="string">
      5-digit ZIP code. Example: "20005"
    </ResponseField>

    <ResponseField name="zipCodePlusFour" type="string">
      ZIP+4 extension (4 digits).
    </ResponseField>

    <ResponseField name="censusTract" type="string">
      US Census tract identifier. Example: "005004"
    </ResponseField>

    <ResponseField name="censusBlock" type="string">
      US Census block identifier (finer-grained than tract). Example: "1000"
    </ResponseField>

    <ResponseField name="fipsCode" type="string">
      Full 5-digit FIPS code (state + county). Example: "11001"
    </ResponseField>

    <ResponseField name="fipsStateCode" type="string">
      2-digit FIPS state code. Example: "11"
    </ResponseField>

    <ResponseField name="fipsCountyCode" type="string">
      3-digit FIPS county code. Example: "001"
    </ResponseField>

    <ResponseField name="addressLine1" type="string">
      Parsed address line 1 (street address without unit). Example: "1217 12TH ST NW"
    </ResponseField>

    <ResponseField name="addressLine2" type="string">
      Parsed address line 2 (unit designator, e.g., "APT 4B").
    </ResponseField>

    <ResponseField name="addressRaw" type="string">
      Address as delivered by the county source, prior to normalization. Example: "1217 12TH ST NW"
    </ResponseField>

    <ResponseField name="addressFormal" type="string">
      Formal parsed address rendering with words spelled out. Example: "1217 12TH STREET NORTHWEST"
    </ResponseField>

    <ResponseField name="addressUnit" type="string">
      Street address with the unit appended (base address + unit).
    </ResponseField>

    <ResponseField name="addressFull" type="string">
      Computed full address string (address + unit, city, state, ZIP). Example: "1217 12TH ST NW, WASHINGTON, DC 20005"
    </ResponseField>

    <ResponseField name="addressFullUSPS" type="string">
      USPS-normalized computed full address string. Example: "1217 12TH ST NW, WASHINGTON, DC 20005"
    </ResponseField>

    <ResponseField name="unitNumberStripped" type="string">
      Unit number with designator words stripped (e.g., "APT 4B" → "4B").
    </ResponseField>

    <ResponseField name="cityUSPS" type="string">
      USPS-normalized city name. Example: "WASHINGTON"
    </ResponseField>

    <ResponseField name="countyUSPS" type="string">
      USPS-normalized county name (uppercase, no suffix). Example: "DISTRICT OF COLUMBIA"
    </ResponseField>

    <ResponseField name="siteCarrierRoute" type="string">
      USPS carrier route code for the situs address. Example: "C016"
    </ResponseField>
  </Expandable>
</ResponseField>

## Classification, utilities & rooms

<ResponseField name="propertyClassification" type="object">
  Property type, use codes, and administrative district assignments from county assessor records. The parcel's zoning designation lives in the top-level `zoningInfo` object.

  <Expandable title="propertyClassification properties">
    <ResponseField name="propertyClass" type="string">
      Broad property class as a Realie `PC####` code; decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "PC0001" (RESIDENTIAL)
    </ResponseField>

    <ResponseField name="propertyUseCode" type="string">
      Property use code (4-digit scheme, unchanged code identities); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "1110"
    </ResponseField>

    <ResponseField name="stateLandUseCode" type="string">
      State-standardized land-use code, distinct from the county's local code and from `propertyUseCode`.
    </ResponseField>

    <ResponseField name="countyLandUseCode" type="string">
      County-native land-use code as recorded by the local assessor. Example: "024"
    </ResponseField>

    <ResponseField name="residential" type="boolean">
      Whether the property is classified as residential, derived from the property use code. Example: false
    </ResponseField>

    <ResponseField name="neighborhood" type="string">
      Assessor neighborhood code or name.
    </ResponseField>

    <ResponseField name="city" type="string">
      City used for classification and zoning purposes.
    </ResponseField>

    <ResponseField name="cityNumber" type="string">
      Numeric city code.
    </ResponseField>

    <ResponseField name="citySection" type="string">
      City section or ward identifier.
    </ResponseField>

    <ResponseField name="schoolDistrict" type="string">
      School district the parcel belongs to. Example: "District of Columbia Public Schools"
    </ResponseField>

    <ResponseField name="specialServiceDistrict1" type="string">
      First special service district the parcel belongs to (e.g., fire, water, sewer).
    </ResponseField>

    <ResponseField name="specialServiceDistrict2" type="string">
      Second special service district the parcel belongs to.
    </ResponseField>

    <ResponseField name="phaseNumber" type="string">
      Development phase number within a subdivision.
    </ResponseField>

    <ResponseField name="tractNumber" type="string">
      Tract number within a subdivision.
    </ResponseField>

    <ResponseField name="condo" type="boolean">
      Whether the property is a condominium, derived from the property use code. Example: false
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="generalInformation" type="object">
  Property-level counts (buildings, mobile homes, units).

  <Expandable title="generalInformation properties">
    <ResponseField name="numberOfBuildings" type="number">
      Total number of buildings on the parcel. Example: 1
    </ResponseField>

    <ResponseField name="numberOfMobileHomes" type="number">
      Total number of mobile homes on the parcel.
    </ResponseField>

    <ResponseField name="numberOfUnits" type="number">
      Total number of dwelling units across all buildings. Example: 2
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="utilities" type="object">
  Utility connections for the parcel, as Realie codes. Heating and cooling systems are documented in the top-level `heating` and `cooling` objects and per building under `buildingInformation.buildings`.

  <Expandable title="utilities properties">
    <ResponseField name="waterSource" type="string">
      Water service (`WS####` — municipal, well, ...); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "WS0001" (MUNICIPAL)
    </ResponseField>

    <ResponseField name="sewer" type="string">
      Sewer service (`SW####` — municipal, septic, ...); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "SW0001" (MUNICIPAL)
    </ResponseField>

    <ResponseField name="gasService" type="string">
      Gas service (`GS####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="electricService" type="string">
      Electric service (`ES####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="roomInformation" type="object">
  Property-level room totals across all buildings. Per-building room counts are in `buildingInformation.buildings` (totalBedrooms, totalBathrooms, etc.).

  <Expandable title="roomInformation properties">
    <ResponseField name="roomCount" type="number">
      Total number of rooms across all buildings on the property. Example: 8
    </ResponseField>

    <ResponseField name="bedCount" type="number">
      Total bedrooms across all buildings. Example: 3
    </ResponseField>

    <ResponseField name="bathCount" type="number">
      Total bathrooms across all buildings, as a decimal — half baths count as 0.5. Example: 2.0
    </ResponseField>

    <ResponseField name="fullBathCount" type="number">
      Total full bathrooms (toilet + sink + tub/shower) across all buildings. Example: 2
    </ResponseField>

    <ResponseField name="halfBathCount" type="number">
      Total half bathrooms (toilet + sink only) across all buildings. Example: 0
    </ResponseField>

    <ResponseField name="plumbingFixtureCount" type="number">
      Total plumbing fixtures across all buildings.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="outbuildingsYardItems" type="array">
  Accessory structures and yard improvements recorded as simple line items in county assessor records (sheds, fences, decks, pools, detached carports). Structures with detailed characteristics (year built, rooms, construction type) appear in `buildingInformation.buildings` instead.

  <Expandable title="outbuilding / yard item entry properties">
    <ResponseField name="buildingCardNumber" type="number">
      Building card or improvement number this item belongs to.
    </ResponseField>

    <ResponseField name="type" type="string">
      Item type (e.g., "Shed", "Fence", "Deck", "Pool", "Detached Carport").
    </ResponseField>

    <ResponseField name="value" type="number">
      Assessed value of the item.
    </ResponseField>

    <ResponseField name="description" type="string">
      Additional description or details about the item.
    </ResponseField>

    <ResponseField name="areaUnits" type="string">
      Unit of measure for area (e.g., "SF", "LF").
    </ResponseField>

    <ResponseField name="area" type="number">
      Area or length measurement in the specified units.
    </ResponseField>
  </Expandable>
</ResponseField>

## Buildings

<ResponseField name="building" type="object">
  Coded characteristics of the parcel's primary building, promoted to the top level. Every coded member stores a Realie code — decode with the [Property Feature Field Key](/api-reference/v3/feature-key). The same member set appears per building under `buildingInformation.buildings[].characteristics`.

  <Expandable title="building properties">
    <ResponseField name="buildingType" type="string">
      Specific building form (`BT####`). Example: "BT0003" (DUPLEX)
    </ResponseField>

    <ResponseField name="propertySubType" type="string">
      Property sub-type (`PS####`). Example: "PS0001" (CONDOMINIUM UNIT)
    </ResponseField>

    <ResponseField name="buildingClass" type="string">
      Construction class of the building shell (`BC####`).
    </ResponseField>

    <ResponseField name="buildingHeightClass" type="string">
      Height class (`HB####`).
    </ResponseField>

    <ResponseField name="buildingLevels" type="string">
      Level configuration (`BL####`).
    </ResponseField>

    <ResponseField name="shape" type="string">
      Footprint shape (`BH####`).
    </ResponseField>

    <ResponseField name="architecturalStyle" type="string">
      Architectural style (`AS####`). Example: "AS0001" (RANCH)
    </ResponseField>

    <ResponseField name="floorPlan" type="string">
      Floor-plan layout (`FP####`).
    </ResponseField>

    <ResponseField name="construction" type="string">
      Primary structural construction (`CT####`). Example: "CT0003" (MASONRY)
    </ResponseField>

    <ResponseField name="constructionMethod" type="string">
      How the building was produced (`CM####`).
    </ResponseField>

    <ResponseField name="exteriorWall" type="string">
      Exterior wall covering or material (`EW####`). Example: "EW0002" (BRICK)
    </ResponseField>

    <ResponseField name="interiorWall" type="string">
      Interior wall finish material (`IW####`). Example: "IW0001" (DRYWALL)
    </ResponseField>

    <ResponseField name="roofMaterial" type="string">
      Roof covering material (`RM####`). Example: "RM0003" (METAL)
    </ResponseField>

    <ResponseField name="roofStyle" type="string">
      Roof geometry (`RS####`). Example: "RS0001" (GABLE)
    </ResponseField>

    <ResponseField name="flooring" type="string">
      Floor covering material (`FL####`). Example: "FL0002" (WOOD)
    </ResponseField>

    <ResponseField name="foundation" type="string">
      Foundation type (`FN####`). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="basement" type="string">
      Basement presence and type (`BS####`).
    </ResponseField>

    <ResponseField name="attic" type="string">
      Attic presence and finish (`AT####`). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="condition" type="integer">
      Physical condition on an integer 1–20 ordinal scale (1 worst, 20 best) — a number, not an opaque code. Scale anchors in the [Property Feature Field Key](/api-reference/v3/feature-key). Example: 10
    </ResponseField>

    <ResponseField name="quality" type="integer">
      Construction quality on an integer 1–20 ordinal scale (1 lowest) — a separate fact from `condition`; the two share only the scale form. Scale labels in the [Property Feature Field Key](/api-reference/v3/feature-key). Example: 11
    </ResponseField>

    <ResponseField name="parking" type="string">
      Parking arrangement (`PK####`). Example: "PK0001" (ATTACHED GARAGE)
    </ResponseField>

    <ResponseField name="driveway" type="object">
      Driveway characteristics.

      <Expandable title="driveway properties">
        <ResponseField name="material" type="string">
          Driveway surface material (`DM####`). Example: "DM0001" (CONCRETE)
        </ResponseField>

        <ResponseField name="type" type="string">
          Driveway form (`DT####`). Example: "DT0001" (DRIVEWAY, TYPE UNSPECIFIED)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pool" type="object">
      Pool characteristics.

      <Expandable title="pool properties">
        <ResponseField name="exists" type="boolean">
          Whether any pool or spa is present. Example: true
        </ResponseField>

        <ResponseField name="type" type="string">
          Pool or spa type (`PT####`); omitted when the source records a pool without a type. Example: "PT0001" (SPA OR HOT TUB)
        </ResponseField>

        <ResponseField name="features" type="array of strings">
          Pool features (`PF####`); a pool can carry several.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="amenities" type="array of strings">
      Recorded amenities (`AM####`); a building can carry several. Example: \["AM0001"] (IRRIGATION SPRINKLER SYSTEM)
    </ResponseField>

    <ResponseField name="otherRooms" type="array of strings">
      Additional named rooms (`OR####`). Example: \["OR0001"] (FAMILY ROOM OR DEN)
    </ResponseField>

    <ResponseField name="buildingAreaType" type="string">
      What kind of measurement the building's headline `buildingArea` represents (`BA####`). Example: "BA0001" (LIVING AREA)
    </ResponseField>

    <ResponseField name="developmentType" type="string">
      Development type of the building's setting (`DV####`).
    </ResponseField>

    <ResponseField name="developmentStatus" type="string">
      Construction/completion status (`DS####`).
    </ResponseField>

    <ResponseField name="historicStatus" type="string">
      Historic designation (`HT####`).
    </ResponseField>

    <ResponseField name="ageClass" type="string">
      Age class (`AC####`).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="heating" type="object">
  Heating system of the primary building, described by five independent facets — counties record different aspects of the same system, so any subset may be present. All facets are Realie codes; decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Per-building heating is under `buildingInformation.buildings[].heating`.

  <Expandable title="heating properties">
    <ResponseField name="equipment" type="string">
      Heating equipment (`HE####`). Example: "HE0001" (HEAT PUMP)
    </ResponseField>

    <ResponseField name="distribution" type="string">
      How heat is delivered (`HD####`). Example: "HD0001" (FORCED AIR)
    </ResponseField>

    <ResponseField name="energySource" type="string">
      Fuel or energy source (`HS####`). Example: "HS0001" (NATURAL GAS)
    </ResponseField>

    <ResponseField name="configuration" type="string">
      System configuration (`HC####`). Example: "HC0001" (CENTRAL)
    </ResponseField>

    <ResponseField name="coverage" type="string">
      Whether (and how completely) the building is heated, used when the source proves presence without naming the system (`HX####`).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="cooling" type="object">
  Cooling system of the primary building. Per-building cooling is under `buildingInformation.buildings[].cooling`.

  <Expandable title="cooling properties">
    <ResponseField name="equipment" type="string">
      Cooling equipment (`CL####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "CL0001" (CENTRAL)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="buildingInformation" type="object">
  Container for all improved structures on the parcel. Covers main dwellings, guest houses, detached garages, barns — any building carrying detailed assessor characteristics (year built, construction, rooms, square footage). Simple accessory structures and yard improvements with only a type/description/area/value are listed under `outbuildingsYardItems` instead.

  <Expandable title="buildingInformation properties">
    <ResponseField name="buildings" type="array of objects">
      List of all improved structures on the parcel, each with detailed appraisal characteristics from county assessor records.

      ```json example theme={null}
      "buildings": [
        {
          "stories": 2.0,
          "livingArea": 1628.0,
          "buildingArea": 2348.0,
          "buildingAreas": [
            { "area": 2348.0, "areaUnits": "SF", "areaType": "BA0003", "squareFeet": 2348.0 },
            { "area": 720.0, "areaUnits": "SF", "areaType": "BA0015", "squareFeet": 720.0 }
          ],
          "actualYearBuilt": 1900,
          "effectiveYearBuilt": 1967,
          "totalBedrooms": 3,
          "totalBathrooms": 2.0,
          "fullBathrooms": 2,
          "halfBathrooms": 0,
          "characteristics": {
            "exteriorWall": "EW0002",
            "roofMaterial": "RM0003",
            "roofStyle": "RS0001",
            "flooring": "FL0002",
            "basement": "BS0001",
            "construction": "CT0003",
            "architecturalStyle": "AS0001",
            "quality": 11,
            "condition": 10,
            "buildingAreaType": "BA0003",
            "pool": { "exists": false }
          },
          "heating": {
            "distribution": "HD0001",
            "energySource": "HS0001"
          },
          "cooling": { "equipment": "CL0001" },
          "pool": false,
          "fireplaceCount": 2,
          "garage": false,
          "garageCount": 0
        }
      ]
      ```

      <Expandable title="building entry properties">
        <ResponseField name="buildingNumber" type="integer">
          Building sequence number on the parcel (1 = primary building).
        </ResponseField>

        <ResponseField name="buildingValue" type="float">
          Assessed or appraised value of this building, also known as improvement value.
        </ResponseField>

        <ResponseField name="stories" type="float">
          Number of stories in this building; half-stories are decimals (e.g., 1.5). Example: 2
        </ResponseField>

        <ResponseField name="livingArea" type="float">
          Total heated/finished living area of this building in square feet. Example: 1628
        </ResponseField>

        <ResponseField name="buildingArea" type="float">
          Total building area in square feet; `characteristics.buildingAreaType` says what kind of measurement it represents. Example: 2348
        </ResponseField>

        <ResponseField name="buildingAreas" type="array of objects">
          Breakdown of this building's areas by section (e.g., ground floor, gross, garage, basement).

          <Expandable title="buildingAreas entry properties">
            <ResponseField name="area" type="float">
              Numeric area value in the units specified by `areaUnits`. Example: 2348
            </ResponseField>

            <ResponseField name="areaUnits" type="string">
              Unit of measure for `area` (e.g., "SF" for square feet, "LF" for linear feet). Example: "SF"
            </ResponseField>

            <ResponseField name="areaType" type="string">
              The kind of measured area this entry represents, as a Realie `BA####` code (living area, gross area, garage, basement, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "BA0003" (GROSS AREA)
            </ResponseField>

            <ResponseField name="squareFeet" type="float">
              The same measurement converted to square feet. Example: 2348
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="actualYearBuilt" type="integer">
          Original year the building was constructed. Example: 1900
        </ResponseField>

        <ResponseField name="effectiveYearBuilt" type="integer">
          Effective year built after renovations — reflects condition, not original construction. Example: 1967
        </ResponseField>

        <ResponseField name="totalBedrooms" type="integer">
          Number of bedrooms in this building. Example: 3
        </ResponseField>

        <ResponseField name="totalBathrooms" type="float">
          Total bathroom count in this building; half baths count as 0.5 (e.g., 2.5). Example: 2
        </ResponseField>

        <ResponseField name="fullBathrooms" type="integer">
          Number of full bathrooms (toilet + sink + tub/shower). Example: 2
        </ResponseField>

        <ResponseField name="halfBathrooms" type="integer">
          Number of half bathrooms (toilet + sink only). Example: 0
        </ResponseField>

        <ResponseField name="plumbingFixtures" type="integer">
          Total plumbing fixture count for this building.
        </ResponseField>

        <ResponseField name="characteristics" type="object">
          This building's coded characteristics — identical member set and vocabularies as the top-level `building` object documented above (buildingType, architecturalStyle, construction, exteriorWall, roofMaterial, flooring, basement, condition, quality, parking, driveway, pool, amenities, otherRooms, buildingAreaType, and the rest). All coded members store Realie codes; decode with the [Property Feature Field Key](/api-reference/v3/feature-key).
        </ResponseField>

        <ResponseField name="heating" type="object">
          This building's heating system — identical facet set as the top-level `heating` object documented above (equipment, distribution, energySource, configuration, coverage).
        </ResponseField>

        <ResponseField name="cooling" type="object">
          This building's cooling system — identical member set as the top-level `cooling` object documented above (equipment).
        </ResponseField>

        <ResponseField name="roofFraming" type="string">
          Roof framing type (e.g., "Truss", "Rafter"). Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="floorSystem" type="string">
          Floor structural system (e.g., "Joist", "Slab on Grade"). Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="cabinetMillwork" type="string">
          Cabinet and millwork quality grade. Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="paintDecor" type="string">
          Paint and decor quality grade. Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="bathTiles" type="string">
          Bathroom tile quality or type. Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="pool" type="boolean">
          Whether the building has a pool; mirrors `characteristics.pool.exists`. Example: false
        </ResponseField>

        <ResponseField name="fireplace" type="boolean">
          Whether the building has a fireplace.
        </ResponseField>

        <ResponseField name="fireplaceCount" type="integer">
          Number of fireplaces. Example: 2
        </ResponseField>

        <ResponseField name="garage" type="boolean">
          Whether the building has a garage. Example: false
        </ResponseField>

        <ResponseField name="garageCount" type="integer">
          Number of garage bays or spaces. Example: 0
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Land, valuation, tax & legal

<ResponseField name="landInformation" type="object">
  Aggregate land measurements, lot dimensions, and land classification for the parcel.

  <Expandable title="properties">
    <ResponseField name="deedAcres" type="number">
      Acreage as stated on the recorded deed.
    </ResponseField>

    <ResponseField name="acres" type="number">
      Total parcel acreage from county assessor records. Example: 0.0425
    </ResponseField>

    <ResponseField name="calculatedAcres" type="number">
      Acreage calculated from GIS or survey data rather than stated on the deed.
    </ResponseField>

    <ResponseField name="totalLandArea" type="number">
      Total land area in the units specified by `landAreaUnits`. Example: 1853
    </ResponseField>

    <ResponseField name="landAreaUnits" type="string">
      Unit of measure for `totalLandArea` (e.g., "AC" for acres, "SF" for square feet).
    </ResponseField>

    <ResponseField name="lotDepth" type="number">
      Lot depth in feet.
    </ResponseField>

    <ResponseField name="lotFrontage" type="number">
      Lot frontage (street-facing width) in feet.
    </ResponseField>

    <ResponseField name="topography" type="string">
      Site topography (`TP####` — level, rolling, hilly, ...); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "TP0001" (LEVEL GRADE)
    </ResponseField>

    <ResponseField name="roadAccess" type="string">
      Road access to the parcel (`RA####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="waterfrontType" type="string">
      Waterfront type (`WF####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="viewQuality" type="string">
      View quality (`VQ####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="landDetails" type="array">
      Breakdown of the parcel into land segments by use code or soil class.

      <Expandable title="properties">
        <ResponseField name="landCode" type="string">
          Land use or soil classification code for this parcel segment. Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="soilClass" type="string">
          Soil productivity class or rating. Not populated in the current data generation.
        </ResponseField>

        <ResponseField name="area" type="number">
          Numeric area measurement for this land segment in the units specified by `areaUnits`.
        </ResponseField>

        <ResponseField name="areaUnits" type="string">
          Unit of measure for `area` (e.g., "AC", "SF", "FF").
        </ResponseField>

        <ResponseField name="acres" type="number">
          Area of this land segment in acres.
        </ResponseField>

        <ResponseField name="squareFeet" type="number">
          Area of this land segment in square feet.
        </ResponseField>

        <ResponseField name="landValue" type="number">
          Total assessed value of this land segment.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="valuationInformation" type="object">
  Assessor valuation figures and tax exemptions for the parcel.

  <Expandable title="properties">
    <ResponseField name="totalMarketValue" type="number">
      Total market value of the property (land plus buildings) from county assessor records. Example: 1184520
    </ResponseField>

    <ResponseField name="totalAssessedValue" type="number">
      Total assessed value used for tax calculation. Example: 1184520
    </ResponseField>

    <ResponseField name="totalBuildingValue" type="number">
      Assessed or appraised value of all buildings/improvements (also known as total improvement value). Example: 479530
    </ResponseField>

    <ResponseField name="totalLandValue" type="number">
      Assessed or appraised value of the land only. Example: 704990
    </ResponseField>

    <ResponseField name="totalJustValue" type="number">
      Total just/fair market value, used in Florida and similar jurisdictions.
    </ResponseField>

    <ResponseField name="taxableValue" type="number">
      Taxable value after exemptions are applied — the basis tax is actually levied against. Differs from `totalAssessedValue` when exemptions exist.
    </ResponseField>

    <ResponseField name="assessmentYear" type="number">
      Tax year the assessment applies to. Example: 2025
    </ResponseField>

    <ResponseField name="appraisalYear" type="number">
      Year the appraisal was performed.
    </ResponseField>

    <ResponseField name="exemptions" type="array">
      Tax exemptions applied to the property.

      <Expandable title="properties">
        <ResponseField name="exemptionType" type="string">
          Exemption type as a readable value — no decode table needed. Values include "Homestead", "Senior", "Veteran", "School/College", "Disabled", "Widow", "Religious". Example: "Homestead"
        </ResponseField>

        <ResponseField name="exemptionValue" type="number">
          Dollar amount of the exemption.
        </ResponseField>

        <ResponseField name="exemptionDescription" type="string">
          Additional description or details about the exemption.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="totalExemptionsValue" type="number">
      Total dollar value of all exemptions combined.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="taxInformation" type="object">
  Tax amounts, districts, and historical tax records for the parcel.

  <Expandable title="properties">
    <ResponseField name="taxAmount" type="number">
      Total tax amount due or paid for the current tax year. Example: 59226
    </ResponseField>

    <ResponseField name="taxYear" type="number">
      Tax year the record applies to. Example: 2025
    </ResponseField>

    <ResponseField name="taxDistrict" type="string">
      Tax district name.
    </ResponseField>

    <ResponseField name="taxDistrictCode" type="string">
      The assessor's tax-district code for the parcel, where the source provides one — the district identifier the county assessor levies against, carried verbatim. Jurisdiction-issued: meaningful within its county, not part of the national code system, and format varies by county (numeric codes, structured codes, or district names). Example: "01"
    </ResponseField>

    <ResponseField name="taxClass" type="string">
      Tax classification of the parcel (`TC####`); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Vocabulary published; not yet populated in the current data generation.
    </ResponseField>

    <ResponseField name="taxStatus" type="string">
      Explicit tax status when the source feed semantically proves it: "current", "exempt", "delinquent", or "not\_available"; omitted when status is unknown. Only "delinquent" is emitted in the current data generation. Example: "delinquent"
    </ResponseField>

    <ResponseField name="jurisdiction" type="string">
      Tax-levying jurisdiction; may differ from the zoning jurisdiction.
    </ResponseField>

    <ResponseField name="taxRecordLink" type="string">
      URL to the county tax record or tax bill.
    </ResponseField>

    <ResponseField name="taxHistory" type="array">
      Historical tax records by year.

      <Expandable title="properties">
        <ResponseField name="taxYear" type="number">
          Tax year this record applies to.
        </ResponseField>

        <ResponseField name="taxAmount" type="number">
          Total tax amount due or paid for that year.
        </ResponseField>

        <ResponseField name="taxDescription" type="string">
          Description of what the tax is for (e.g., "Property Tax", "School Tax", "Municipal Tax").
        </ResponseField>

        <ResponseField name="paidStatus" type="string">
          Payment status (e.g., "Paid", "Unpaid", "Delinquent", "Partial").
        </ResponseField>

        <ResponseField name="paidDate" type="string">
          Date the tax bill was paid.
        </ResponseField>

        <ResponseField name="dueDate" type="string">
          Date the tax bill is or was due.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="legalInformation" type="object">
  Recorded legal description, subdivision/plat identifiers, and Public Land Survey System references.

  <Expandable title="properties">
    <ResponseField name="legalDescription" type="string">
      Full legal description of the property as recorded. Example: "SQUARE 0314 LOT 0009 NBHD: OLD CITY 2"
    </ResponseField>

    <ResponseField name="legalReference" type="string">
      Reference to the recorded legal document (e.g., deed book/page).
    </ResponseField>

    <ResponseField name="subdivisionName" type="string">
      Name of the subdivision or plat. Example: "OLD CITY 2"
    </ResponseField>

    <ResponseField name="section" type="string">
      Public Land Survey System (PLSS) section number.
    </ResponseField>

    <ResponseField name="township" type="string">
      Public Land Survey System (PLSS) township designation.
    </ResponseField>

    <ResponseField name="range" type="string">
      Public Land Survey System (PLSS) range designation.
    </ResponseField>

    <ResponseField name="blockNumber" type="string">
      Block number within the subdivision plat. Example: "314"
    </ResponseField>

    <ResponseField name="lotNumber" type="string">
      Lot number within the block. Example: "9"
    </ResponseField>

    <ResponseField name="lotCode" type="string">
      Lot composition of the legal parcel (`LT####` — more than one lot, partial lot, ...); decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "LT0001" (MORE THAN ONE LOT)
    </ResponseField>

    <ResponseField name="landLot" type="string">
      Land lot number, used in metes-and-bounds states such as Georgia.
    </ResponseField>

    <ResponseField name="deedLink" type="string">
      URL to the recorded deed document.
    </ResponseField>
  </Expandable>
</ResponseField>

## Sales history

<ResponseField name="salesHistory" type="array">
  Chronological list of recorded sale and transfer events for the parcel, from county recorder records — each entry carries the price, dates, deed references, and parties. In the v2-legacy flat shape these events are exposed as `transfers[]`, where `saleCode` corresponds to `qualification` here.

  <Expandable title="sales history entry properties">
    <ResponseField name="saleDate" type="string">
      Date the sale was executed (YYYY-MM-DD format). Example: "2019-12-17"
    </ResponseField>

    <ResponseField name="recordingDate" type="string">
      Date the deed was recorded with the county (YYYY-MM-DD format). Example: "2020-01-16"
    </ResponseField>

    <ResponseField name="salePrice" type="float">
      Recorded sale price in dollars. May be 0 for nominal-consideration or non-disclosure transfers — check `armsLength` and `qualification` before treating it as a market price. Example: 1400000
    </ResponseField>

    <ResponseField name="deedBookPage" type="string">
      Combined deed book and page reference for the recorded instrument (e.g., "1234/567").
    </ResponseField>

    <ResponseField name="bookNumber" type="string">
      Deed book number of the recorded instrument.
    </ResponseField>

    <ResponseField name="pageNumber" type="string">
      Deed page number of the recorded instrument.
    </ResponseField>

    <ResponseField name="saleDocumentType" type="string">
      Recorded instrument (deed) type on the event (`TT####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "TT0001" (WARRANTY DEED)
    </ResponseField>

    <ResponseField name="saleDocumentNumber" type="string">
      Recorder's document or instrument number for the sale. Mortgages that financed a sale reference this value via `mortgages[].relatedSaleDocumentNumber`. Example: "2020.6827"
    </ResponseField>

    <ResponseField name="qualification" type="string">
      Sale-qualification code (`TQ####`) saying why the sale is — or is not — considered a market (arm's-length) transaction. Omitted when the source recorded no reviewed qualification signal for the sale. Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). In the v2-legacy flat shape this is exposed as `transfers[].saleCode`. Example: "TQ0002" (VALID ARM'S-LENGTH SALE)
    </ResponseField>

    <ResponseField name="armsLength" type="boolean">
      Whether the sale is considered an arm's-length market transaction — the boolean verdict carried alongside `qualification`. Omitted when the source supplied no qualification verdict for the sale, including on nearly all events recorded after March 2026, where the determination lags the recording; read `qualification` for those. Example: true
    </ResponseField>

    <ResponseField name="vacantImproved" type="string">
      Whether the property was vacant or improved at the time of sale. Not populated in the current data generation.
    </ResponseField>

    <ResponseField name="distressedSale" type="boolean">
      Whether the sale was distressed (foreclosure, short sale, etc.), as flagged in recorder records.
    </ResponseField>

    <ResponseField name="realEstateOwned" type="boolean">
      Whether the property was REO (bank-owned, post-foreclosure) at the time of sale, as flagged in recorder records.
    </ResponseField>

    <ResponseField name="transferTax" type="float">
      Documentary transfer / excise tax paid on the sale, in dollars. Example: 0
    </ResponseField>

    <ResponseField name="titleCompany" type="string">
      Title company that handled the recorded transaction. Example: "ALLIED TITLE & ESCROW LLC"
    </ResponseField>

    <ResponseField name="grantor" type="string">
      Seller name in this transaction. Example: "MARR NELSON P"
    </ResponseField>

    <ResponseField name="grantor2" type="string">
      Second seller/grantor name when the property was sold by co-sellers. Example: "MARR LISETTE M"
    </ResponseField>

    <ResponseField name="grantee" type="string">
      Buyer name in this transaction. Example: "6 TREE LLC"
    </ResponseField>

    <ResponseField name="grantee2" type="string">
      Second buyer/grantee name when the property was bought by co-buyers.
    </ResponseField>

    <ResponseField name="buyerEntityType" type="string">
      What kind of entity the buyer is (`BE####` — individual, company, trust, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "BE0001" (INDIVIDUAL(S))
    </ResponseField>

    <ResponseField name="buyerRelationship" type="string">
      Relationship between co-buyers (`BR####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "BR0001" (HUSBAND AND WIFE)
    </ResponseField>

    <ResponseField name="buyerRole" type="string">
      Legal role the buyer takes in the transfer (`RO####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "RO0001" (BENEFICIARY/CREDITOR)
    </ResponseField>

    <ResponseField name="buyerVesting" type="string">
      How the buyer holds title (`BV####` — joint tenants, tenants in common, community property, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "BV0001" (JOINT TENANTS)
    </ResponseField>

    <ResponseField name="priceDerivation" type="string">
      How the recorded sale-price figure was obtained (`PD####` — stated on the document, computed from transfer tax, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "PD0001" (STATED ON DOCUMENT)
    </ResponseField>
  </Expandable>
</ResponseField>

## Mortgages, liens & foreclosures

<ResponseField name="mortgages" type="array of objects">
  Mortgages and deeds of trust recorded against the property — purchase-money loans and refinances, sourced from county recorder records and sorted newest-first. Each entry carries the lender, loan terms, lien position, a link to the sale it financed (if any), and the loan's own post-origination custody chain (assignments and releases). A key is absent when the source record has no value.

  ```json example theme={null}
  "mortgages": [
  {
            "amount": 308000,
            "lender": "AURORA FINANCIAL LLC",
            "interestRate": 4.0,
            "interestRateType": "IR0001",
            "term": 360,
            "termUnit": "months",
            "loanType": "LN0001",
            "lienPosition": "first",
            "recordingDate": "2017-03-21",
            "documentNumber": "2017.30971",
            "dueDate": "2047-04-01",
            "loanTransactionType": "LX0001",
            "adjustableRateRider": true,
            "firstRateChangeYear": 24,
            "riders": ["RD0003"]
  }
  ]
  ```

  <Expandable title="mortgage entry properties">
    <ResponseField name="amount" type="float">
      Loan amount in dollars. Example: 308000
    </ResponseField>

    <ResponseField name="lender" type="string">
      Lender / beneficiary name as recorded. Example: "AURORA FINANCIAL LLC"
    </ResponseField>

    <ResponseField name="interestRate" type="float">
      Interest rate, in percent. Example: 4.0
    </ResponseField>

    <ResponseField name="interestRateType" type="string">
      Interest-rate structure (`IR####` — fixed, variable, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "IR0001" (VARIABLE RATE)
    </ResponseField>

    <ResponseField name="term" type="integer">
      Loan term length, in the unit given by termUnit. Example: 360
    </ResponseField>

    <ResponseField name="termUnit" type="string">
      Unit of the loan term. Currently always "months". Example: "months"
    </ResponseField>

    <ResponseField name="loanType" type="string">
      Loan product or program (`LN####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "LN0001" (CONVENTIONAL LOAN)
    </ResponseField>

    <ResponseField name="amortizationType" type="string">
      Amortization structure (`LA####` — balloon, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "LA0001" (BALLOON)
    </ResponseField>

    <ResponseField name="lienPosition" type="string">
      Lien priority at origination: "first" (senior) or "second" (junior/piggyback). Carried on the source record — not derivable from date, since first and second mortgages are typically recorded at the same closing. Example: "first"
    </ResponseField>

    <ResponseField name="recordingDate" type="string">
      Date the mortgage was recorded (YYYY-MM-DD format). Example: "2017-03-21"
    </ResponseField>

    <ResponseField name="documentNumber" type="string">
      Recorder's document number for the mortgage. Example: "2017.30971"
    </ResponseField>

    <ResponseField name="dueDate" type="string">
      Loan maturity / due date (YYYY-MM-DD format). Example: "2047-04-01"
    </ResponseField>

    <ResponseField name="loanId" type="string">
      Source loan identifier used to link this loan to its assignment/release records.
    </ResponseField>

    <ResponseField name="relatedSaleDocumentNumber" type="string">
      Document number of the sale this loan financed, if any — links to a salesHistory entry's saleDocumentNumber. Absent for a standalone refinance. Example: "2020.6827"
    </ResponseField>

    <ResponseField name="loanTransactionType" type="string">
      What the loan financed (`LX####` — purchase, refinance, construction, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "LX0001" (REFINANCE / SECOND TRUST DEED)
    </ResponseField>

    <ResponseField name="refinance" type="boolean">
      Whether this loan is a refinance. Example: true
    </ResponseField>

    <ResponseField name="heloc" type="boolean">
      Whether this loan is a home equity line of credit. Example: true
    </ResponseField>

    <ResponseField name="equityLoan" type="boolean">
      Whether this loan is a home-equity loan. Example: true
    </ResponseField>

    <ResponseField name="constructionLoan" type="boolean">
      Whether this loan is a construction loan.
    </ResponseField>

    <ResponseField name="estimatedInterestRate" type="boolean">
      Whether interestRate is estimated rather than recorded. Example: true
    </ResponseField>

    <ResponseField name="sellerCarryBack" type="boolean">
      Whether the seller carried back financing.
    </ResponseField>

    <ResponseField name="privatePartyLender" type="boolean">
      Whether the lender is a private party rather than an institution.
    </ResponseField>

    <ResponseField name="adjustableRateRider" type="boolean">
      Whether an adjustable-rate rider is present on the recorded mortgage. Example: true
    </ResponseField>

    <ResponseField name="adjustableRateIndex" type="string">
      Index the adjustable rate is tied to (`RI####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "RI0001" (LIBOR 1-YEAR)
    </ResponseField>

    <ResponseField name="maximumInterestRate" type="float">
      Lifetime maximum (cap) interest rate, in percent.
    </ResponseField>

    <ResponseField name="minimumInterestRate" type="float">
      Lifetime minimum (floor) interest rate, in percent.
    </ResponseField>

    <ResponseField name="interestOnlyPeriod" type="integer">
      Interest-only period length in months, if any.
    </ResponseField>

    <ResponseField name="rateChangeFrequency" type="number">
      How often the adjustable rate may change, as an interval in years — a numeric quantity, not a code (e.g. `1.0` = annually, `0.083` ≈ monthly). Example: 1.0
    </ResponseField>

    <ResponseField name="firstRateChangeYear" type="integer">
      Year of the first scheduled rate change, as recorded (may appear as a two-digit year). Example: 24
    </ResponseField>

    <ResponseField name="riders" type="array of strings">
      Riders recorded on the mortgage instrument (`RD####` — planned unit development, condominium, second home, balloon, ...); an instrument can carry several. Decode each entry with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: \["RD0003"] (1-4 FAMILY RIDER)
    </ResponseField>

    <ResponseField name="assignmentsReleases" type="array of objects">
      This loan's post-origination custody chain — assignments (lender-to-lender transfers) and releases/reconveyances — in recording order, joined to the loan from recorder assignment and release records.

      <Expandable title="assignment/release entry properties">
        <ResponseField name="recordType" type="string">
          "assignment" (the loan is transferred to a new holder) or "release" (the loan is satisfied/reconveyed). Example: "assignment"
        </ResponseField>

        <ResponseField name="recordingDate" type="string">
          Date this assignment/release was recorded (YYYY-MM-DD format). Example: "2025-01-21"
        </ResponseField>

        <ResponseField name="fromLender" type="string">
          Lender assigning or releasing the loan (the current holder). Example: "CENTER STREET LENDING VIII SPE LLC"
        </ResponseField>

        <ResponseField name="toLender" type="string">
          Lender the loan is assigned to. Assignments only — absent for releases. Example: "CENTER STREET LENDING RIO IX LLC"
        </ResponseField>

        <ResponseField name="originalLoanAmount" type="float">
          Original amount of the mortgage being assigned/released, in dollars. Example: 80000
        </ResponseField>

        <ResponseField name="originalMortgageDate" type="string">
          Recording date of the original mortgage being assigned/released (YYYY-MM-DD format). Example: "2024-11-07"
        </ResponseField>

        <ResponseField name="originalDocumentNumber" type="string">
          Document number of the original mortgage being assigned/released. Example: "105276"
        </ResponseField>

        <ResponseField name="documentNumber" type="string">
          Recorder's document number for this assignment/release record. Example: "6692"
        </ResponseField>

        <ResponseField name="borrowerName" type="string">
          Borrower on the underlying loan. Example: "6 TREE LLC"
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="liens" type="array of objects">
  Involuntary liens and judgments recorded against the property — tax liens, judgments, mechanic's liens, UCC filings — sourced from county recorder records. A key is absent when the source record has no value.

  <Expandable title="lien entry properties">
    <ResponseField name="lienType" type="string">
      Type of the recorded lien or judgment (`LI####`). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). Example: "LI0001" (FINANCING STATEMENT)
    </ResponseField>

    <ResponseField name="recordingDate" type="string">
      Date the lien was recorded (YYYY-MM-DD format).
    </ResponseField>

    <ResponseField name="documentNumber" type="string">
      Recorder's document number for the lien.
    </ResponseField>

    <ResponseField name="amount" type="float">
      Lien / judgment amount in dollars.
    </ResponseField>

    <ResponseField name="creditorName" type="string">
      Lien holder / creditor — the party the lien is in favor of.
    </ResponseField>

    <ResponseField name="debtorName" type="string">
      Debtor — the party the lien is against.
    </ResponseField>

    <ResponseField name="caseNumber" type="string">
      Court or case number associated with the lien, if any.
    </ResponseField>

    <ResponseField name="referenceDocumentNumber" type="string">
      Document number of a related/referenced instrument (e.g., the underlying loan).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="foreclosures" type="array of objects">
  Pre-foreclosure and foreclosure events recorded against the property — notices of default, notices of sale, lis pendens, and auctions — sourced from county recorder records. A key is absent when the source record has no value.

  <Expandable title="foreclosure entry properties">
    <ResponseField name="recordType" type="string">
      Type of the recorded foreclosure event (`FR####` — lis pendens, notice of default, notice of sale, ...). Decode with the [Property Feature Field Key](/api-reference/v3/feature-key). May be absent on records restored from the pre-v3 pipeline whose event class has no code in the published vocabulary. Example: "FR0002" (NOTICE OF DEFAULT)
    </ResponseField>

    <ResponseField name="recordingDate" type="string">
      Date this foreclosure record was recorded (YYYY-MM-DD format).
    </ResponseField>

    <ResponseField name="fileDate" type="string">
      Court filing date (YYYY-MM-DD format), when distinct from the recording date. Populated on records restored from the pre-v3 pipeline, which recorded both dates.
    </ResponseField>

    <ResponseField name="documentNumber" type="string">
      Recorder's document number for this record.
    </ResponseField>

    <ResponseField name="caseNumber" type="string">
      Court or trustee case number.
    </ResponseField>

    <ResponseField name="defaultDate" type="string">
      Date of default (YYYY-MM-DD format).
    </ResponseField>

    <ResponseField name="unpaidBalance" type="float">
      Unpaid loan balance at filing, in dollars.
    </ResponseField>

    <ResponseField name="pastDueAmount" type="float">
      Amount past due at filing, in dollars.
    </ResponseField>

    <ResponseField name="auctionDate" type="string">
      Scheduled foreclosure-auction / trustee-sale date (YYYY-MM-DD format).
    </ResponseField>

    <ResponseField name="auctionTime" type="string">
      Scheduled auction time, as free text as recorded.
    </ResponseField>

    <ResponseField name="auctionLocation" type="string">
      Scheduled auction location.
    </ResponseField>

    <ResponseField name="minimumBidAmount" type="float">
      Minimum auction bid amount, in dollars.
    </ResponseField>

    <ResponseField name="lenderName" type="string">
      Lender / beneficiary on the defaulted loan.
    </ResponseField>

    <ResponseField name="trusteeName" type="string">
      Trustee handling the foreclosure.
    </ResponseField>

    <ResponseField name="borrowerName" type="string">
      Borrower in default.
    </ResponseField>

    <ResponseField name="originalLoanAmount" type="float">
      Original amount of the defaulted loan, in dollars.
    </ResponseField>
  </Expandable>
</ResponseField>

## Histories, valuation model & extensions

<ResponseField name="appraisalHistory" type="array">
  Historical appraised values by year from county assessor records — one entry per appraisal year, with land, building, and total market components.

  <Expandable title="appraisal entry properties">
    <ResponseField name="appraisalYear" type="integer">
      Year of the appraisal. Example: 2024
    </ResponseField>

    <ResponseField name="appraisedBuildingValue" type="float">
      Appraised value of buildings/improvements for this year (also known as improvement value).
    </ResponseField>

    <ResponseField name="appraisedLandValue" type="float">
      Appraised value of land for this year.
    </ResponseField>

    <ResponseField name="appraisedMarketValue" type="float">
      Total appraised market value for this year.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="assessmentHistory" type="array">
  Historical assessed values by year from county assessor records — one entry per assessment year, with land, building, total, and market components.

  <Expandable title="assessment entry properties">
    <ResponseField name="assessmentYear" type="integer">
      Year of the assessment. Example: 2025
    </ResponseField>

    <ResponseField name="assessedBuildingValue" type="float">
      Assessed value of buildings/improvements for this year (also known as improvement value). Example: 479530
    </ResponseField>

    <ResponseField name="assessedLandValue" type="float">
      Assessed value of land for this year. Example: 704990
    </ResponseField>

    <ResponseField name="assessedTotalValue" type="float">
      Total assessed value for this year. Example: 1184520
    </ResponseField>

    <ResponseField name="assessedMarketValue" type="float">
      Market value recorded alongside the assessment for this year, where the county exposes both. Example: 1184520
    </ResponseField>

    <ResponseField name="marketValueYear" type="integer">
      Year the market value applies to, when distinct from `assessmentYear`. Example: 2025
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="permits" type="array">
  Building and construction permits associated with the property, sourced from the issuing jurisdiction's permit records.

  <Expandable title="permit entry properties">
    <ResponseField name="permitNumber" type="string">
      Permit number or ID assigned by the issuing authority.
    </ResponseField>

    <ResponseField name="jurisdiction" type="string">
      Authority that issued the permit (e.g. "City of Tampa", "Hillsborough County") — useful when permits cross municipal/county boundaries.
    </ResponseField>

    <ResponseField name="description" type="string">
      Short description of the permitted work.
    </ResponseField>

    <ResponseField name="issueDate" type="string">
      Date the permit was issued (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="estimatedValue" type="float">
      Estimated value of the permitted work as stated on the application.
    </ResponseField>

    <ResponseField name="permitType" type="string">
      Permit type (e.g., "Building", "Electrical", "Plumbing", "Mechanical").
    </ResponseField>

    <ResponseField name="permitStatus" type="string">
      Current status (e.g., "Issued", "Final", "Expired", "Void").
    </ResponseField>

    <ResponseField name="applicationDate" type="string">
      Date the permit application was submitted (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="finalDate" type="string">
      Date the permit received final inspection/approval (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="expirationDate" type="string">
      Date the permit expires (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="workDescription" type="string">
      Detailed description of the permitted work.
    </ResponseField>

    <ResponseField name="contractorName" type="string">
      Licensed contractor name.
    </ResponseField>

    <ResponseField name="contractorLicense" type="string">
      Contractor license number.
    </ResponseField>

    <ResponseField name="contractorAddress" type="string">
      Contractor business address.
    </ResponseField>

    <ResponseField name="contractorPhone" type="string">
      Contractor phone number.
    </ResponseField>

    <ResponseField name="valuation" type="float">
      Official valuation of the permitted work (may differ from the estimated value on the application).
    </ResponseField>

    <ResponseField name="squareFeet" type="float">
      Square footage affected by the permitted work.
    </ResponseField>

    <ResponseField name="stories" type="integer">
      Number of stories affected by the permitted work.
    </ResponseField>

    <ResponseField name="units" type="integer">
      Number of units affected by the permitted work.
    </ResponseField>

    <ResponseField name="inspectionStatus" type="string">
      Most recent inspection status (e.g., "Passed", "Failed", "Pending").
    </ResponseField>

    <ResponseField name="numberOfInspections" type="integer">
      Total number of inspections performed.
    </ResponseField>

    <ResponseField name="lastInspectionDate" type="string">
      Date of the most recent inspection (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="fees" type="float">
      Total permit fees charged in dollars.
    </ResponseField>

    <ResponseField name="notes" type="string">
      Additional notes or comments on the permit.
    </ResponseField>

    <ResponseField name="permitLink" type="string">
      URL to the permit record on the issuing jurisdiction's site.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="utilityRateInfo" type="object">
  Electricity utility and rate information for the property's service area.

  <Expandable title="utilityRateInfo properties">
    <ResponseField name="utilityName" type="string">
      Name of the electric utility serving this property.
    </ResponseField>

    <ResponseField name="eiaId" type="integer">
      EIA (U.S. Energy Information Administration) utility identifier.
    </ResponseField>

    <ResponseField name="rateSchedule" type="string">
      Rate schedule name or code.
    </ResponseField>

    <ResponseField name="ratePerKwh" type="float">
      Default/Tier 1 residential rate in \$/kWh.
    </ResponseField>

    <ResponseField name="fixedChargeMonthly" type="float">
      Monthly fixed service charge in dollars.
    </ResponseField>

    <ResponseField name="effectiveDate" type="string">
      Date the rate became effective (YYYY-MM-DD).
    </ResponseField>

    <ResponseField name="estimatedMonthlyKwh" type="float">
      Estimated monthly consumption in kWh, derived from building square footage and type.
    </ResponseField>

    <ResponseField name="estimatedMonthlyCost" type="float">
      Estimated monthly electricity cost (rate × estimated kWh + fixed charge).
    </ResponseField>

    <ResponseField name="source" type="string">
      Rate data source: "urdb" (Utility Rate Database) or "scraped".
    </ResponseField>

    <ResponseField name="utilityRateLink" type="string">
      URL where the rate data was sourced from.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="zoningInfo" type="object">
  The parcel's zoning designation with provenance — the record's one zoning surface. `matchMethod` says which of the two provenance tiers produced it.

  <Expandable title="zoningInfo properties">
    <ResponseField name="zoningCode" type="string">
      Zoning district code as issued by the zoning jurisdiction (e.g., "R-1", "B-2", "AG-1"). Jurisdiction-issued — interpret within `zoningJurisdiction`, not as a national vocabulary.
    </ResponseField>

    <ResponseField name="zoningDescription" type="string">
      Human-readable zoning description (e.g., "Single Family Residential").
    </ResponseField>

    <ResponseField name="zoningJurisdiction" type="string">
      Regulatory body that administers the zoning (e.g., "HAMMOND", "LAKE COUNTY").
    </ResponseField>

    <ResponseField name="zoningSource" type="string">
      Identifier of the dataset the zoning designation was sourced from (e.g., "IN\_LAKE\_HAMMOND").
    </ResponseField>

    <ResponseField name="matchMethod" type="string">
      How the designation was matched to the parcel: "assessor\_recorded" (baseline — the designation as recorded on the county assessor's own record for the parcel) or "gis\_point\_in\_polygon" (curated — the parcel's point located inside the zoning jurisdiction's GIS zoning layer). Example: "gis\_point\_in\_polygon"
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="additionalFeatures" type="object">
  Availability flags and links for supplementary property resources — building sketches, property card PDFs, photos, and GIS maps.

  <Expandable title="additionalFeatures properties">
    <ResponseField name="buildingSketchAvailable" type="boolean">
      Whether a building sketch/floor plan is available.
    </ResponseField>

    <ResponseField name="buildingSketchUrl" type="string">
      URL to the building sketch or floor plan document.
    </ResponseField>

    <ResponseField name="propertyCardPdfAvailable" type="boolean">
      Whether the assessor property card PDF is available for download.
    </ResponseField>

    <ResponseField name="parcelPhotos" type="string">
      URL or reference to parcel photo(s).
    </ResponseField>

    <ResponseField name="gisMapAvailable" type="boolean">
      Whether a GIS/parcel map is available.
    </ResponseField>

    <ResponseField name="gisMapUrl" type="string">
      URL to the GIS or parcel map viewer.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="externalLinks" type="object">
  URLs to external property resources hosted by the county or its mapping providers.

  <Expandable title="externalLinks properties">
    <ResponseField name="compSalesSearch" type="string">
      URL to the county's comparable sales search tool.
    </ResponseField>

    <ResponseField name="pictometryAerialPhotos" type="string">
      URL to the Pictometry/aerial photo viewer.
    </ResponseField>

    <ResponseField name="metroMaps" type="string">
      URL to the metro or county map viewer.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="miscellaneous" type="string">
  Catch-all for additional source data that does not fit the structured sections, serialized as a JSON string. Structure varies by county.
</ResponseField>

<ResponseField name="realieValuation" type="object">
  Realie's own automated valuation (AVM): two independent estimators that cross-check each other — a machine-learning estimate with universal coverage (`ml`) and a comparable-sales estimate where enough nearby comps exist (`comp`).

  <Expandable title="realieValuation properties">
    <ResponseField name="ml" type="object">
      Realie's machine-learning AVM estimate. Produced for essentially all valued parcels.

      <Expandable title="ml properties">
        <ResponseField name="value" type="float">
          Calibrated ML point estimate of market value, in dollars.
        </ResponseField>

        <ResponseField name="low" type="float">
          Lower bound of the estimate band (30th percentile), in dollars.
        </ResponseField>

        <ResponseField name="high" type="float">
          Upper bound of the estimate band (70th percentile), in dollars.
        </ResponseField>

        <ResponseField name="stdDev" type="float">
          Model ensemble disagreement, in dollars — larger values indicate a less certain estimate.
        </ResponseField>

        <ResponseField name="confidence" type="integer">
          Confidence tier from 0 to 100.
        </ResponseField>

        <ResponseField name="confidenceBucket" type="string">
          Confidence label: "very\_high", "high", "medium", "low", or "very\_low".
        </ResponseField>

        <ResponseField name="version" type="string">
          Model version identifier for the estimate. Example: "v3-noassessor-2026-06-13"
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="comp" type="object">
      Realie's comparable-sales estimate — K-nearest recent comparable sales, no ML. Absent where comparable sales are too sparse.

      <Expandable title="comp properties">
        <ResponseField name="value" type="float">
          Comparable-sales point estimate (median comparable \$/sqft × living area), in dollars.
        </ResponseField>

        <ResponseField name="low" type="float">
          Lower bound of the comp estimate band (25th percentile), in dollars.
        </ResponseField>

        <ResponseField name="high" type="float">
          Upper bound of the comp estimate band (75th percentile), in dollars.
        </ResponseField>

        <ResponseField name="ppsf" type="float">
          Median price per square foot across the comparable sales used.
        </ResponseField>

        <ResponseField name="count" type="integer">
          Number of comparable sales used in the estimate.
        </ResponseField>

        <ResponseField name="maxDistMi" type="float">
          Distance in miles to the farthest comparable used — a comp-density/confidence signal.
        </ResponseField>

        <ResponseField name="windowMo" type="integer">
          Trailing lookback window for comparable sales, in months.
        </ResponseField>

        <ResponseField name="version" type="string">
          Comp-model version identifier for the estimate. Example: "compval-knn10-2026-06-13"
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="date" type="string">
      Date the valuation was scored (YYYY-MM-DD) — the "estimated as of" date.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="legacyDebtEstimate" type="object">
  Modeled debt/equity analytics carried over from the legacy v2 pipeline. These are modeled estimates (open-lien rollups, current-LTV/equity models), not recorded facts — recorded mortgages and liens live in their own history arrays and are never derived from this object. Present only on parcels uniquely matched to a legacy v2 record. Excluded from API responses; available in bulk data only.

  <Expandable title="legacyDebtEstimate properties">
    <ResponseField name="lienCount" type="integer">
      Modeled count of open liens against the parcel. Example: 2
    </ResponseField>

    <ResponseField name="lienBalance" type="float">
      Modeled total open lien balance in dollars. Example: 4377540
    </ResponseField>

    <ResponseField name="financingCount" type="integer">
      Count of financing events in the legacy analytics model. Example: 8
    </ResponseField>

    <ResponseField name="ltvCurrentEst" type="float">
      Estimated current combined loan-to-value ratio, as a percentage. Example: 311.5685
    </ResponseField>

    <ResponseField name="ltvCurrentEstRange" type="integer">
      Band index for the modeled current LTV — an ordered integer bucket, not a percentage and not an uncertainty spread. Band boundaries are not published; treat as ordered buckets. Example: 14
    </ResponseField>

    <ResponseField name="equityCurrentEst" type="float">
      Estimated current owner equity in dollars (negative when modeled debt exceeds modeled value). Example: -2972539
    </ResponseField>

    <ResponseField name="equityCurrentEstRange" type="integer">
      Band index for the modeled current equity — an ordered integer bucket over dollar ranges, not a dollar amount. Band boundaries are not published; treat as ordered buckets. Example: 65
    </ResponseField>

    <ResponseField name="ltvPurchase" type="float">
      Loan-to-value ratio at purchase, as a percentage. Example: 75
    </ResponseField>

    <ResponseField name="lenderName" type="string">
      Most recent lender name in the legacy debt model. Example: "CENTER STREET LENDING CORPORATION"
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="legacyOwnershipSummary" type="object">
  Ownership-tenure analytics carried over from the legacy v2 pipeline. Keyed to the v2-era owner of record and may lag the current owner in `propertyIdentification.currentOwner`. Present only on parcels uniquely matched to a legacy v2 record. Excluded from API responses; available in bulk data only.

  <Expandable title="legacyOwnershipSummary properties">
    <ResponseField name="ownershipStartDate" type="string">
      Date the (v2-era) current ownership began (YYYYMMDD). Example: "20191217"
    </ResponseField>

    <ResponseField name="lengthOfResidenceMonths" type="integer">
      Owner tenure at the property in months. Example: 72
    </ResponseField>

    <ResponseField name="lengthOfResidenceCode" type="integer">
      Owner-tenure band — an integer band index 1–8; higher bands mean longer tenure. Band boundaries are not published; prefer `lengthOfResidenceMonths` when present. Example: 4
    </ResponseField>

    <ResponseField name="ownerParcelCount" type="integer">
      Number of parcels held by the same owner, per the legacy owner match. Example: 12
    </ResponseField>

    <ResponseField name="ownerResCount" type="integer">
      Residential parcels held by the same owner. Example: 10
    </ResponseField>

    <ResponseField name="ownerComCount" type="integer">
      Commercial parcels held by the same owner. Example: 2
    </ResponseField>
  </Expandable>
</ResponseField>
