# 2s FRED Series Watcher — Economic Indicator Threshold Alert

> 2s FRED Series Watcher — Economic Indicator Threshold Alert is a paid API for AI agents from 2s.io, paid per call via x402, $0.125/call, status unknown (last checked 2026-10-11).

Creates a webhook-based watcher that fires a callback when a FRED economic data series crosses a specified threshold value (above or below).

## Facts

- Endpoint: POST https://2s.io/api/watchers/fred-series?utm_source=zero.xyz
- Price: $0.125/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-fred-series-watcher-economic-indicator-threshold-alert-4699a707
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7PZe9Y4ADA9CsfgKC55Fj

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 2s-fred-series-watcher-economic-indicator-threshold-alert-4699a707 -d '<json body>'
```

Example prompt: Set up a FRED watcher on the DGS10 series that POSTs to https://hooks.myapp.com/fred-alert when the 10-year Treasury yield goes above 5.0 — fire up to 3 times and keep it active for 60 days.

## When to prefer this

Use this endpoint when you need event-driven, webhook-based alerts on FRED macroeconomic series (Treasury yields, unemployment, CPI, fed funds rate, etc.) rather than polling for data yourself. It is ideal for trading systems, economic dashboards, hiring models, or any automated pipeline that must react to a specific economic threshold being crossed. Prefer this over polling the FRED data endpoints directly when you want push-based notification with signature verification, configurable fire limits, and built-in expiry — without managing a cron job or scheduler yourself.

## Known failure modes

- Invalid FRED series ID returns an error or empty result
- Callback URL unreachable causes silent callback failure (no retry guarantee)
- Threshold never crossed within expiry window — watcher expires without firing
- maxFires exceeded — watcher self-deactivates after limit is reached
- expiresInSeconds out of range (< 60 or > 7776000) causes validation error
- Malformed conditionType enum value causes request rejection
- Missing required fields (seriesId, threshold, conditionType, callbackUrl) returns 400
- Payment failure via x402 prevents watcher creation

## How this service works

The (most) everything API: 575+ pay-per-call endpoints for AI agents — ground-truth data, a full AI gateway, and agent infrastructure (storage, queues, watchers). USDC via x402, no signup, no API keys, and upto billing: pay actual usage, not the quote.

## Output

Returns a JSON object confirming the watcher was registered, including the watcher record(s) in an items array, a total count, an ok:true flag, and source attribution (provider, URL, license). Once active, the watcher POSTs a signed callback event to the specified URL each time the FRED series breaches the threshold, including an X-2s-Signature header for verification and the optional echo payload.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "label": {
   "type": "string",
   "maxLength": 64,
   "description": "Optional free-text tag."
  },
  "payload": {
   "type": "object",
   "description": "Arbitrary JSON echoed back in every callback.",
   "additionalProperties": {}
  },
  "maxFires": {
   "type": "integer",
   "maximum": 1000,
   "minimum": 1,
   "description": "Stop after this many callbacks (default 1)."
  },
  "seriesId": {
   "type": "string",
   "maxLength": 64,
   "minLength": 1,
   "description": "FRED series id, e.g. DGS10, UNRATE, CPIAUCSL, FEDFUNDS."
  },
  "threshold": {
   "type": "number",
   "description": "The series value to cross, e.g. 5 (for DGS10 = 5% 10yr yield)."
  },
  "callbackUrl": {
   "type": "string",
   "maxLength": 2048,
   "description": "Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."
  },
  "conditionType": {
   "enum": [
    "above",
    "below"
   ],
   "type": "string",
   "description": "Fire when the latest value goes above or below the threshold."
  },
  "expiresInSeconds": {
   "type": "integer",
   "maximum": 7776000,
   "minimum": 60,
   "description": "Active window in seconds (default 30d, max 90d)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "required": [
   "ok",
   "items",
   "total",
   "source"
  ],
  "properties": {
   "ok": {
    "enum": [
     true
    ],
    "type": "boolean"
   },
   "items": {
    "type": "array",
    "items": {
     "type": "object",
     "additionalProperties": {}
    }
   },
   "total": {
    "type": "integer",
    "nullable": true,
    "description": "Total matching rows upstream; null when unknown."
   },
   "source": {
    "type": "object",
    "required": [
     "provider",
     "url",
     "license"
    ],
    "properties": {
     "url": {
      "type": "string"
     },
     "license": {
      "type": "string"
     },
     "provider": {
      "type": "string"
     }
    },
    "additionalProperties": false
   }
  },
  "additionalProperties": false
 },
 "example": {
  "ok": true,
  "items": [
   {}
  ],
  "total": 1,
  "source": {
   "url": "example",
   "license": "example",
   "provider": "example"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-fred-series-watcher-economic-indicator-threshold-alert-4699a707/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
