# StationFX 30-Year Fixed Rate Mortgage Average

> StationFX 30-Year Fixed Rate Mortgage Average is a paid API for AI agents from stationfx.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-02).

Returns the weekly U.S. 30-year fixed mortgage rate with derived analytics including MoM/YoY changes, z-scores, and trend indicators

## Facts

- Endpoint: GET https://stationfx.com/economic-data/interest-rates/30-year-fixed-rate-mortgage-average-in-the-united-states?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stationfx-30-year-fixed-rate-mortgage-average-623b8636
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3YDPShIpjis05JbVu4VZL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stationfx-30-year-fixed-rate-mortgage-average-623b8636
```

Example prompt: Pull the 30-year fixed mortgage rate data from StationFX for the past 12 months and show me the current rate, how it compares year-over-year, and whether it's above its long-run trend — use compact JSON output.

## When to prefer this

Use this endpoint when you need weekly U.S. 30-year fixed mortgage rate data enriched with statistical context (z-scores, percentile ranks, trend flags) rather than raw FRED data alone. Ideal for housing affordability analysis, refinancing signal detection, and consumer balance sheet modeling where derived analytics save downstream computation. Prefer over generic economic data APIs when you need pre-computed momentum and trend metrics alongside the rate itself.

## Known failure modes

- Invalid date range (date_from after date_to) returns error
- Unsupported fmt value returns validation error
- Requesting future dates may return empty data array
- Payment failure (insufficient USDC) blocks response under x402 protocol
- Very short date ranges may return single or zero observations

## How this service works

30-year fixed mortgage rate — the rate most U.S. homebuyers pay. Directly tied to 10-year Treasury yields plus a spread. Use for housing affordability analysis, refinancing wave detection, and consumer balance sheet modeling. Weekly frequency.

## Output

Returns a time-series array of weekly mortgage rate observations, each with the raw rate value, month-over-month and year-over-year absolute and percentage changes, trailing 5-year and 12-month z-scores, percentile rank over 5 years, 3-month and 12-month rolling averages, and an above-trend binary flag. Available in JSON or compact toon format.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http",
     "description": "Always \"http\" for HTTP endpoints"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string",
     "description": "HTTP method. Always GET for StationFX query endpoints"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "fmt": {
       "enum": [
        "json",
        "toon"
       ],
       "type": "string",
       "description": "Response format. Use toon for compact agent-friendly output."
      },
      "fields": {
       "type": "string",
       "description": "Comma-separated metric names"
      },
      "date_to": {
       "type": "string",
       "description": "End date YYYY-MM-DD"
      },
      "date_from": {
       "type": "string",
       "description": "Start date YYYY-MM-DD"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "description": "Response format. Always \"json\" (or \"toon\" if fmt=toon was requested)"
    },
    "example": {
     "type": "object",
     "properties": {
      "data": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "date": {
          "type": "string",
          "description": "Observation date YYYY-MM-DD"
         },
         "value": {
          "type": "number",
          "description": "Raw observed value in series units"
         },
         "mom_pct": {
          "type": "number",
          "description": "Month-over-month % change"
         },
         "yoy_pct": {
          "type": "number",
          "description": "Year-over-year % change"
         },
         "zscore_5y": {
          "type": "number",
          "description": "Z-score relative to trailing 5 years"
         },
         "mom_change": {
          "type": "number",
          "description": "Month-over-month absolute change"
         },
         "yoy_change": {
          "type": "number",
          "description": "Year-over-year absolute change"
         },
         "zscore_12m": {
          "type": "number",
          "description": "Z-score relative to trailing 12
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "properties": {
   "data": {
    "type": "array",
    "items": {
     "type": "object",
     "properties": {
      "date": {
       "type": "string",
       "description": "Observation date YYYY-MM-DD"
      },
      "value": {
       "type": "number",
       "description": "Raw observed value in series units"
      },
      "mom_pct": {
       "type": "number",
       "description": "Month-over-month % change"
      },
      "yoy_pct": {
       "type": "number",
       "description": "Year-over-year % change"
      },
      "zscore_5y": {
       "type": "number",
       "description": "Z-score relative to trailing 5 years"
      },
      "mom_change": {
       "type": "number",
       "description": "Month-over-month absolute change"
      },
      "yoy_change": {
       "type": "number",
       "description": "Year-over-year absolute change"
      },
      "zscore_12m": {
       "type": "number",
       "description": "Z-score relative to trailing 12 months"
      },
      "above_trend": {
       "type": "integer",
       "description": "1 if value is above long-run trend, else 0"
      },
      "pct_rank_5y": {
       "type": "number",
       "description": "Percentile rank over trailing 5 years (0-100)"
      },
      "rolling_3m_avg": {
       "type": "number",
       "description": "3-month rolling average"
      },
      "rolling_12m_avg": {
       "type": "number",
       "description": "12-month rolling average"
      },
      "trend_direction": {
       "type": "integer",
       "description": "Trend: 1 rising, -1 falling, 0 flat"
      }
     }
    },
    "description": "Observations ordered by date ascending"
   },
   "meta": {
    "type": "object",
    "description": "Series metadata: source_key (FRED series ID), units, frequency (D/W/M/Q/A), date_from, date_to, fields"
   }
  },
  "description": "Station f(x) response with metadata and pre-computed derived metrics"
 },
 "example": {
  "data": [
   {
    "date": "2024-01-01",
    "value": 5.33,
    "mom_pct": 0,
    "yoy_change": 0.5,
    "zscore_12m": 1.2,
    "trend_direction": 1
   }
  ],
  "meta": {
   "frequency": "W",
   "source_key": "MORTGAGE30US"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stationfx-30-year-fixed-rate-mortgage-average-623b8636/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stationfx.com](https://www.zero.xyz/host/stationfx.com/llms.txt)
