tastytradeDeveloper Docs
Legacy ↗

API Reference / Market Data

Get Quotes By Instrument Type

getMarketDataByType
get/market-data/by-type

Base 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'

Parameters

NameInTypeDescription
indexqueryarrayComma-separated list of index symbols.
e.g. ["SPX"]
equityqueryarrayComma-separated list of equity symbols.
e.g. ["AAPL","TSLA"]
equity-optionqueryarrayComma-separated list of equity option symbols in OCC symbology.
e.g. ["SPY 250428P00355000"]
futurequeryarrayComma-separated list of future symbols.
e.g. ["/CLM5"]
future-optionqueryarrayComma-separated list of future option symbols.
e.g. ["/MESU5EX3M5 250620C6450"]
cryptocurrencyqueryarrayComma-separated list of cryptocurrency symbols.
e.g. ["BTC/USD"]

Responses

200Quotes for the requested symbols, returned as a list of quote objects under `data.items`. JSON keys are dasherized and numeric prices are returned as decimal strings.*/*

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

  • symbolstring

    The security symbol in tastytrade symbology (e.g. `AAPL` for an equity, `BTC/USD` for a crypto pair, `/CLM5` for a future).

    example: "AAPL"

  • instrumentTypestring

    The 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"

  • closePriceTypestring

    Qualifier 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"

  • prevClosePriceTypestring

    Qualifier 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"

  • tradingHaltedReasonstring

    Reason 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: -1

  • haltEndTimeinteger <int64>

    Epoch timestamp when a trading halt is expected to end, or `-1` when not halted.

    example: -1

  • yearLowPricestring <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"

  • tradingHaltedboolean

    Whether trading in the security is currently halted. Serialized as `is-trading-halted` in JSON responses.

    example: false

  • lastTradeTimeinteger <int64>

    Epoch timestamp of the last trade.

    example: 1745962405535

  • dayOpenstring <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.

    • symbolstring

      The instrument's symbol in tastytrade symbology.

      example: "AAPL"

    • instrumentTypestring

      The 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.

    • underlyingInstrumentInstrument
    • rootSymbolstring

      Root symbol shared by related contracts (for example, the product root of a future or option).

      example: "/CL"

    • exchangestring

      The exchange or venue category the instrument trades on.

      enum: EQUITY, SMALLS, CME, CFE, CBOED, BOND, CRYPTOCURRENCY, EQUITY_OFFERING, UNKNOWN

      example: "EQUITY"

400Bad request. A symbol or instrument-type query parameter was malformed or could not be parsed. Verify the type parameter keys and that symbols follow tastytrade symbology.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.

401Unauthorized. The access token is missing, expired (tokens last 15 minutes), or the required `User-Agent: <product>/<version>` header was missing or malformed.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.

403Forbidden. The account or token is not permitted to access this resource.application/json

Example response

{
  "error": {
    "code": "not_permitted",
    "message": "User not permitted access"
  }
}

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.

429Too many requests. Reduce request frequency before retrying. For continuous updates, prefer streaming market data over polling.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.