## Get Option Contracts `InstrumentGetOptionContractsResponse v1().instruments().getOptionContracts(InstrumentGetOptionContractsParamsparams = InstrumentGetOptionContractsParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **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. ### Parameters - `InstrumentGetOptionContractsParams params` - `Optional contractType` Filter by contract type: CALL or PUT - `Optional expiry` Filter to contracts expiring on this date (YYYY-MM-DD) - `Optional pageSize` The number of items to return per page. Only used when page_token is not provided. - `Optional pageToken` Token for retrieving the next or previous page of results. Contains encoded pagination state; when provided, page_size is ignored. - `Optional underlier` Underlier symbol (e.g., AAPL, SPX) - `Optional underlyingInstrumentId` OEMS instrument UUID or symbol of the underlying equity/index ### Returns - `class InstrumentGetOptionContractsResponse:` - `List data` - `String id` OEMS instrument identifier - `ContractType contractType` Whether this is a CALL or PUT - `CALL("CALL")` - `PUT("PUT")` - `String currency` ISO currency code - `String exchange` MIC code of the primary listing venue - `ExerciseStyle exerciseStyle` Exercise style - `AMERICAN("AMERICAN")` - `EUROPEAN("EUROPEAN")` - `LocalDate expiry` Expiration date - `boolean isLiquidationOnly` Whether the contract is liquidation-only - `boolean isMarginable` Whether the contract is marginable - `boolean isRestricted` Whether the contract is restricted from trading - `ListingType listingType` Listing type - `STANDARD("STANDARD")` - `FLEX("FLEX")` - `OTC("OTC")` - `String multiplier` Contract multiplier (100 for standard options) - `String strikePrice` Strike price - `String symbol` OSI symbol (e.g. "AAPL 251219C00150000") - `Optional openInterest` Open interest (number of outstanding contracts), if available - `Optional underlyingInstrumentId` OEMS instrument ID of the underlying instrument, if resolvable ### Example ```java package com.clear_street.api.example; import com.clear_street.api.client.ClearStreetClient; import com.clear_street.api.client.okhttp.ClearStreetOkHttpClient; import com.clear_street.api.models.v1.instruments.InstrumentGetOptionContractsParams; import com.clear_street.api.models.v1.instruments.InstrumentGetOptionContractsResponse; public final class Main { private Main() {} public static void main(String[] args) { ClearStreetClient client = ClearStreetOkHttpClient.builder() .fromEnv() .apiKey("My API Key") .build(); InstrumentGetOptionContractsResponse response = client.v1().instruments().getOptionContracts(); } } ``` #### Response ```json { "data": [ { "contract_type": "CALL", "currency": "USD", "exchange": "BATO", "exercise_style": "AMERICAN", "expiry": "2026-03-20", "id": "b6f4b5e2-94a8-4fe4-9a85-2b4a81d30cc5", "is_liquidation_only": false, "is_marginable": true, "is_restricted": 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_liquidation_only": false, "is_marginable": true, "is_restricted": 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 } } ```