# Heurist Mesh: Yahoo Finance Options Chain

> Heurist Mesh: Yahoo Finance Options Chain is a paid API for AI agents from mesh.heurist.xyz, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Returns a compact options chain snapshot for a specific underlying symbol and expiration date, including bounded contract rows and open-interest/volume summaries.

## Facts

- Endpoint: POST https://mesh.heurist.xyz/x402/solana/agents/YahooFinanceAgent/options_chain
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/heurist-mesh-yahoo-finance-options-chain-b898685d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SfJyqGWDYqBdmuzqMU3F8

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 heurist-mesh-yahoo-finance-options-chain-b898685d -d '<json body>'
```

Example prompt: Pull me the options chain snapshot for AAPL expiring on 2025-01-17 from Yahoo Finance — show me the calls and puts with open interest and volume summaries, and limit it to the top 20 contracts.

## When to prefer this

Choose this endpoint when you need a structured, bounded options chain for a specific ticker and expiration date from Yahoo Finance, especially when you want open interest and volume summaries in a compact format suitable for agent consumption. Prefer this over full raw Yahoo Finance scraping when you need clean, LLM-ready output with bounded rows for downstream analysis.

## Known failure modes

- Invalid or unrecognized Yahoo Finance symbol returns an error or empty result
- Expiration date not matching a valid expiry from options_expirations returns an error
- Request exceeds contract row bounds causing truncated or rejected response
- Network or upstream Yahoo Finance API unavailability causes timeout
- Payment of 0.002 USDC not properly included causes 402 rejection

## How this service works

Return a compact options chain snapshot for one exact Yahoo Finance underlying symbol and one exact expiration returned by options_expirations, with bounded contract rows and high-signal open-interest and volume summaries.

## Output

A compact options chain snapshot containing call and put contract rows (bounded by a row limit) for the specified underlying symbol and expiration date, along with high-signal summaries of open interest and volume across strikes, including bid/ask prices and key Greeks where available.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "symbol"
     ],
     "properties": {
      "side": {
       "type": "string",
       "default": "both",
       "description": "Which side of the chain to return. Ignored when expiration is omitted."
      },
      "debug": {
       "type": "boolean",
       "default": false,
       "description": "Debug mode flag. ALWAYS use false."
      },
      "limit": {
       "type": "integer",
       "default": 12,
       "description": "Maximum number of expirations to return in discovery mode."
      },
      "symbol": {
       "type": "string",
       "description": "One exact Yahoo Finance underlying symbol such as AAPL, MSFT, or SPY."
      },
      "moneyness": {
       "type": "string",
       "default": "all",
       "description": "Filter contracts by moneyness relative to the underlying spot price. Ignored when expiration is omitted."
      },
      "expiration": {
       "type": "string",
       "description": "Optional expiration date in YYYY-MM-DD format. Omit on the first call to discover expirations. Pass an exact returned value on the second call to return that chain."
      },
      "max_strike": {
       "type": "number",
       "description": "Optional maximum strike filter. Ignored when expiration is omitted."
      },
      "min_strike": {
       "type": "number",
       "description": "Optional minimum strike filter. Ignored when expiration is omitted."
      },
      "limit_contracts": {
       "type": "integer",
       "default": 12,
       "description": "Maximum number of contracts to return per side after filtering. Ignored when expiration is omitted."
      },
      "max_days_to_expiration": {
       "type": "integer",
       "description": "Optional maximum days-to-expiration filter in discovery mode."
      },
      "min_days_to_expiration": {
       "type": "integer",
       "description": "Optional minimum days-to-expiration filter in discovery mode."
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json"
     ],
     "type": "string"
    }
   },
   "additionalPrope
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/heurist-mesh-yahoo-finance-options-chain-b898685d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mesh.heurist.xyz](https://www.zero.xyz/host/mesh.heurist.xyz/llms.txt)
