API access
Your AI client reaches FHFA State House Price Index through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.
Where it came from
Freshness and coverage
What this source cannot tell you
- ⚠ Anything outside 50 US states and the District of Columbia as published by FHFA and About 409 metro areas and metropolitan divisions (CBSAs) as published by FHFA. A request past that edge comes back empty rather than approximated.
- ⚠ Which years it spans, because the covered period is not declared.
- ⚠ Anything FHFA House Price Index® does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
- ⚠ The index measures relative average single-family price change, not dollar prices or parcel values.
- ⚠ The all-transactions state series uses sales-price and appraisal data and is not seasonally adjusted.
- ⚠ State indexes are normalized to 100 in 1980 Q1 and matter relative to other periods.
- ⚠ Metro indexes are normalized to 100 in 1995 Q1, so two metros at the same index level have risen the same amount since 1995 Q1, not to the same price.
- ⚠ The metro standard error published alongside each index describes the precision of that estimate; it is not an annual percent change.
- ⚠ Conforming loan limits are financing-program thresholds, not property values, loan approvals, or a statement that a transaction is eligible.
Methods (5)
A method is one call your agent can make against this source.
getStateHousePriceIndex
readGet recent quarterly FHFA all-transactions HPI values for one state or DC.
What you must providestateAlphaRecords returnedstate-house-price-index-seriesHow to get more resultsnoneFreshnessScheduled (source-level)Input schema
{ "type": "object", "properties": { "stateAlpha": { "type": "string", "pattern": "^[A-Za-z]{2}$" }, "startYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "endYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "limit": { "type": "integer", "minimum": 1, "maximum": 220 } }, "required": [ "stateAlpha" ], "additionalProperties": false }- ⚠ Relative state single-family market index only; not an appraisal, AVM, rent, comparable sale, or parcel value.
getMetroHousePriceIndex
readGet recent quarterly home price index values for one metro area, by name or CBSA code.
Records returnedmetro-house-price-index-seriesHow to get more resultsnoneFreshnessScheduled (source-level)Input schema
{ "type": "object", "properties": { "metro": { "type": "string", "minLength": 2, "maxLength": 120, "description": "Metro area as people say it: \"houston\", \"dallas\", \"waco tx\". A name shared by several metros (\"springfield\") returns the candidates instead of guessing." }, "cbsaCode": { "type": "string", "pattern": "^\\d{5}$" }, "startYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "endYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "limit": { "type": "integer", "minimum": 1, "maximum": 220 } }, "required": [], "additionalProperties": false }- ⚠ Relative metro single-family market index only; not an appraisal, AVM, rent, comparable sale, or parcel value.
- ⚠ Not seasonally adjusted and set to 100 in 1995 Q1, so index levels compare growth since 1995 Q1, not price levels.
- ⚠ The published standard error describes the precision of the index estimate; it is not an annual percent change.
compareMetroHousePriceIndexes
readCompare quarterly home price trends across 2 to 6 metro areas in one call.
What you must providemetrosRecords returnedmetro-house-price-index-seriesHow to get more resultsnoneFreshnessScheduled (source-level)Input schema
{ "type": "object", "properties": { "metros": { "type": "array", "minItems": 2, "maxItems": 6, "items": { "type": "string", "minLength": 2, "maxLength": 120 }, "description": "Metro names or five-digit CBSA codes, for example [\"houston\",\"dallas\"]." }, "startYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "endYear": { "type": "integer", "minimum": 1975, "maximum": 2100 }, "limit": { "type": "integer", "minimum": 1, "maximum": 220 } }, "required": [ "metros" ], "additionalProperties": false }- ⚠ Metro indexes share a 1995 Q1 = 100 base, so a higher index means more growth since 1995 Q1, not a higher home price.
- ⚠ Compare the newest quarter the metros share; a newer quarter for one metro alone is not a comparison.
getCountyConformingLoanLimits
readGet the official pinned 2026 one- through four-unit conforming loan limits for one county FIPS.
What you must providecountyFipsRecords returnedcounty-conforming-loan-limitHow to get more resultsnoneUnitsoneUnitLimit: USD · twoUnitLimit: USD · threeUnitLimit: USD · fourUnitLimit: USDFreshnessScheduled (source-level)Input schema
{ "type": "object", "properties": { "countyFips": { "type": "string", "pattern": "^\\d{5}$" }, "year": { "type": "integer", "enum": [ 2026 ] } }, "required": [ "countyFips" ], "additionalProperties": false }- ⚠ Limits are program thresholds, not an appraisal, approval, offer, or property-level lending decision.
getServiceInfo
readReturn the exact state and metro files, series definitions, normalization, citation, and limits.
FreshnessScheduled (source-level)Input schema
{ "type": "object", "properties": {}, "required": [], "additionalProperties": false }
Where this source is used
- Land research
Parcel records, ground conditions, and what reaches the property line, for raw and rural land.
- Data center siting
Power, water, transport, airspace, and hazard screening for a site before anyone signs anything.
- Commercial real estate
Parcel and assessment records, building programs, and the entity on the other side of the deal.
- Residential real estate
The parcel record, the housing programs that touch an address, and the conditions a buyer asks about.
- Real estate law
Federal rule text, rulemaking dockets, party records, and the property facts a filing has to state.
- Realtors and brokerages
The facts behind a listing, the programs a buyer may qualify for, and your own files in the same place.
