Get Quotes By Instrument Type
getMarketDataByType/market-data/by-typeBase URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)
Fetches real-time REST quotes for multiple securities at once. Pass each instrument type as a query parameter (`equity`, `equity-option`, `index`, `future`, `future-option`, `cryptocurrency`) whose value is a comma-delimited list of symbols in tastytrade symbology. The combined number of symbols across all type parameters is capped at 100 per request; split larger sets across multiple calls or use the DXLink streaming feed instead. Available to funded account holders only; no delayed quotes are served over REST. For continuous, low-latency updates prefer streaming over polling.
Code samples
curl -X GET 'https://api.cert.tastyworks.com/market-data/by-type?index[]=SPX&equity[]=AAPL&equity[]=TSLA&equity-option[]=SPY%20%20%20250428P00355000&future[]=%2FCLM5&future-option[]=%2FMESU5EX3M5%20250620C6450&cryptocurrency[]=BTC%2FUSD' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'User-Agent: tastytrade-docs-example/1.0'import requests
url = "https://api.cert.tastyworks.com/market-data/by-type?index[]=SPX&equity[]=AAPL&equity[]=TSLA&equity-option[]=SPY%20%20%20250428P00355000&future[]=%2FCLM5&future-option[]=%2FMESU5EX3M5%20250620C6450&cryptocurrency[]=BTC%2FUSD"
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/market-data/by-type?index[]=SPX&equity[]=AAPL&equity[]=TSLA&equity-option[]=SPY%20%20%20250428P00355000&future[]=%2FCLM5&future-option[]=%2FMESU5EX3M5%20250620C6450&cryptocurrency[]=BTC%2FUSD", {
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/market-data/by-type?index[]=SPX&equity[]=AAPL&equity[]=TSLA&equity-option[]=SPY%20%20%20250428P00355000&future[]=%2FCLM5&future-option[]=%2FMESU5EX3M5%20250620C6450&cryptocurrency[]=BTC%2FUSD", 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/market-data/by-type?index[]=SPX&equity[]=AAPL&equity[]=TSLA&equity-option[]=SPY%20%20%20250428P00355000&future[]=%2FCLM5&future-option[]=%2FMESU5EX3M5%20250620C6450&cryptocurrency[]=BTC%2FUSD"))
.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 |
|---|---|---|---|
| index | query | array | Comma-separated list of index symbols. e.g. ["SPX"] |
| equity | query | array | Comma-separated list of equity symbols. e.g. ["AAPL","TSLA"] |
| equity-option | query | array | Comma-separated list of equity option symbols in OCC symbology. e.g. ["SPY 250428P00355000"] |
| future | query | array | Comma-separated list of future symbols. e.g. ["/CLM5"] |
| future-option | query | array | Comma-separated list of future option symbols. e.g. ["/MESU5EX3M5 250620C6450"] |
| cryptocurrency | query | array | Comma-separated list of cryptocurrency symbols. e.g. ["BTC/USD"] |
Responses
Example response
{
"symbol": "AAPL",
"instrumentType": "Equity",
"updatedAt": "2025-04-29T21:33:25.535Z",
"bid": "210.55",
"bidSize": "2.0",
"ask": "210.6",
"askSize": "1.0",
"mid": "210.575",
"mark": "210.55",
"last": "210.511",
"lastExt": "211.05",
"lastMkt": "211.21",
"beta": "1.260672228",
"dividendAmount": "0.25",
"dividendFrequency": "4.0",
"open": "208.693",
"dayHighPrice": "212.24",
"dayLowPrice": "208.37",
"close": "211.21",
"closePriceType": "Final",
"prevClose": "210.14",
"prevClosePriceType": "Final",
"summaryDate": "2025-04-29",
"prevCloseDate": "2025-04-28",
"lowLimitPrice": "189.77",
"highLimitPrice": "231.94",
"tradingHaltedReason": "News Pending",
"haltStartTime": -1,
"haltEndTime": -1,
"yearLowPrice": "169.11",
"yearHighPrice": "260.1",
"volume": "35348839.0",
"tradingHalted": false,
"lastTradeTime": 1745962405535,
"dayOpen": "string",
"dayHigh": "string",
"dayLow": "string",
"dayClose": "string",
"prevDayClose": "string",
"instrument": {
"symbol": "AAPL",
"instrumentType": "Equity",
"instrumentKey": {
"symbol": "AAPL",
"instrumentType": "Equity"
},
"underlyingInstrument": null,
"rootSymbol": "/CL",
"exchange": "EQUITY"
}
}Schema
symbolstringThe security symbol in tastytrade symbology (e.g. `AAPL` for an equity, `BTC/USD` for a crypto pair, `/CLM5` for a future).
example:
"AAPL"instrumentTypestringThe instrument type of the quoted security.
enum: Bond, Cryptocurrency, Equity, Equity Offering, Equity Option, Fixed Income Security, Future, Future Option, Index, Liquidity Pool, Mutual Fund, Unknown
example:
"Equity"updatedAtstring <date-time>ISO-8601 timestamp of when this quote was last updated.
example:
"2025-04-29T21:33:25.535Z"bidstring <decimal>Current best bid price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.55"bidSizestring <decimal>Size available at the best bid. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"2.0"askstring <decimal>Current best ask price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.6"askSizestring <decimal>Size available at the best ask. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"1.0"midstring <decimal>Midpoint between the best bid and best ask. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.575"markstring <decimal>Mark price used for valuation. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.55"laststring <decimal>Last traded price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.511"lastExtstring <decimal>Last traded price including extended-hours trading. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"211.05"lastMktstring <decimal>Last price reported by the regular/primary market. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"211.21"betastring <decimal>Beta of the security relative to the market. Typically present for equities. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"1.260672228"dividendAmountstring <decimal>Per-share dividend amount. Typically present for dividend-paying equities. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"0.25"dividendFrequencystring <decimal>Number of dividend payments per year. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"4.0"openstring <decimal>Opening price for the current session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"208.693"dayHighPricestring <decimal>Highest traded price during the current session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"212.24"dayLowPricestring <decimal>Lowest traded price during the current session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"208.37"closestring <decimal>Closing price for the most recent completed session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"211.21"closePriceTypestringQualifier indicating how the close price was derived. Values are serialized in title case on the wire (e.g. `Final`, `Regular`).
enum: Unknown, Regular, Indicative, Preliminary, Final
example:
"Final"prevClosestring <decimal>Closing price of the prior session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"210.14"prevClosePriceTypestringQualifier indicating how the previous close price was derived. Values are serialized in title case on the wire (e.g. `Final`, `Regular`).
enum: Unknown, Regular, Indicative, Preliminary, Final
example:
"Final"summaryDatestring <date>Session date the summary (close, day high/low) pricing applies to.
example:
"2025-04-29"prevCloseDatestring <date>Session date the previous close applies to.
example:
"2025-04-28"lowLimitPricestring <decimal>Lower trading-band limit price for the session, when applicable. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"189.77"highLimitPricestring <decimal>Upper trading-band limit price for the session, when applicable. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"231.94"tradingHaltedReasonstringReason a trading halt is in effect, when the security is halted.
example:
"News Pending"haltStartTimeinteger <int64>Epoch timestamp when a trading halt began, or `-1` when not halted.
example:
-1haltEndTimeinteger <int64>Epoch timestamp when a trading halt is expected to end, or `-1` when not halted.
example:
-1yearLowPricestring <decimal>52-week low price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"169.11"yearHighPricestring <decimal>52-week high price. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"260.1"volumestring <decimal>Traded volume for the current session. Decimal value serialized as a JSON string (e.g. "150.25").
example:
"35348839.0"tradingHaltedbooleanWhether trading in the security is currently halted. Serialized as `is-trading-halted` in JSON responses.
example:
falselastTradeTimeinteger <int64>Epoch timestamp of the last trade.
example:
1745962405535dayOpenstring <decimal>Decimal value serialized as a JSON string (e.g. "150.25").
dayHighstring <decimal>Decimal value serialized as a JSON string (e.g. "150.25").
dayLowstring <decimal>Decimal value serialized as a JSON string (e.g. "150.25").
dayClosestring <decimal>Decimal value serialized as a JSON string (e.g. "150.25").
prevDayClosestring <decimal>Decimal value serialized as a JSON string (e.g. "150.25").
instrumentobject (Instrument)Describes a tradable instrument and, for derivatives, its underlying. Used to identify the security a quote applies to.
symbolstringThe instrument's symbol in tastytrade symbology.
example:
"AAPL"instrumentTypestringThe type of the instrument.
enum: Bond, Cryptocurrency, Equity, Equity Offering, Equity Option, Fixed Income Security, Future, Future Option, Index, Liquidity Pool, Mutual Fund, Unknown
example:
"Equity"instrumentKeyobject (InstrumentKey){2 fields}A compact identifier for an instrument, pairing its symbol with its instrument type.
underlyingInstrumentInstrumentrootSymbolstringRoot symbol shared by related contracts (for example, the product root of a future or option).
example:
"/CL"exchangestringThe exchange or venue category the instrument trades on.
enum: EQUITY, SMALLS, CME, CFE, CBOED, BOND, CRYPTOCURRENCY, EQUITY_OFFERING, UNKNOWN
example:
"EQUITY"
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": "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": "not_permitted",
"message": "User not permitted access"
}
}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.