FHFA House Price Index platform100 trial credits · No credit card required

FHFA House Price Index Read a named source market series API

Fetch fresh official FHFA quarterly Purchase-Only state HPI for this account’s retained market ID. series=purchase_only_sa or purchase_only_nsa; unit index_1991_q1_100. Optional inclusive from/to must be quarter-start dates (YYYY-01/04/07/10-01), 1991 onward. Periods are quarter-start dates. Costs 50 credits per successful dataset request; no results in range returns404 with zero credits. Published history is revised and release-lagged. Includes source methodology, attribution and low-sample warning where provided. Not median price, property valuation, rents, comparables or property transaction history. Selectors expire after24h; existing7-day idempotency replay remains a prior response snapshot. Get structured JSON through one RealtyCrawl API key.

Use this account’s unexpired market_id returned by market discovery. Put the required series and optional quarter-start date bounds in the query string. Check live capabilities for accepted inputs and availability before running your request.

FHFA House Price Index API

What can you do with the Read a named source market series API?

Fetch fresh official FHFA quarterly Purchase-Only state HPI for this account’s retained market ID. series=purchase_only_sa or purchase_only_nsa; unit index_1991_q1_100. Optional inclusive from/to must be quarter-start dates (YYYY-01/04/07/10-01), 1991 onward. Periods are quarter-start dates. Costs 50 credits per successful dataset request; no results in range returns404 with zero credits. Published history is revised and release-lagged. Includes source methodology, attribution and low-sample warning where provided. Not median price, property valuation, rents, comparables or property transaction history. Selectors expire after24h; existing7-day idempotency replay remains a prior response snapshot.

Example request

curl --request GET 'https://realtycrawl.dev/v1/markets/mkt_fhfa_state_CA/series?series=purchase_only_sa' \
  --header "x-api-key: $REALTYCRAWL_API_KEY" \
  --header 'X-Max-Credits: 50'

Parameters

Parameters for FHFA House Price Index Read a named source market series API
ParameterRequiredDescription
market_idYesmarket_id
seriesYesseries
fromNofrom
toNoto

Use this account’s unexpired market_id returned by market discovery. Put the required series and optional quarter-start date bounds in the query string.

Example response

What does the FHFA House Price Index Read a named source market series API return?

The response includes a market series object in data, plus source outcomes and request metadata. Explore the structure below before making a call.

Illustrative response
{
  "data": {
    "market_id": "mkt_fhfa_state_CA",
    "series": "purchase_only_sa",
    "unit": "index_1991_q1_100",
    "frequency": "quarterly",
    "methodology": "Illustrative contract only. Source: FHFA House Price Index®.",
    "points": [
      {
        "period": "1991-01-01",
        "value": 100
      }
    ],
    "source": {
      "platform": "fhfa",
      "native_id": "CA",
      "provider": "example",
      "observed_at": "2026-01-01T12:00:00Z",
      "access_class": "modeled"
    }
  },
  "meta": {
    "request_id": "example_request",
    "schema_version": "1.0.0",
    "generated_at": "2026-01-01T12:00:00Z",
    "completeness": "unknown",
    "sources": []
  }
}

Schema example with placeholder values; not a live source result. Actual fields, values, and completeness vary by source and request.

API details

How does the FHFA House Price Index Read a named source market series API work?

Send a GET request with your API key and accepted inputs. RealtyCrawl returns structured JSON and preserves the source context for your application.

Method

GET

Response

JSON

GET /v1/markets/{market_id}/series
Why RealtyCrawl

Why use RealtyCrawl for FHFA House Price Index quarterly index series?

Keep source collection behind a shared interface so you can focus on the product you’re building.

Developer first

How do you bring real estate data into your app?

Use familiar HTTP requests, inspect a common schema, and connect the results to the tools your team already uses.

One key, many sources

Use the same credential across supported operations and check capabilities for each source.

Property data with context

Keep base periods, seasonal adjustment, source attribution, methodology and retrieval times with your results.

Your language, your workflow

Call the API with cURL, Python, TypeScript, or any backend that can send an HTTP request.

import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'zillow'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'redfin'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'realtor'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'rightmove'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'idealista'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
Capability excerpt · illustrative
{
  "platform": "zillow",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "redfin",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "realtor",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "rightmove",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "GB"
  ],
  "execution": "sync"
}
{
  "platform": "idealista",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "ES"
  ],
  "execution": "sync"
}
Browse the platform catalog
FAQ

Have a question?
We got answers

Find answers to common questions about FHFA House Price Index requests, responses, and credits.

Contact us
How do I get FHFA House Price Index quarterly index series for a test?

Create an account for 100 trial credits, check live capabilities for FHFA House Price Index, and use the example request above with your API key. This operation lists 50 credits per successful call.

What does the Read a named source market series API return?

a market series object in data, with state, index and methodology and source fields. The meta object includes request diagnostics and source outcomes. Fields depend on what the source publishes.

Where do I put the request parameters?

Use this account’s unexpired market_id returned by market discovery. Put the required series and optional quarter-start date bounds in the query string.

Is this endpoint available for every market?

Availability is operation-specific. Check /v1/meta/capabilities for the platform’s live status, accepted selectors, and markets. Unavailable requests are not charged.

Is this an official FHFA House Price Index endpoint?

RealtyCrawl is an independent real estate data API and is not affiliated with FHFA House Price Index.

Ready to use FHFA House Price Index quarterly index series?

Get your API key and start building a source-linked property workflow.

Get an API key

50 credits per successful call · Failed calls are refunded