propraven-com · Schema

Parcel

Real EstateDataProperty IntelligenceAPIUS

Properties

Name Type Description
id string PropRaven parcel UUID. Accepted by GET /parcels/{id}.
county_fips string 3-digit within-state county FIPS code (the 5-digit form is `state_fips` + `county_fips`).
state_fips string 2-digit state FIPS code.
parcel_id string County-assigned parcel identifier (APN as the county publishes it). The canonical id is `state_fips:county_fips:parcel_id`.
address stringnull
normalized_address stringnull
city stringnull
state stringnull USPS 2-letter state code of `state_fips` ("37" → "NC"). Always a string; the 2-digit FIPS is `state_fips`.
zip stringnull
zip5 stringnull
zip_plus4 stringnull
latitude numbernull
longitude numbernull
land_use_code stringnull
land_use_desc stringnull
total_assessed_value numbernull
land_assessed_value numbernull
improvement_assessed_value numbernull
last_sale_price numbernull Price of the last sale. From the parcel record; where null, filled from the same county-recorder deed that supplies `last_sale_date` (`last_sale_price_basis: county_recorder_deeds`). A nominal conside
last_sale_date stringnull Date of the last sale. From the parcel record; where the record's date is null or withheld (e.g. a county collection stamp, `site_gate`), filled from the latest arm's-length transfer in the county rec
market_value numbernull County market value: the market (just / full cash / appraised) value on the county assessor's record, or null when the record carries none. Never PropRaven's model output: a stored value that is the s
avm_value numbernull PropRaven estimate: PropRaven's own automated valuation (a model output — see `avm_method`, `avm_method_family`, `avm_method_basis`). Not the county's value and not a licensed appraisal. Display it as
avm_confidence stringnull
avm_method stringnull
tax_amount numbernull
tax_year integernull
deal_score numbernull Composite deal opportunity score from 0 to 100.
price_per_sqft numbernull
comp_sale_price numbernull
comp_sale_date stringnull
comp_similarity_score numbernull
estimated_monthly_rent numbernull
estimated_annual_rent numbernull
rent_yield_pct numbernull
rental_confidence stringnull
gross_rent_multiplier numbernull
land_improvement_ratio numbernull
improvement_to_land_ratio numbernull
is_redevelopment_candidate booleannull
building_sqft numbernull
year_built integernull
lot_size_acres numbernull
lot_size_sqft numbernull
bedrooms integernull
bathrooms numbernull
stories numbernull
units integernull
unit_count integernull
construction_type stringnull
owner_name stringnull
owner_address stringnull Owner's mailing street line. Read from whichever mailing column family the record fills (owner_address/… or owner_mailing_/…), one family per parcel — the same rule as GET /api/v1/parcels/{id}/owner.
owner_city stringnull Owner's mailing city, from the same family as `owner_address`.
owner_state stringnull Owner's mailing state, from the same family as `owner_address`.
owner_zip stringnull Owner's mailing ZIP, from the same family as `owner_address`.
ownership_type stringnull
owner_entity_type stringnull
entity_type stringnull
is_entity_owned booleannull
is_absentee booleannull
is_pe_aggregator booleannull
owner_occupied_flag booleannull
owner_occupied_flag_basis string How the served owner_occupied_flag was derived (one rule with is_absentee, so the row never says both absentee and owner-occupied): `recomputed_from_row` = from this record's own mailing address versu
data_quality_score numbernull
flood_zone stringnull
is_sfha booleannull
is_opportunity_zone booleannull
is_justice40 booleannull
is_flip booleannull
deed_count integernull
permit_count integernull
permit_count_12mo integernull
zoning stringnull
county_name stringnull
property_type stringnull
_guards array
is_flip_basis string
land_improvement_ratio_stored numbernull
land_improvement_ratio_basis string
improvement_to_land_ratio_basis string
is_absentee_basis string
owner_state_norm stringnull
is_out_of_state booleannull
identity_gate object
site_gate object
derived_gate object
rent_gate object
county_name_basis string
avm_method_family stringnull
avm_method_basis string
is_flip_dominant_share_pct numbernull
price_per_sqft_basis string What price_per_sqft divides by building_sqft, read from the row (#557): `market_value` (county market value), `avm_value` (PropRaven estimate), `total_assessed_value`, `last_sale_price`, `unreproduced
market_value_basis string What `market_value` is: `county_record` (the record's market-value column as the county source published it), `propraven_estimate` (the stored value was PropRaven's own estimate, so `market_value` is
market_value_note string Present when `market_value` was withheld because it was PropRaven's estimate, not the county's value.
value_labels object The display label for each value field: `market_value` → "County market value", `avm_value` → "PropRaven estimate".
last_sale_date_basis string Why `last_sale_date` holds what it does: `county_recorder_deeds` when filled from the deeds, or the site gate's reason when the record's own date was withheld (e.g. `sale_date_modal_collection_stamp`)
last_sale_date_raw stringnull The record's own last-sale date when the site gate withheld it (evidence, not a sale date).
last_sale_price_basis string `county_recorder_deeds` when `last_sale_price` was filled from the deeds; `nominal_consideration_not_a_price` / `not_recorded_on_deed` when the date was filled but the deed carries no market price; `m
last_sale_source string Present when a last-sale field was filled from deeds: "County recorder (deeds)".
last_sale_transfer_total number Present with `last_sale_price_basis: multi_parcel_unallocated`: the total consideration recorded on the last sale's deed, for every parcel it conveys, as the county recorded it. Not this parcel's pric
last_sale_transfer_basis string What `last_sale_transfer_total` is: `multi_parcel_unallocated` = one price for several parcels, not split by the county. Read from the deed's own fields: the sale type names a multi-parcel conveyance,
last_sale_transfer_parcel_count integernull How many parcels the multi-parcel deed conveys. Null today: no column of the served deed row carries the count (`last_sale_transfer_parcel_count_basis`).
last_sale_transfer_parcel_count_basis string Why `last_sale_transfer_parcel_count` is null: `not_on_served_deed_row`.
mailing_family_basis string Present when the owner mailing fields were read from the `owner_mailing_*` column family because the `owner_address` family is not mail-ready: `owner_mailing`.
assessed_value_parts_check object Whether land_assessed_value + improvement_assessed_value equals total_assessed_value within 1 % (floor $1). The three values are served as recorded either way (#557).
price_per_sqft_note string The formula behind price_per_sqft_basis, in words.
entity_type_raw stringnull The name-pattern entity_type when it was reconciled to owner_entity_type for a government owner (#557).
entity_type_basis string `reconciled_to_owner_entity_type` when entity_type was overridden.
entity_type_note string
land_use_code_raw stringnull The stored land_use_code when the code/description pair was swapped at source and served swapped back.
land_use_desc_raw stringnull The stored land_use_desc when it was a code (withheld) or part of a swapped pair.
land_use_basis string `swapped_at_source`: land_use_code and land_use_desc were stored in each other's fields.
land_use_desc_basis string `code_not_description`: the source's description field holds a code (e.g. DC tax class, a second NY property-class code); withheld, kept as land_use_desc_raw.
land_use_desc_note string
last_sale_price_raw number The stored sale price when it is a sentinel ($0 / $1 / $100) served as null.
last_sale_price_flag string
is_redevelopment_candidate_raw booleanstringnull The stored flag when it was served false for a government-owned parcel.
is_redevelopment_candidate_basis string `government_owner`: a government-owned parcel is not a redevelopment candidate.
View JSON Schema on GitHub

JSON Schema

propraven-com-parcel-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/propraven-com/json-schema/propraven-com-parcel-schema.json",
  "title": "Parcel",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/propraven-com-openapi.json#/components/schemas/Parcel",
  "type": "object",
  "required": [
    "id",
    "county_fips",
    "state_fips",
    "parcel_id",
    "address",
    "normalized_address",
    "city",
    "state",
    "zip",
    "zip5",
    "zip_plus4",
    "latitude",
    "longitude",
    "land_use_code",
    "land_use_desc",
    "total_assessed_value",
    "land_assessed_value",
    "improvement_assessed_value",
    "last_sale_price",
    "last_sale_date",
    "market_value",
    "avm_value",
    "avm_confidence",
    "avm_method",
    "tax_amount",
    "tax_year",
    "deal_score",
    "price_per_sqft",
    "comp_sale_price",
    "comp_sale_date",
    "comp_similarity_score",
    "estimated_monthly_rent",
    "estimated_annual_rent",
    "rent_yield_pct",
    "rental_confidence",
    "gross_rent_multiplier",
    "land_improvement_ratio",
    "improvement_to_land_ratio",
    "is_redevelopment_candidate",
    "building_sqft",
    "year_built",
    "lot_size_acres",
    "lot_size_sqft",
    "bedrooms",
    "bathrooms",
    "stories",
    "units",
    "unit_count",
    "construction_type",
    "owner_name",
    "owner_address",
    "owner_city",
    "owner_state",
    "owner_zip",
    "ownership_type",
    "owner_entity_type",
    "entity_type",
    "is_entity_owned",
    "is_absentee",
    "is_pe_aggregator",
    "owner_occupied_flag",
    "data_quality_score",
    "flood_zone",
    "is_sfha",
    "is_opportunity_zone",
    "is_justice40",
    "is_flip",
    "deed_count",
    "permit_count",
    "permit_count_12mo",
    "zoning",
    "county_name",
    "property_type",
    "_guards",
    "is_flip_basis",
    "land_improvement_ratio_stored",
    "land_improvement_ratio_basis",
    "improvement_to_land_ratio_basis",
    "is_absentee_basis",
    "owner_state_norm",
    "is_out_of_state",
    "identity_gate",
    "site_gate",
    "derived_gate",
    "rent_gate",
    "county_name_basis",
    "avm_method_family",
    "avm_method_basis"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "PropRaven parcel UUID. Accepted by GET /parcels/{id}."
    },
    "county_fips": {
      "type": "string",
      "description": "3-digit within-state county FIPS code (the 5-digit form is `state_fips` + `county_fips`)."
    },
    "state_fips": {
      "type": "string",
      "description": "2-digit state FIPS code."
    },
    "parcel_id": {
      "type": "string",
      "description": "County-assigned parcel identifier (APN as the county publishes it). The canonical id is `state_fips:county_fips:parcel_id`."
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "normalized_address": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": [
        "string",
        "null"
      ]
    },
    "state": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[A-Z]{2}$",
      "description": "USPS 2-letter state code of `state_fips` (\"37\" → \"NC\"). Always a string; the 2-digit FIPS is `state_fips`."
    },
    "zip": {
      "type": [
        "string",
        "null"
      ]
    },
    "zip5": {
      "type": [
        "string",
        "null"
      ]
    },
    "zip_plus4": {
      "type": [
        "string",
        "null"
      ]
    },
    "latitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "longitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "land_use_code": {
      "type": [
        "string",
        "null"
      ]
    },
    "land_use_desc": {
      "type": [
        "string",
        "null"
      ]
    },
    "total_assessed_value": {
      "type": [
        "number",
        "null"
      ]
    },
    "land_assessed_value": {
      "type": [
        "number",
        "null"
      ]
    },
    "improvement_assessed_value": {
      "type": [
        "number",
        "null"
      ]
    },
    "last_sale_price": {
      "type": [
        "number",
        "null"
      ],
      "description": "Price of the last sale. From the parcel record; where null, filled from the same county-recorder deed that supplies `last_sale_date` (`last_sale_price_basis: county_recorder_deeds`). A nominal consideration (≤ $1,000) is never served as a price. A multi-parcel deed's consideration is the whole bundle's, so it is never served as this parcel's price, whatever the county's arm's-length verdict: the price stays null with `last_sale_price_basis: multi_parcel_unallocated` and the bundle is served as `last_sale_transfer_total`. A sentinel price ($0, $1 or $100) is served as null with `last_sale_price_raw` and `last_sale_price_flag: sentinel_value` (#557)."
    },
    "last_sale_date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Date of the last sale. From the parcel record; where the record's date is null or withheld (e.g. a county collection stamp, `site_gate`), filled from the latest arm's-length transfer in the county recorder's per-deed rows (`last_sale_date_basis: county_recorder_deeds`, `last_sale_source: \"County recorder (deeds)\"`)."
    },
    "market_value": {
      "type": [
        "number",
        "null"
      ],
      "description": "County market value: the market (just / full cash / appraised) value on the county assessor's record, or null when the record carries none. Never PropRaven's model output: a stored value that is the same figure as `avm_value` (and not the county's own assessed value) is withheld here and `market_value_basis` says so. PropRaven's model is `avm_value` (\"PropRaven estimate\")."
    },
    "avm_value": {
      "type": [
        "number",
        "null"
      ],
      "description": "PropRaven estimate: PropRaven's own automated valuation (a model output — see `avm_method`, `avm_method_family`, `avm_method_basis`). Not the county's value and not a licensed appraisal. Display it as \"PropRaven estimate\", never as \"market value\"."
    },
    "avm_confidence": {
      "type": [
        "string",
        "null"
      ]
    },
    "avm_method": {
      "type": [
        "string",
        "null"
      ]
    },
    "tax_amount": {
      "type": [
        "number",
        "null"
      ]
    },
    "tax_year": {
      "type": [
        "integer",
        "null"
      ]
    },
    "deal_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "Composite deal opportunity score from 0 to 100."
    },
    "price_per_sqft": {
      "type": [
        "number",
        "null"
      ]
    },
    "comp_sale_price": {
      "type": [
        "number",
        "null"
      ]
    },
    "comp_sale_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "comp_similarity_score": {
      "type": [
        "number",
        "null"
      ]
    },
    "estimated_monthly_rent": {
      "type": [
        "number",
        "null"
      ]
    },
    "estimated_annual_rent": {
      "type": [
        "number",
        "null"
      ]
    },
    "rent_yield_pct": {
      "type": [
        "number",
        "null"
      ]
    },
    "rental_confidence": {
      "type": [
        "string",
        "null"
      ]
    },
    "gross_rent_multiplier": {
      "type": [
        "number",
        "null"
      ]
    },
    "land_improvement_ratio": {
      "type": [
        "number",
        "null"
      ]
    },
    "improvement_to_land_ratio": {
      "type": [
        "number",
        "null"
      ]
    },
    "is_redevelopment_candidate": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "building_sqft": {
      "type": [
        "number",
        "null"
      ]
    },
    "year_built": {
      "type": [
        "integer",
        "null"
      ]
    },
    "lot_size_acres": {
      "type": [
        "number",
        "null"
      ]
    },
    "lot_size_sqft": {
      "type": [
        "number",
        "null"
      ]
    },
    "bedrooms": {
      "type": [
        "integer",
        "null"
      ]
    },
    "bathrooms": {
      "type": [
        "number",
        "null"
      ]
    },
    "stories": {
      "type": [
        "number",
        "null"
      ]
    },
    "units": {
      "type": [
        "integer",
        "null"
      ]
    },
    "unit_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "construction_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "owner_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "owner_address": {
      "type": [
        "string",
        "null"
      ],
      "description": "Owner's mailing street line. Read from whichever mailing column family the record fills (owner_address/… or owner_mailing_/…), one family per parcel — the same rule as GET /api/v1/parcels/{id}/owner. People data: requires an account; metered and logged (see `owner_mailing_fields`)."
    },
    "owner_city": {
      "type": [
        "string",
        "null"
      ],
      "description": "Owner's mailing city, from the same family as `owner_address`."
    },
    "owner_state": {
      "type": [
        "string",
        "null"
      ],
      "description": "Owner's mailing state, from the same family as `owner_address`."
    },
    "owner_zip": {
      "type": [
        "string",
        "null"
      ],
      "description": "Owner's mailing ZIP, from the same family as `owner_address`."
    },
    "ownership_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "owner_entity_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "entity_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_entity_owned": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "is_absentee": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "is_pe_aggregator": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "owner_occupied_flag": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "owner_occupied_flag_basis": {
      "type": "string",
      "description": "How the served owner_occupied_flag was derived (one rule with is_absentee, so the row never says both absentee and owner-occupied): `recomputed_from_row` = from this record's own mailing address versus its situs; `input_missing` = the record lacks those inputs and owner_occupied_flag is null. Present whenever owner_occupied_flag is served and the derivation ran."
    },
    "data_quality_score": {
      "type": [
        "number",
        "null"
      ]
    },
    "flood_zone": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_sfha": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "is_opportunity_zone": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "is_justice40": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "is_flip": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "deed_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "permit_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "permit_count_12mo": {
      "type": [
        "integer",
        "null"
      ]
    },
    "zoning": {
      "type": [
        "string",
        "null"
      ]
    },
    "county_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "property_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "_guards": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "is_flip_basis": {
      "type": "string"
    },
    "land_improvement_ratio_stored": {
      "type": [
        "number",
        "null"
      ]
    },
    "land_improvement_ratio_basis": {
      "type": "string"
    },
    "improvement_to_land_ratio_basis": {
      "type": "string"
    },
    "is_absentee_basis": {
      "type": "string"
    },
    "owner_state_norm": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_out_of_state": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "identity_gate": {
      "type": "object",
      "required": [
        "applied",
        "suppressed",
        "reason",
        "join_key_basis",
        "twins_in_other_counties",
        "coords_basis",
        "unmeasured",
        "served_under_doubt",
        "note"
      ],
      "properties": {
        "applied": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "suppressed": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        },
        "join_key_basis": {
          "type": "string"
        },
        "twins_in_other_counties": {
          "type": [
            "integer",
            "null"
          ]
        },
        "coords_basis": {
          "type": "string"
        },
        "unmeasured": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "served_under_doubt": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "site_gate": {
      "type": "object",
      "required": [
        "applied",
        "suppressed",
        "reason",
        "labelled",
        "mailing_basis",
        "note"
      ],
      "properties": {
        "applied": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "suppressed": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        },
        "labelled": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "mailing_basis": {
          "type": "string"
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "derived_gate": {
      "type": "object",
      "required": [
        "applied",
        "suppressed",
        "recomputed",
        "unevaluated",
        "reason",
        "note"
      ],
      "properties": {
        "applied": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "suppressed": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "recomputed": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "unevaluated": {
          "type": "array"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "rent_gate": {
      "type": "object",
      "required": [
        "applied",
        "suppressed",
        "reason",
        "rental_confidence",
        "note"
      ],
      "properties": {
        "applied": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "suppressed": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        },
        "rental_confidence": {
          "type": [
            "string",
            "null"
          ]
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "county_name_basis": {
      "type": "string"
    },
    "avm_method_family": {
      "type": [
        "string",
        "null"
      ]
    },
    "avm_method_basis": {
      "type": "string"
    },
    "is_flip_dominant_share_pct": {
      "type": [
        "number",
        "null"
      ]
    },
    "price_per_sqft_basis": {
      "type": "string",
      "description": "What price_per_sqft divides by building_sqft, read from the row (#557): `market_value` (county market value), `avm_value` (PropRaven estimate), `total_assessed_value`, `last_sale_price`, `unreproduced` (no served value reproduces it), or `input_missing` (no building_sqft; the ratio is withheld)."
    },
    "market_value_basis": {
      "type": "string",
      "enum": [
        "county_record",
        "propraven_estimate",
        "unavailable"
      ],
      "description": "What `market_value` is: `county_record` (the record's market-value column as the county source published it), `propraven_estimate` (the stored value was PropRaven's own estimate, so `market_value` is null; the estimate is in `avm_value`), or `unavailable`."
    },
    "market_value_note": {
      "type": "string",
      "description": "Present when `market_value` was withheld because it was PropRaven's estimate, not the county's value."
    },
    "value_labels": {
      "type": "object",
      "properties": {
        "market_value": {
          "type": "string",
          "const": "County market value"
        },
        "avm_value": {
          "type": "string",
          "const": "PropRaven estimate"
        }
      },
      "required": [
        "market_value",
        "avm_value"
      ],
      "additionalProperties": false,
      "description": "The display label for each value field: `market_value` → \"County market value\", `avm_value` → \"PropRaven estimate\"."
    },
    "last_sale_date_basis": {
      "type": "string",
      "description": "Why `last_sale_date` holds what it does: `county_recorder_deeds` when filled from the deeds, or the site gate's reason when the record's own date was withheld (e.g. `sale_date_modal_collection_stamp`)."
    },
    "last_sale_date_raw": {
      "type": [
        "string",
        "null"
      ],
      "description": "The record's own last-sale date when the site gate withheld it (evidence, not a sale date)."
    },
    "last_sale_price_basis": {
      "type": "string",
      "description": "`county_recorder_deeds` when `last_sale_price` was filled from the deeds; `nominal_consideration_not_a_price` / `not_recorded_on_deed` when the date was filled but the deed carries no market price; `multi_parcel_unallocated` when the last sale's deed conveys more than this parcel for one price and the county did not split it (the price is null; the bundle is `last_sale_transfer_total`)."
    },
    "last_sale_source": {
      "type": "string",
      "const": "County recorder (deeds)",
      "description": "Present when a last-sale field was filled from deeds: \"County recorder (deeds)\"."
    },
    "last_sale_transfer_total": {
      "type": "number",
      "description": "Present with `last_sale_price_basis: multi_parcel_unallocated`: the total consideration recorded on the last sale's deed, for every parcel it conveys, as the county recorded it. Not this parcel's price and not apportioned (a five-parcel $10M deed is $10M here on each of the five parcels)."
    },
    "last_sale_transfer_basis": {
      "type": "string",
      "enum": [
        "multi_parcel_unallocated"
      ],
      "description": "What `last_sale_transfer_total` is: `multi_parcel_unallocated` = one price for several parcels, not split by the county. Read from the deed's own fields: the sale type names a multi-parcel conveyance, or the deed carries no per-parcel `sale_price` beside a market consideration."
    },
    "last_sale_transfer_parcel_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "How many parcels the multi-parcel deed conveys. Null today: no column of the served deed row carries the count (`last_sale_transfer_parcel_count_basis`)."
    },
    "last_sale_transfer_parcel_count_basis": {
      "type": "string",
      "enum": [
        "not_on_served_deed_row"
      ],
      "description": "Why `last_sale_transfer_parcel_count` is null: `not_on_served_deed_row`."
    },
    "mailing_family_basis": {
      "type": "string",
      "enum": [
        "owner_mailing"
      ],
      "description": "Present when the owner mailing fields were read from the `owner_mailing_*` column family because the `owner_address` family is not mail-ready: `owner_mailing`."
    },
    "assessed_value_parts_check": {
      "type": "object",
      "required": [
        "status",
        "land_plus_improvement",
        "total_assessed_value",
        "difference",
        "difference_pct",
        "tolerance_pct"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "within_tolerance",
            "parts_do_not_sum"
          ]
        },
        "land_plus_improvement": {
          "type": "number"
        },
        "total_assessed_value": {
          "type": "number"
        },
        "difference": {
          "type": "number"
        },
        "difference_pct": {
          "type": [
            "number",
            "null"
          ]
        },
        "tolerance_pct": {
          "type": "number"
        },
        "note": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "description": "Whether land_assessed_value + improvement_assessed_value equals total_assessed_value within 1 % (floor $1). The three values are served as recorded either way (#557)."
    },
    "price_per_sqft_note": {
      "type": "string",
      "description": "The formula behind price_per_sqft_basis, in words."
    },
    "entity_type_raw": {
      "type": [
        "string",
        "null"
      ],
      "description": "The name-pattern entity_type when it was reconciled to owner_entity_type for a government owner (#557)."
    },
    "entity_type_basis": {
      "type": "string",
      "description": "`reconciled_to_owner_entity_type` when entity_type was overridden."
    },
    "entity_type_note": {
      "type": "string"
    },
    "land_use_code_raw": {
      "type": [
        "string",
        "null"
      ],
      "description": "The stored land_use_code when the code/description pair was swapped at source and served swapped back."
    },
    "land_use_desc_raw": {
      "type": [
        "string",
        "null"
      ],
      "description": "The stored land_use_desc when it was a code (withheld) or part of a swapped pair."
    },
    "land_use_basis": {
      "type": "string",
      "description": "`swapped_at_source`: land_use_code and land_use_desc were stored in each other's fields."
    },
    "land_use_desc_basis": {
      "type": "string",
      "description": "`code_not_description`: the source's description field holds a code (e.g. DC tax class, a second NY property-class code); withheld, kept as land_use_desc_raw."
    },
    "land_use_desc_note": {
      "type": "string"
    },
    "last_sale_price_raw": {
      "type": "number",
      "description": "The stored sale price when it is a sentinel ($0 / $1 / $100) served as null."
    },
    "last_sale_price_flag": {
      "type": "string",
      "enum": [
        "sentinel_value"
      ]
    },
    "is_redevelopment_candidate_raw": {
      "type": [
        "boolean",
        "string",
        "null"
      ],
      "description": "The stored flag when it was served false for a government-owned parcel."
    },
    "is_redevelopment_candidate_basis": {
      "type": "string",
      "description": "`government_owner`: a government-owned parcel is not a redevelopment candidate."
    }
  },
  "additionalProperties": false
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/propraven-com-parcel"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.