---
title: "Api Options"
method: GET
path: "/api/options"
---

# Api Options

`GET /api/options`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/options`
- Auth: none declared

Options chain data via Tradier.

F4 boundary backfill 2026-05-08: response_model added.

## Query parameters

- `ticker` string, nullable
- `expiry` string

## Response `200`

Successful Response

- OptionsChainResponse: `/api/options` — options chain for a ticker via Tradier. F4 boundary backfill 2026-05-08 (Initiative 6). Frontend ticker-page options panel iterates calls + puts unconditionally; missing either list NPEs the chain table render.
  - `ticker` string, required: Uppercase ticker echo.
  - `expirations` unknown[], required: Available expiry dates as YYYY-MM-DD strings. Empty list when Tradier is unconfigured or has no chain for this ticker.
    - unknown
  - `calls` unknown[], required: Call options for the selected expiry. Empty list when no expiry is selected. Each item shape decided by tradier_chain_to_oxford().
    - unknown
  - `puts` unknown[], required: Put options for the selected expiry. Empty list when no expiry is selected.
    - unknown
  - `selectedExpiry` string, nullable: The expiry the chain renders against. None when expirations list is empty.
  - `underlyingPrice` number, nullable: Cached spot price from data_store. None when no price entry exists.
  - `error` string, nullable: Error message — present iff Tradier is unconfigured or fetch failed.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
