get_ladder
Get the ladder for one symbol and expiry: every rung's market-implied probability of finishing above the strike, the above and below prices on a 0..1 scale per $1 of payoff, validity, spot, forward and time to expiry.
Scope: ladder:read
Input
| Name | Type | Required | Description |
|---|---|---|---|
symbol | string | Required | Underlying ticker, uppercase, e.g. SPY.pattern ^[A-Z]{1,6}$ |
expiry | string (date) | Optional | Expiry as YYYY-MM-DD. Defaults to the nearest listed expiry. |
strikes_around_spot | integer | Optional | How many strikes to return above and below spot.≥ 1; ≤ 60; default 6 |
JSON Schema
input_schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"pattern": "^[A-Z]{1,6}$",
"description": "Underlying ticker, uppercase, e.g. SPY."
},
"expiry": {
"type": "string",
"format": "date",
"description": "Expiry as YYYY-MM-DD. Defaults to the nearest listed expiry."
},
"strikes_around_spot": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"default": 6,
"description": "How many strikes to return above and below spot."
}
},
"required": [
"symbol"
],
"additionalProperties": false
}Example
Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_ladder",
"arguments": {
"symbol": "SPY",
"expiry": "2026-10-23",
"strikes_around_spot": 2
}
}
}Result
{
"snapshot_id": "spy-2026-10-23-1760641500000",
"symbol": "SPY",
"expiry": "2026-10-23",
"as_of": "2026-10-16T19:20:00Z",
"spot": {
"last": 582.41,
"bid": 582.4,
"ask": 582.42,
"mid": 582.41
},
"forward": 582.6,
"minutes_to_expiry": 1990,
"width": 1,
"fit": "svi",
"stale": false,
"rungs": [
{
"strike": 580,
"p_above": 0.59,
"above_price": 0.61,
"below_price": 0.43,
"valid": true
},
{
"strike": 581,
"p_above": 0.55,
"above_price": 0.57,
"below_price": 0.47,
"valid": true
},
{
"strike": 582,
"p_above": 0.52,
"above_price": 0.54,
"below_price": 0.5,
"valid": true
},
{
"strike": 583,
"p_above": 0.48,
"above_price": 0.5,
"below_price": 0.54,
"valid": true
},
{
"strike": 584,
"p_above": 0.45,
"above_price": 0.47,
"below_price": 0.57,
"valid": true
}
]
}Rungs are sorted by strike, ascending. above_price and below_price are omitted when a rung is not quotable; valid: false rungs cannot be traded.