# StationFX Velocity of M2 Money Stock

> StationFX Velocity of M2 Money Stock is a paid API for AI agents from stationfx.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-01).

Returns quarterly time-series data for M2 money velocity (GDP/M2), with trend, z-score, and momentum statistics for monetary policy analysis.

## Facts

- Endpoint: GET https://stationfx.com/economic-data/money-supply/velocity-of-m2-money-stock?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stationfx-velocity-of-m2-money-stock-d40e07f4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cWYi-q7pQRoVil-PdMNQc

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-velocity-of-m2-money-stock-d40e07f4
```

Example prompt: Pull the velocity of M2 money stock data from StationFX for the past two years — I want the quarterly values along with year-over-year changes and the 5-year z-score so I can see whether money circulation is accelerating or slowing.

## When to prefer this

Choose this endpoint when you need quarterly GDP/M2 velocity data with pre-computed momentum, trend, and z-score statistics — especially to contextualize M2 growth signals, assess inflationary or deflationary regimes, or build macro dashboards without performing your own calculations. Prefer it over raw Federal Reserve data sources when you want normalized, agent-ready output including percentile ranks and rolling averages in a single call.

## Known failure modes

- Invalid date format returns a 400 error
- Date range with no quarterly data available returns an empty array
- Unsupported fmt value causes a parameter validation error
- Requesting fields not available for this series returns partial or error response
- Service downtime or upstream data feed delay may return stale or unavailable data

## How this service works

GDP divided by M2 money supply — measures how efficiently money circulates in the economy. Declining velocity means more money is needed to generate the same output, a deflationary signal. Rising velocity can amplify inflation. Quarterly frequency, critical context for M2 growth interpretation.

## Output

Returns a JSON array of quarterly observations, each containing the date, raw velocity value (GDP/M2 ratio), month-over-month and year-over-year absolute and percentage changes, 12-month and 5-year z-scores, 5-year percentile rank, 3-month and 12-month rolling averages, and a binary flag indicating whether the value is above its long-run trend.

## 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": "Q",
   "source_key": "M2V"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stationfx-velocity-of-m2-money-stock-d40e07f4/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)
