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

# List market trades

> Read finalized fills and obtain the market WebSocket cursor.

<Info>The response below was observed for WETHUSDC on mainnet on 17 October 2026. Trades and replay cuts change as new blocks finalize; query the selected server for current state.</Info>

Each item represents one fill from the taker perspective. The stable fill
identity is `(marketAddress, tradeId, recordIdx)`.

<ParamField path="marketAddress" type="string" required>
  Lowercase 20-byte market contract address.
</ParamField>

<ParamField query="limit" type="integer" default="100">
  Page size from `1` through `1000`.
</ParamField>

<ParamField query="cursor" type="string">
  Opaque exclusive continuation cursor from `pagination.nextCursor`.
</ParamField>

<ParamField query="from" type="integer">
  Inclusive Unix time in seconds.
</ParamField>

<ParamField query="to" type="integer">
  Inclusive Unix time in seconds. When both bounds are present, `to` must be
  greater than `from`.
</ParamField>

<ResponseField name="feedEpoch" type="integer | null" required>
  Feed epoch containing `marketSeq`.
</ResponseField>

<ResponseField name="marketSeq" type="string | null" required>
  Finalized market sequence covered by the materialized response.
</ResponseField>

<ResponseField name="data" type="array" required>
  Trade fills ordered newest first by block timestamp, block number,
  transaction index, log index, and record index.
</ResponseField>

<ResponseField name="pagination.nextCursor" type="string | null" required>
  Opaque continuation cursor, or `null` when no continuation is available.
</ResponseField>

`price` is an integer in market price precision (pp). `filledSize` and `remainingSize` use the market's native size
precision. `isBuy=true` means the taker bought the base token. `blockTimestamp` is
Unix time in seconds.

When both cursor fields are non-null, install this page and subscribe to
`trades@f` with the same `feedEpoch` and `marketSeq`.

<ResponseExample>
  ```json 200 theme={null}
  {
    "feedEpoch": 0,
    "marketSeq": null,
    "data": [],
    "pagination": {
      "nextCursor": null
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml api/data-source/openapi.yaml GET /api/v1/markets/{marketAddress}/trades
openapi: 3.1.0
info:
  title: Kuru Data Source API
  version: 1.0.0
servers:
  - url: https://api.mainnet.kuru.io
    description: Monad mainnet (default)
  - url: https://api.testnet.kuru.io
    description: Monad testnet
security: []
paths:
  /api/v1/markets/{marketAddress}/trades:
    get:
      summary: Get market trades
      operationId: getMarketTrades
      parameters:
        - name: marketAddress
          in: path
          required: true
          schema:
            type: string
            example: '0x8121ee960066e4344a213f9ac7502395502aee7a'
        - name: limit
          in: query
          schema:
            type: integer
        - name: cursor
          in: query
          schema:
            type: string
        - name: from
          in: query
          schema:
            type: integer
        - name: to
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: Finalized trades

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.