---
title: "Get Option Contracts"
method: GET
path: "/v1/instruments/options/contracts"
tags: ["Instruments"]
---

# Get Option Contracts

`GET /v1/instruments/options/contracts`

List options contracts.

Returns options contracts for a given underlier with options-specific metadata.
Exactly one underlier identifier must be provided.

## Query parameters

- `underlier` string
- `underlying_instrument_id` union — Instrument identifier: either an instrument identifier or a symbol (symbol for equities, OSI for options). Non-UUID inputs are resolved server-side.
  - string, uuid — Instrument identifier
  - string — Symbol (symbol for equities, OSI for options)
- `expiry` string, date
- `contract_type` 'CALL' | 'PUT' — The type of options contract
- `page_size` integer
- `page_token` string, byte — Base64URL-encoded pagination token

## Response `200`

List of options contracts

- object
  - `error` ApiError — A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required — The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required — A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required — Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `page_number` integer, nullable — Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `request_id` string, required — A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable — Total number of items available (not just in this page).
    - `total_pages` integer, nullable — Total number of pages available.
  - `data` OptionsContract[], required
    - `contract_type` 'CALL' | 'PUT', required — The type of options contract
    - `currency` string, required — ISO currency code
    - `exchange` string, required — MIC code of the primary listing venue
    - `exercise_style` 'AMERICAN' | 'EUROPEAN', required — The exercise style of an options contract
    - `expiry` string, date, required — Expiration date
    - `id` string, uuid, required — Instrument identifier
    - `is_liquidation_only` boolean, required — Whether the contract is liquidation-only
    - `is_marginable` boolean, required — Whether the contract is marginable
    - `is_tradable` boolean, required — Whether the contract is tradable
    - `listing_type` 'STANDARD' | 'FLEX' | 'OTC', required — The listing type of an options contract
    - `multiplier` string, required — Contract multiplier (100 for standard options)
    - `open_interest` integer, nullable — Open interest (number of outstanding contracts), if available When a null/undefined value is observed, it indicates that there is no available data.
    - `strike_price` string, required — Strike price
    - `symbol` string, required — OSI symbol (e.g. "AAPL 251219C00150000")
    - `underlying_instrument_id` string, uuid, nullable — Instrument ID of the underlying instrument, when available When a null/undefined value is observed, it indicates that there is no available data.

## Other responses

- `400` — Invalid parameters
- `404` — Underlier not found
- `500` — Internal server error

---

[API](https://skmtc.net/clear-street/apis/clear-street-trading-api.md) · [All operations](https://skmtc.net/clear-street/apis/clear-street-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/clear-street-trading-api/revisions/80e6fb2644e0/schema)
