# Trades

Tick-level **options trades** for one contract: price, size, exchange, condition codes, and nanosecond timestamps. Use it for intraday analysis, building aggregates, microstructure work, and audit trails.

This page covers **historical trades** and the **last trade** shortcut.

<div data-try-url="/v1/options/trades/O:NFLX260402C00075000/?limit=10"></div>

## Endpoints

```
GET /v1/options/trades/{options_ticker}
GET /v1/options/trades/{options_ticker}/last
```

---

## Historical trades

### Path parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `options_ticker` | string | Yes | Full options ticker (for example `O:NFLX260402C00075000`). Encode `:` as `%3A` in URLs if needed. |

### Query parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `timestamp` | string | No | Filter by trade time: `YYYY-MM-DD` or a **nanosecond** Unix timestamp string. |
| `timestamp.gte` | string | No | Lower bound (date or nanosecond timestamp). |
| `timestamp.gt` | string | No | Strictly greater than. |
| `timestamp.lte` | string | No | Upper bound. |
| `timestamp.lt` | string | No | Strictly less than. |
| `sort` | string | No | Field used for ordering. |
| `order` | string | No | Sort direction for `sort`. |
| `limit` | integer | No | Max rows returned. Default **1000**, maximum **10000**. |
| `page` | string | No | Pagination continuation: use the URL in `next_url`, or pass the `page` query value from that URL here. |

### Response

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | Outcome (for example `OK`). |
| `request_id` | string | Unique identifier for this request, assigned by CuteMarkets. |
| `results` | array | Trade objects (newest or oldest first per `sort` / `order`). |
| `next_url` | string | When more trades exist, full URL for the next page. |

Use `limit` and time filters to narrow each page; follow `next_url` when present.

Each element of `results` may include:

| Field | Type | Description |
| --- | --- | --- |
| `sip_timestamp` | integer | Nanosecond time when the SIP recorded the trade. |
| `participant_timestamp` | integer | Nanosecond exchange/participant time, when present. |
| `price` | number | Premium **per share** (contract multiplier still applies to notional). |
| `size` | number | Contracts traded (volume). |
| `exchange` | integer | Exchange / participant id (numeric OPRA/SIP id). |
| `conditions` | array[integer] | Sale condition codes. |
| `correction` | integer | Correction indicator when present. |
| `id` | string | Trade id, when present. |
| `sequence_number` | integer | Sequence when supplied. |
| `decimal_size` | string | String form of size when supplied. |

### Example request

```bash
curl \
  "https://api.cutemarkets.com/v1/options/trades/O:NFLX260402C00075000/?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Time range (example):

```bash
curl \
  "https://api.cutemarkets.com/v1/options/trades/O:NFLX260402C00075000/?timestamp.gte=2026-03-01&timestamp.lte=2026-03-31&limit=500&sort=timestamp&order=desc" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Sample response (historical)

```json
{
  "results": [
    {
      "conditions": [209],
      "exchange": 313,
      "id": "",
      "price": 20.7,
      "sequence_number": 2634406060,
      "sip_timestamp": 1775071411326665293,
      "size": 5,
      "decimal_size": "5.0"
    },
    {
      "conditions": [209],
      "exchange": 307,
      "id": "",
      "price": 20,
      "sequence_number": 1491034441,
      "sip_timestamp": 1774973863784892318,
      "size": 2,
      "decimal_size": "2.0"
    },
    {
      "conditions": [233],
      "exchange": 302,
      "id": "",
      "participant_timestamp": 1774460986022000000,
      "price": 17.4,
      "sequence_number": 0,
      "sip_timestamp": 1774460986022000000,
      "size": 3,
      "decimal_size": "3.0"
    }
  ],
  "status": "OK",
  "request_id": "cm_b922dc90c9e74f0f98305e72a57955af"
}
```

## Related workflow pages

- [Options trades API](/options-trades-api)
- [Historical options quotes API](/historical-options-quotes-api)
- [0DTE options backtesting data requirements](/blog/zero-dte-options-backtesting-data-requirements)

---

## Last trade

Returns the **latest** trade for one options contract in a **compact** object (nanosecond timestamps, abbreviated field names). The shape differs from rows in **Historical trades**, use the field table below.

### Path parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `options_ticker` | string | Yes | Full options ticker (for example `O:NFLX260410C00060000`). |

### Query parameters

None.

### Response

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | Outcome (for example `OK`). |
| `request_id` | string | Unique identifier for this request, assigned by CuteMarkets. |
| `results` | object | Single last-trade payload (short keys below). |

Fields on `results` when a last sale is available (names are **abbreviated**):

| Field | Type | Description |
| --- | --- | --- |
| `T` | string | Options contract symbol. |
| `p` | number | Trade price per share (premium). |
| `s` | number | Size (contracts / volume). |
| `t` | integer | SIP nanosecond Unix timestamp (when the SIP received the trade). |
| `x` | integer | Exchange id (numeric). |
| `c` | array[integer] | Condition codes. |
| `y` | integer | Participant / exchange nanosecond timestamp (when the trade was generated). |
| `f` | integer | TRF nanosecond timestamp (when the trade reporting facility received the message), when present. |
| `r` | integer | Trade reporting facility id, when present. |
| `i` | string | Trade id (scoped by ticker, exchange, and TRF rules), when present. |
| `q` | integer | Sequence number (increasing per symbol; not always contiguous), when present. |
| `e` | integer | Trade correction indicator, when present. |
| `z` | integer | Tape id: `1` = Tape A (NYSE-listed), `2` = B (NYSE Arca / NYSE American), `3` = C (NASDAQ), when present. |
| `ds` | string | Decimal size as a string, when present. |

When no last trade exists for the contract, the response uses the usual error envelope, treat non-`OK` statuses like other options routes.

### Example request

```bash
curl \
  "https://api.cutemarkets.com/v1/options/trades/O:NFLX260410C00060000/last/" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Sample response

```json
{
  "results": {
    "T": "O:NFLX260410C00060000",
    "c": [233],
    "ds": "10.0",
    "i": "",
    "p": 35.14,
    "q": 2765195189,
    "s": 10,
    "t": 1775072777652877667,
    "x": 302
  },
  "status": "OK",
  "request_id": "cm_a1b2c3d4e5f6478990a1b2c3d4e5f678"
}
```
