Get Future Product
getInstrumentsFutureProductsExchangeCode/instruments/future-products/{exchange}/{code}Base URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)
Returns a single future product identified by exchange and product code (e.g. exchange `CME`, code `CL`).
Code samples
curl -X GET 'https://api.cert.tastyworks.com/instruments/future-products/CBOED/ES' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'User-Agent: tastytrade-docs-example/1.0'import requests
url = "https://api.cert.tastyworks.com/instruments/future-products/CBOED/ES"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
}
resp = requests.get(url, headers=headers)
print(resp.status_code, resp.json())const resp = await fetch("https://api.cert.tastyworks.com/instruments/future-products/CBOED/ES", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
},
})
const data = await resp.json()
console.log(resp.status, data)package main
import (
"net/http"
"io"
"fmt"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.cert.tastyworks.com/instruments/future-products/CBOED/ES", nil)
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
req.Header.Set("User-Agent", "tastytrade-docs-example/1.0")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(out))
}import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.cert.tastyworks.com/instruments/future-products/CBOED/ES"))
.header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
.header("User-Agent", "tastytrade-docs-example/1.0")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode() + " " + resp.body());Parameters
| Name | In | Type | Description |
|---|---|---|---|
| exchange* | path | string | The exchange code enum: CBOED, CFE, CME, SMALLS e.g. "CBOED" |
| code* | path | string | The product code, i.e. `ES` e.g. "ES" |
Responses
Example response
{
"data": {
"active-months": [
"H",
"M",
"U",
"Z"
],
"back-month-first-calendar-symbol": true,
"base-tick": 0,
"cash-settled": true,
"code": "ES",
"contract-limit": 0,
"description": "E Mini S&P",
"display-factor": "0.01",
"exchange": "CME",
"first-notice": false,
"listed-months": [
"H",
"M",
"U",
"Z"
],
"market-sector": "Equity Index",
"notional-multiplier": "50.0",
"price-format": "100.00",
"product-subtype": "string",
"product-type": "Financial",
"security-group": "ES",
"small-notional": false,
"streamer-exchange-code": "XCME",
"sub-tick": 0,
"supported": true,
"root-symbol": "/ES",
"tick-size": "0.25",
"true-underlying-code": "string",
"underlying-description": "string",
"underlying-identifier": "string",
"clearing-code": "ES",
"clearing-exchange-code": "16",
"clearport-code": "ES",
"legacy-code": "ES",
"legacy-exchange-code": "CME",
"option-products": [
{
"cash-settled": false,
"code": "EW1",
"display-factor": "0.01",
"exchange": "CME",
"expiration-type": "Weekly",
"is-am-settled": false,
"itm-rule": "string",
"market-sector": "Equity Index",
"product-subtype": "string",
"product-type": "Physical",
"root-symbol": "EW1",
"settlement-delay-days": 0,
"supported": true,
"legacy-code": "EW1",
"clearport-code": "EW1",
"clearing-code": "W1",
"clearing-exchange-code": "9C",
"clearing-price-multiplier": "1.0",
"is-rollover": false,
"future-product": null
}
],
"roll": {
"name": "equity_index",
"active-count": 3,
"cash-settled": true,
"business-days-offset": 4,
"first-notice": false
}
},
"context": "/instruments/future-products/{exchange}/{code}"
}Schema
datarequiredobject (FutureProduct)Metadata describing a futures product. A future product is not tradeable; it describes attributes such as the contract code, listed months, and tick size.
active-monthsarray<string>Month codes with currently active contracts.
example:
["H","M","U","Z"]back-month-first-calendar-symbolbooleanWhether the back month is the first calendar symbol for spreads.
example:
truebase-tickinteger <int32>cash-settledbooleanWhether contracts of this product settle in cash.
example:
truecodestringProduct code (e.g. `ES`).
example:
"ES"contract-limitinteger <int32>descriptionstringHuman-readable description of the product.
example:
"E Mini S&P"display-factorstring <decimal>Factor applied to convert raw prices to display prices. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"0.01"exchangestringExchange on which the product trades.
example:
"CME"first-noticebooleanWhether the product observes a first-notice date.
example:
falselisted-monthsarray<string>Month codes for which contracts of this product are listed.
example:
["H","M","U","Z"]market-sectorstringMarket sector classification.
example:
"Equity Index"notional-multiplierstring <decimal>Multiplier used to compute notional value from price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"50.0"price-formatstringproduct-subtypestringproduct-typestringProduct type, e.g. `Financial` or `Physical`.
example:
"Financial"security-groupstringSecurity group identifier.
example:
"ES"small-notionalbooleanWhether this is a small-notional (micro) product.
example:
falsestreamer-exchange-codestringExchange code used by the DXLink streamer.
example:
"XCME"sub-tickinteger <int32>supportedbooleanWhether the product is supported by tastytrade.
example:
trueroot-symbolstringRoot symbol of the product (e.g. `/ES`).
example:
"/ES"tick-sizestring <decimal>Minimum price increment for contracts of this product. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"0.25"true-underlying-codestringunderlying-descriptionstringunderlying-identifierstringclearing-codestringClearing code of the product.
example:
"ES"clearing-exchange-codestringClearing exchange code of the product.
example:
"16"clearport-codestringClearPort code of the product.
example:
"ES"legacy-codestringLegacy code of the product.
example:
"ES"legacy-exchange-codestringLegacy exchange code of the product.
example:
"CME"option-productsarray<object>{20 fields}Future option products associated with this product. Missing or empty when tastytrade does not offer options for the product.
rollobject{5 fields}Contract roll attributes for the product.
contextrequiredstringexample:
"/instruments/future-products/{exchange}/{code}"
Example response
{
"error": {
"code": "unauthorized",
"message": "No valid access token was provided; access tokens expire after 15 minutes."
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "string",
"message": "string",
"errors": [
{
"code": "string",
"message": "string",
"domain": "string"
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "string",
"message": "string",
"errors": [
{
"code": "string",
"message": "string",
"domain": "string"
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Related
- Rate-limit class:
read· idempotent — Rate limits & backoff - Error reference — codes, causes, and fixes
Agents: this page is also Markdown (with the embedded OpenAPI definition) — append .md or send Accept: text/markdown. Index at /llms.txt.