Skip to content
Start Trading

Get Option Contracts

client.V1.Instruments.GetOptionContracts(ctx, query) (*V1InstrumentGetOptionContractsResponse, error)
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.

ParametersExpand Collapse
query V1InstrumentGetOptionContractsParams
ContractType param.Field[ContractType]Optional

Filter by contract type: CALL or PUT

Expiry param.Field[Time]Optional

Filter to contracts expiring on this date (YYYY-MM-DD)

formatdate
PageSize param.Field[int64]Optional

The number of items to return per page. Only used when page_token is not provided.

formatint64
maximum1000
minimum1
PageToken param.Field[string]Optional

Token for retrieving the next or previous page of results. Contains encoded pagination state; when provided, page_size is ignored.

formatbyte
Underlier param.Field[string]Optional

Underlier symbol (e.g., AAPL, SPX)

UnderlyingInstrumentID param.Field[InstrumentIDOrSymbol]Optional

Instrument identifier or symbol of the underlying equity/index

formatuuid
ReturnsExpand Collapse
type V1InstrumentGetOptionContractsResponse struct{…}
ID string

Instrument identifier

formatuuid
ContractType ContractType

Whether this is a CALL or PUT

One of the following:
const ContractTypeCall ContractType = "CALL"
const ContractTypePut ContractType = "PUT"
Currency string

ISO currency code

Exchange string

MIC code of the primary listing venue

ExerciseStyle ExerciseStyle

Exercise style

One of the following:
const ExerciseStyleAmerican ExerciseStyle = "AMERICAN"
const ExerciseStyleEuropean ExerciseStyle = "EUROPEAN"
Expiry Time

Expiration date

formatdate
IsLiquidationOnly bool

Whether the contract is liquidation-only

IsMarginable bool

Whether the contract is marginable

ListingType ListingType

Listing type

One of the following:
const ListingTypeStandard ListingType = "STANDARD"
const ListingTypeFlex ListingType = "FLEX"
const ListingTypeOtc ListingType = "OTC"
Multiplier string

Contract multiplier (100 for standard options)

StrikePrice string

Strike price

Symbol string

OSI symbol (e.g. “AAPL 251219C00150000”)

OpenInterest int64Optional

Open interest (number of outstanding contracts), if available When a null/undefined value is observed, it indicates that there is no available data.

formatint64
UnderlyingInstrumentID stringOptional

Instrument ID of the underlying instrument, when available When a null/undefined value is observed, it indicates that there is no available data.

formatuuid

Get Option Contracts

package main

import (
  "context"
  "fmt"

  "github.com/clear-street/clear-street-go"
  "github.com/clear-street/clear-street-go/option"
)

func main() {
  client := clearstreet.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.V1.Instruments.GetOptionContracts(context.TODO(), clearstreet.V1InstrumentGetOptionContractsParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
{
  "data": [
    {
      "contract_type": "CALL",
      "currency": "USD",
      "exchange": "BATO",
      "exercise_style": "AMERICAN",
      "expiry": "2026-03-20",
      "id": "b6f4b5e2-94a8-4fe4-9a85-2b4a81d30cc5",
      "is_fractionable": false,
      "is_liquidation_only": false,
      "is_marginable": true,
      "is_ptp": false,
      "is_tradable": true,
      "listing_type": "STANDARD",
      "multiplier": "100",
      "strike_price": "180",
      "symbol": "AAPL  260320C00180000",
      "underlying_instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8"
    },
    {
      "contract_type": "PUT",
      "currency": "USD",
      "exchange": "BATO",
      "exercise_style": "AMERICAN",
      "expiry": "2026-03-20",
      "id": "c7e5c6f3-a5b9-5gf5-0b96-3c5b92e41dd6",
      "is_fractionable": false,
      "is_liquidation_only": false,
      "is_marginable": true,
      "is_ptp": false,
      "is_tradable": true,
      "listing_type": "STANDARD",
      "multiplier": "100",
      "strike_price": "180",
      "symbol": "AAPL  260320P00180000",
      "underlying_instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8"
    }
  ],
  "metadata": {
    "page_number": 1,
    "request_id": "c2d0429d-c629-4ee1-b719-df007157f3bb",
    "total_items": 2,
    "total_pages": 1
  }
}
{
  "error": {
    "code": 400,
    "message": "Exactly one underlier identifier must be provided: underlier or underlying_instrument_id"
  },
  "metadata": {
    "request_id": "4bb6025f-0415-4689-9c2f-307e9a1a47c8"
  }
}
{
  "error": {
    "code": 404,
    "message": "Instrument not found: 528ec5c3-cdbf-447c-b995-ec6c83cfbc03"
  },
  "metadata": {
    "request_id": "58a3f5e9-74b0-48b7-a17d-16b44e123174"
  }
}
Returns Examples
{
  "data": [
    {
      "contract_type": "CALL",
      "currency": "USD",
      "exchange": "BATO",
      "exercise_style": "AMERICAN",
      "expiry": "2026-03-20",
      "id": "b6f4b5e2-94a8-4fe4-9a85-2b4a81d30cc5",
      "is_fractionable": false,
      "is_liquidation_only": false,
      "is_marginable": true,
      "is_ptp": false,
      "is_tradable": true,
      "listing_type": "STANDARD",
      "multiplier": "100",
      "strike_price": "180",
      "symbol": "AAPL  260320C00180000",
      "underlying_instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8"
    },
    {
      "contract_type": "PUT",
      "currency": "USD",
      "exchange": "BATO",
      "exercise_style": "AMERICAN",
      "expiry": "2026-03-20",
      "id": "c7e5c6f3-a5b9-5gf5-0b96-3c5b92e41dd6",
      "is_fractionable": false,
      "is_liquidation_only": false,
      "is_marginable": true,
      "is_ptp": false,
      "is_tradable": true,
      "listing_type": "STANDARD",
      "multiplier": "100",
      "strike_price": "180",
      "symbol": "AAPL  260320P00180000",
      "underlying_instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8"
    }
  ],
  "metadata": {
    "page_number": 1,
    "request_id": "c2d0429d-c629-4ee1-b719-df007157f3bb",
    "total_items": 2,
    "total_pages": 1
  }
}
{
  "error": {
    "code": 400,
    "message": "Exactly one underlier identifier must be provided: underlier or underlying_instrument_id"
  },
  "metadata": {
    "request_id": "4bb6025f-0415-4689-9c2f-307e9a1a47c8"
  }
}
{
  "error": {
    "code": 404,
    "message": "Instrument not found: 528ec5c3-cdbf-447c-b995-ec6c83cfbc03"
  },
  "metadata": {
    "request_id": "58a3f5e9-74b0-48b7-a17d-16b44e123174"
  }
}