tastytradeDeveloper Docs
Legacy ↗

API Reference / Instruments

List Future Options

getInstrumentsFutureOptions
get/instruments/future-options

Base URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)

Returns future option definitions for one or more symbols using tastytrade symbology (e.g. `./ESZ9 EW4U9 190927P2975`). You may filter by `option-root-symbol`, `expiration-date`, `option-type`, and `strike-price`, but these must be supplied together; `symbol` and `option-root-symbol` are mutually exclusive.

Code samples

curl -X GET 'https://api.cert.tastyworks.com/instruments/future-options?exchange=%7Bexchange%7D&expiration-date=2024-01-15&maturity-date=2024-01-15&option-root-symbol=EW1&option-type=C&security-id=%7Bsecurity-id%7D&strike-price=97.50&symbol[]=.%2FESZ9%20EW4U9%20190927P2975' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'User-Agent: tastytrade-docs-example/1.0'

Parameters

NameInTypeDescription
exchangequerystringName of the exchange for the product
expiration-datequerystringExpiration date
e.g. "2024-01-15"
maturity-datequerystringMaturity date
e.g. "2024-01-15"
option-root-symbolquerystringFuture option root, i.e. EW3 or SO
e.g. "EW1"
option-typequerystringP(ut) or C(all)
enum: C, P
e.g. "C"
security-idqueryarrayExchange-specific ID used for order routing (example: security-id[]={value1}&security-id[]={value2})
strike-pricequerystringStrike price using display factor
e.g. "97.50"
symbolqueryarrayThe symbol of the future option(s) (example: symbol[]={value1}&symbol[]={value2})
e.g. ["./ESZ9 EW4U9 190927P2975"]

Responses

200Future options matching the requested symbols and filters.application/json

Example response

{
  "data": {
    "items": [
      {
        "active": true,
        "days-to-expiration": 4,
        "display-factor": "0.01",
        "exchange": "CME",
        "exercise-style": "American",
        "expiration-date": "2023-08-03",
        "expires-at": "2023-08-03T20:00:00.000+00:00",
        "future-price-ratio": "100.00",
        "is-closing-only": true,
        "is-confirmed": true,
        "is-exercisable-weekly": true,
        "is-primary-deliverable": true,
        "is-vanilla": true,
        "last-trade-time": "string",
        "maturity-date": "2023-08-03",
        "multiplier": "1.0",
        "notional-value": "0.5",
        "option-root-symbol": "E1D",
        "option-type": "P",
        "product-code": "ES",
        "root-symbol": "/ES",
        "security-id": "abc123",
        "settlement-type": "Future",
        "stops-trading-at": "2023-08-03T20:00:00.000+00:00",
        "streamer-symbol": "./E1DQ23P3860:XCME",
        "strike-factor": "string",
        "strike-price": "3860.0",
        "symbol": "./ESU3 E1DQ3 230803P3860",
        "underlying-count": "string",
        "underlying-symbol": "/ESU3",
        "future-option-product": {
          "cash-settled": true,
          "code": "string",
          "display-factor": "string",
          "exchange": "string",
          "expiration-type": "string",
          "is-am-settled": true,
          "itm-rule": "string",
          "market-sector": "string",
          "product-subtype": "string",
          "product-type": "string",
          "root-symbol": "AAPL",
          "settlement-delay-days": 0,
          "supported": true
        },
        "exchange-symbol": "E1DQ3 P3860",
        "security-exchange": "2",
        "sx-id": "0"
      }
    ]
  },
  "context": "/instruments/future-options",
  "pagination": {
    "per-page": 0,
    "page-offset": 0,
    "item-offset": 0,
    "total-items": 0,
    "total-pages": 0,
    "current-item-count": 0
  }
}

Schema

  • datarequiredobject
    • itemsrequiredarray<object>{34 fields}
  • contextrequiredstring

    example: "/instruments/future-options"

  • paginationobject

    Paging metadata, present on paginated list responses.

    • per-pageinteger
    • page-offsetinteger
    • item-offsetinteger
    • total-itemsinteger
    • total-pagesinteger
    • current-item-countinteger
400Invalid filter combination. The `option-root-symbol`, `expiration-date`, `option-type`, and `strike-price` filters must be supplied together, and `symbol` and `option-root-symbol` are mutually exclusive.application/json

Example response

{
  "error": {
    "code": "string",
    "message": "string",
    "errors": [
      {
        "code": "string",
        "message": "string",
        "domain": "string"
      }
    ]
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

401Missing or expired access token, or a missing/malformed `User-Agent` header.application/json

Example response

{
  "error": {
    "code": "unauthorized",
    "message": "No valid access token was provided; access tokens expire after 15 minutes."
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

429Request rate exceeded. Back off exponentially and reduce request frequency.application/json

Example response

{
  "error": {
    "code": "string",
    "message": "string",
    "errors": [
      {
        "code": "string",
        "message": "string",
        "domain": "string"
      }
    ]
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

Related

Agents: this page is also Markdown (with the embedded OpenAPI definition) — append .md or send Accept: text/markdown. Index at /llms.txt.