> For the complete documentation index, see [llms.txt](https://noodles-finance.gitbook.io/docs.noodles.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://noodles-finance.gitbook.io/docs.noodles.fi/dex-pools/pool-trade-event.md).

# Pool Trade Event

Retrieve the trading history of a specific liquidity pool, with pagination support.

***

## **Endpoint**

```
GET /api/v1/partner/pool/event/trade
```

***

## **Request Parameters**

| Name              | Type   | Required | Description                                                                                                         |
| ----------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `pool_address`    | string | No       | The address of the liquidity pool.                                                                                  |
| `protocols`       | string | No       | Comma-separated list of protocol identifiers (e.g., `cetus-clmm,aftermath-cpmm`). Maximum 20 protocols per request. |
| `limit`           | int    | No       | Number of records to return (default: 20, max: see backend config).                                                 |
| `desc`            | bool   | No       | Fetch order: `true` for descending (default), `false` for ascending.                                                |
| `cursor`          | int64  | No       | Cursor for pagination.                                                                                              |
| `timestamp`       | int64  | No       | **Deprecated:** Timestamp for pagination.                                                                           |
| `from`            | int64  | No       | Start time filter (Unix millisecond timestamp). Must be used with `to`.                                             |
| `to`              | int64  | No       | End time filter (Unix millisecond timestamp). Must be used with `from`.                                             |
| `from_checkpoint` | int64  | No       | Start checkpoint filter. Must be used with `to_checkpoint`.                                                         |
| `to_checkpoint`   | int64  | No       | End checkpoint filter. Must be used with `from_checkpoint`.                                                         |

#### List of Supported Protocols

See [Pool Data Supported Protocol](https://github.com/NoodlesFi/docs/blob/main/api/supported-protocols.md#pool-data-supported-protocol) for the complete list of protocol identifiers and their names.

**Pagination Notes:**

* If `desc=false`, `cursor` must be provided.
* If `desc=true`, `cursor` can be omitted for the first page.
* If you want to fetch the latest events, you can omit `cursor`, just provide `pool_address` and `limit`.
* If you want to fetch the next page, you must provide `cursor`.
* If you want to fetch the previous page, you must provide `cursor` with `desc=false`.

**Filter Notes:**

* **Time Range**: Both `from` and `to` must be provided together. Maximum range is 60 days.
* **Checkpoint Range**: Both `from_checkpoint` and `to_checkpoint` must be provided together. Maximum range is 2 million checkpoints.
* Time and checkpoint filters can be used independently or together with other parameters.

***

## **Headers**

| Header      | Required | Description                |
| ----------- | -------- | -------------------------- |
| `x-api-key` | No       | API key for authorization. |

***

## **cURL Examples**

### Get Trade Events

```bash
curl --location 'https://api.noodles.fi/api/v1/partner/pool/event/trade?pool_address=0x682f4b17874ec47723bb527cf21e18b630eba0699d10781740cd0a7964dc6b19&cursor=865526449' \
--header 'x-api-key: YOUR_API_KEY'
```

### Filter by Time Range

```bash
curl --location 'https://api.noodles.fi/api/v1/partner/pool/event/trade?pool_address=0x682f4b17874ec47723bb527cf21e18b630eba0699d10781740cd0a7964dc6b19&from=1765118000000&to=1765120000000&limit=20' \
--header 'x-api-key: YOUR_API_KEY'
```

### Filter by Checkpoint Range

```bash
curl --location 'https://api.noodles.fi/api/v1/partner/pool/event/trade?pool_address=0x682f4b17874ec47723bb527cf21e18b630eba0699d10781740cd0a7964dc6b19&from_checkpoint=1000000&to_checkpoint=1050000&limit=20' \
--header 'x-api-key: YOUR_API_KEY'
```

### Filter by Protocols

```bash
curl --location 'https://api.noodles.fi/api/v1/partner/pool/event/trade?protocols=cetus-clmm,aftermath-cpmm,bluefin-clmm&limit=20' \
--header 'x-api-key: YOUR_API_KEY'
```

### Filter by Protocols with Time Range

```bash
curl --location 'https://api.noodles.fi/api/v1/partner/pool/event/trade?protocols=cetus-clmm,aftermath-cpmm&from=1765118000000&to=1765120000000&limit=20' \
--header 'x-api-key: YOUR_API_KEY'
```

***

## **Response**

### Fields

| Field        | Type     | Nullable | Description                         |
| ------------ | -------- | -------- | ----------------------------------- |
| `code`       | `number` | No       | HTTP status code (200 for success). |
| `message`    | `string` | No       | Status message.                     |
| `data`       | `array`  | No       | Array of trade history objects.     |
| `pagination` | `object` | No       | Pagination info for next page.      |

#### Trade History Object

| Field           | Type   | Nullable | Description                       |
| --------------- | ------ | -------- | --------------------------------- |
| `id`            | int64  | No       | Unique trade event ID.            |
| `timestamp`     | int64  | No       | Event timestamp (ms since epoch). |
| `action`        | string | No       | Event type (e.g., `trade`).       |
| `pool_address`  | string | No       | Pool address.                     |
| `coin_a_type`   | string | No       | Coin A type.                      |
| `coin_b_type`   | string | No       | Coin B type.                      |
| `coin_a_symbol` | string | No       | Coin A symbol.                    |
| `coin_b_symbol` | string | No       | Coin B symbol.                    |
| `price`         | float  | No       | Trade price.                      |
| `amount_a`      | float  | No       | Amount of coin A.                 |
| `amount_b`      | float  | No       | Amount of coin B.                 |
| `amount_a_usd`  | float  | No       | USD value of amount A.            |
| `amount_b_usd`  | float  | No       | USD value of amount B.            |
| `a_to_b`        | bool   | No       | Trade direction: true if A to B.  |
| `tx_digest`     | string | No       | Transaction digest.               |
| `sender`        | string | No       | Sender address.                   |
| `source`        | string | Yes      | Source DEX name (may be null).    |

#### Pagination Object

| Field            | Type  | Nullable | Description                              |
| ---------------- | ----- | -------- | ---------------------------------------- |
| `last_cursor`    | int64 | Yes      | Cursor for next page.                    |
| `last_timestamp` | int64 | Yes      | **Deprecated:** Timestamp for next page. |
| `limit`          | int64 | Yes      | Page size.                               |

### Success Response

```json
{
    "code": 200,
    "message": "OK",
    "data": [
        {
            "id": 860989488,
            "timestamp": 1748401534150,
            "action": "trade",
            "pool_address": "0x682f4b17874ec47723bb527cf21e18b630eba0699d10781740cd0a7964dc6b19",
            "coin_a_type": "0xe1b45a0e641b9955a20aa0ad1c1f4ad86aad8afb07296d4085e349a50e90bdca::blue::BLUE",
            "coin_b_type": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
            "coin_a_symbol": "BLUE",
            "coin_b_symbol": "USDC",
            "price": 0.1304020748591467,
            "amount_a": 7670.834463949,
            "amount_b": 1000.29273,
            "amount_a_usd": 1000.29273,
            "amount_b_usd": 1000.29273,
            "a_to_b": true,
            "tx_digest": "65Xm7arTdMzbSP45pXiNb4GmVo2QVQuR4KvkBFMe1Amv",
            "sender": "9931830efcb4efafbe635b3a9335bed737f2ec0ee84a181f46068aaba3fcd0f8",
            "source": "aftermath-aggregator"
        }
    ],
    "pagination": {
        "last_cursor": 860989488,
        "last_timestamp": 1748401534150,
        "limit": 20
    }
}
```

### Response when no data is available

```json
{
    "code": 200,
    "message": "OK",
    "data": [],
    "pagination": {
        "last_cursor": null,
        "last_timestamp": null,
        "limit": 20
    }
}
```

***

> **See also:** [Environment Setup](/docs.noodles.fi/environment-setup/environment.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://noodles-finance.gitbook.io/docs.noodles.fi/dex-pools/pool-trade-event.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
