> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parlayx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trades channel

> The public trade tape — one frame per fill, with taker side and per-market sequence

The `trade` channel streams a market's public trade tape: one frame per fill,
from the moment you subscribe. Subscribe with `channels: ["trade"]` (or
`["book", "trade"]` to get both) — see
[Subscriptions & markets](/streaming/subscriptions#channels).

<Note>
  The trade channel is available on **Polymarket**. Limitless publishes no public
  trade feed, so a `trade` subscribe on a Limitless market is rejected with
  [`UNSUPPORTED_CHANNEL`](/streaming/errors#error-codes).
</Note>

## `trade`

```json theme={null}
{
  "type": "trade", "v": 1, "serverTimestamp": 1748020034320,
  "subscriptionId": "f47ac10b-…", "seq": 17, "venueTimestamp": 1748020034300,
  "price": 0.52, "size": 150, "takerSide": "buy",
  "tradeId": "0x9f2c…"
}
```

One frame per fill on the market, in execution order.

| Field            | Meaning                                                                                             |
| ---------------- | --------------------------------------------------------------------------------------------------- |
| `price` / `size` | Same units as the book — implied probability in `[0, 1]`, and outcome shares.                       |
| `takerSide`      | The aggressor's side. `"buy"` means the taker lifted the ask; `"sell"` means the taker hit the bid. |
| `tradeId`        | The venue's identifier for the fill (on Polymarket, a transaction hash). May be absent.             |
| `seq`            | Per-market fill counter — see below.                                                                |

## The tape is not a state stream

Unlike the book, the trade channel carries no state to rebuild:

* The subscription's `subscribed` ack always carries `snapshotPending: false` —
  there is no snapshot, and nothing to rebuild on your side.
* You receive trades that execute **after** you subscribe. There is no replay of
  earlier fills; reconnecting means missed trades stay missed.
* `seq` is a per-market fill counter, **independent of the same market's book
  `seq`**. It increments by one per fill over the market's lifetime, so the
  first frame you receive carries the market's current count — not 1. Use it
  only to detect a gap between consecutive frames on your subscription. Unlike
  the book channel, a trade `seq` gap is **informational only** (fills were
  missed, typically across a reconnect) — no snapshot follows, and there is
  nothing to resync.
* Trade subscriptions receive [`status`](/streaming/errors#status) frames like
  any other subscription. On `resyncing` there is nothing for you to rebuild —
  it just signals an upstream reconnect, during which fills may have been
  missed; `live` resumes the tape.
