Get an option chain for an underlying and expiry
GET
/instruments/options/chain
curl --request GET \ --url http://localhost:3001/instruments/options/chain \ --header 'Authorization: Bearer <token>'import requests
url = "http://localhost:3001/instruments/options/chain"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.json())use reqwest;
#[tokio::main]pub async fn main() { let url = "http://localhost:3001/instruments/options/chain";
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”underlying
required
string
expiry
required
string format: date
Responses
Section titled “Responses”Strike-sorted chain rows
Media typeapplication/json
Array<object>
One strike of an option chain. call/put are independently nullable —
a venue can list only one side of a strike, and this must say so rather
than omit the row or invent the missing leg.
object
call
object
instrument_id
required
integer format: int64
symbol
required
string
put
object
instrument_id
required
integer format: int64
symbol
required
string
strike
required
number format: double
Example generated
[ { "call": { "instrument_id": 1, "symbol": "example" }, "put": { "instrument_id": 1, "symbol": "example" }, "strike": 1 }]