---
title: "US Options Trade and NBBO Quote"
method: GET
path: "/v1/data/us-equity-opt/tanq/{trade_date}/{identifier}/{expiration_date}"
tags: ["us-equity-opt-tick"]
---

# US Options Trade and NBBO Quote

`GET /v1/data/us-equity-opt/tanq/{trade_date}/{identifier}/{expiration_date}`

The U.S. Options Trade and NBBO Quote dataset provides tick-level options trade data and National Best Bid and Offer (NBBO) quotes, derived from the consolidated OPRA trade and quote (TAQ) feed. This dataset is a filtered subset of full Options TAQ, in which non-NBBO quote updates are removed, retaining only NBBO quotes and executed trades. This significantly reduces data volume and complexity while preserving the most relevant market context for execution analysis, best-price evaluation, and NBBO-based research. In addition to consolidated last-sale trades and NBBO bid/ask quotes, the dataset includes rich event metadata such as trade and quote condition codes and flags (e.g., complex order indicators, Intermarket Sweep Orders (ISO)). Supplementary reference events, including open interest and end-of-day summary attributes, are included to support downstream analytics and validation workflows. Coverage spans all U.S. equity options exchanges reporting via OPRA. 

 For more details, please refer to the dataset documentation: [US Options Trade and NBBO Quote Guide](https://us-options-market-data-docs.s3.us-east-1.amazonaws.com/algoseek.US.Options.TANQ.pdf).

<details>
<summary>**Advanced Filtering**</summary>

You can provide one or multiple filter expressions based on the dataset's columns to narrow down the results. For example, `StartDate.gt=2023-01-01&StartDate.lt=2023-12-31`, `Ticker=AAPL`. 

Please refer to the <a href="https://algoseek.com/docs/rest-api/tutorial/advanced-filtering">Advanced Filtering Guide</a> for the extensive reference.
</details>


<details>
<summary>**Optimizing Performance**</summary>

Some queries to this endpoint may be slow due to the size of the data chunk requested. If this becomes an issue, consider narrowing down the response data with query parameters. 

For more details, please refer to the <a href="https://algoseek.com/docs/rest-api/tutorial/optimizing-query-performance">Query Performance Guide</a>.
</details>

## Path parameters

- `trade_date` string, required — Trading date in YYYY-MM-DD format
- `identifier` string, required — Dataset's security identifier
- `expiration_date` string, required — Secondary date column in YYYY-MM-DD format

## Query parameters

- `sort` string, nullable — Sorting criteria for the results. Provide a column name with optional prefix '+' for ascending order, or prefix with '-' for descending order. Multiple sorting fields may be supported depending on the dataset. If sort prefix is not provided, the ascending order is applied.
- `columns` string, nullable — A comma-separated list of columns to include in the response. Use this parameter to select only specific fields from the dataset. If not provided, all available columns will be returned.
- `offset` integer — Number of records to skip before returning results. To be used with the `limit` parameter for pagination. If not provided, defaults to 0.
- `limit` integer — Maximum number of records to return. Default and maximum values depend on the response format; see `format_limits` in the schema for details.
- `response_format` 'json' | 'csv' | 'csv_gzip' — Note the lowercase which is used for the consistency with other projects and tools

## Response `200`

JSON, CSV file, or gzip-compressed CSV file, depending on the value of `response_format` query parameter

- USOptionsTradeandNBBOQuoteDataOut
  - `data` USOptionsTradeandNBBOQuoteDataDetailsOut[], required
    - `TradeDate` string, date, nullable — The trading day
    - `EventDateTime` string, date-time, nullable — Event timestamp (EST) with a millisecond resolution
    - `Ticker` string, nullable — Symbol name
    - `CallPut` string, nullable — Option contract class: "C" for Call or "P" for Put
    - `Strike` number, nullable — Option contract strike price
    - `ExpirationDate` string, date, nullable — Expiration date of the option contract
    - `EventType` integer, nullable — Byte code applicable to the event. It is translated into text in the Action column
    - `Action` string, nullable — EventType and Side as text
    - `Side` string, nullable — For quotes it is "B" for Bid or "A" for Ask. Field is empty for a Trade
    - `Price` number, nullable — The price of Bid, Ask, or Trade. Can be up to 4 decimal places for sub-penny prices
    - `Quantity` integer, nullable — The number contracts
    - `Exchange` string, nullable — Exchange Acronymn, eg BATS
    - `Conditions` string, nullable — Single letter for Trade or Quote Condition
    - `UnderBidPrice` number, nullable — Underlying Ticker NBBO Bid price at time of the event
    - `UnderAskPrice` number, nullable — Underlying Ticker NBBO Ask price at time of the event
  - `pagination` PaginationDetailsOut, required
    - `offset` integer — The number of records skipped to fetch the current page
    - `limit` integer, required — The maximum number of records in the current page
    - `next_offset` integer, nullable — The number of records to skip to fetch the next page

## Other responses

- `403` — Forbidden
- `422` — Validation Error
- `429` — Request rejected because the identity or team exceeded a configured monthly or per-minute usage quota. When available, the response includes rate-limit headers describing the current quota.

---

[API](https://skmtc.net/algoseek/apis/datasets-api.md) · [All operations](https://skmtc.net/algoseek/apis/datasets-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/algoseek/datasets-api/revisions/1c983de099e2/schema)
