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

# Get Trade History

> Fetch a user's trade history with cursor-based pagination.

# GET /client/trades

Returns the trade history for the authenticated client. Supports filtering by type and game with cursor-based pagination.

**Authentication:** Client Token (`Authorization` header)

## Request

```http theme={null}
GET https://api.assetpay.gg/client/trades?type=deposit&game=730&limit=20
Authorization: CLIENT_TOKEN
```

### Query Parameters

| Parameter | Type   | Default | Description                                                                    |
| --------- | ------ | ------- | ------------------------------------------------------------------------------ |
| `type`    | string | -       | Filter by `"deposit"` or `"withdraw"`                                          |
| `game`    | string | `730`   | Game app ID (`"730"` = CS2, `"252490"` = Rust)                                 |
| `cursor`  | string | -       | Opaque cursor from a previous response's `nextCursor`. Omit on the first page. |
| `limit`   | number | `20`    | Trades per page (min 1, max 100)                                               |

## Response

```json theme={null}
{
  "requestId": "...",
  "success": true,
  "data": {
    "items": [
      {
        "id": "trade-uuid",
        "type": "deposit",
        "source": "client",
        "status": "completed",
        "game": "730",
        "externalId": "dep_123",
        "merchantId": "merchant-uuid",
        "clientUserId": "client-uuid",
        "clientSteamID": "76561198012345678",
        "clientTradeUrl": "https://steamcommunity.com/tradeoffer/new/?partner=...",
        "items": [
          {
            "id": "encoded-item-id",
            "name": "AK-47 | Redline",
            "marketHashName": "AK-47 | Redline (Field-Tested)",
            "offer": {
              "price": 10.75,
              "reference": "ref_abc123",
              "accepted": true
            }
          }
        ],
        "totalPrice": 10.75,
        "preCredit": 8.60,
        "pendingCredit": 2.15,
        "isInstant": true,
        "holdEndDate": "2026-03-11T10:00:00.000Z",
        "createdAt": "2026-03-04T10:00:00.000Z",
        "updatedAt": "2026-03-11T10:00:00.000Z"
      }
    ],
    "nextCursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTAzLTA0VDEwOjAwOjAwLjAwMFoiLCJpZCI6InRyYWRlLXV1aWQifQ"
  }
}
```

### Response Fields

| Field        | Type                               | Description                                                                                                           |
| ------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `items`      | [Trade](/reference/types#trade)\[] | Array of trade objects, newest first                                                                                  |
| `nextCursor` | string \| null                     | Opaque cursor for the next page. Pass it back in the `cursor` query parameter. `null` when there are no more results. |

### Paginating

```typescript theme={null}
let cursor: string | null = null;
do {
  const url = new URL('https://api.assetpay.gg/client/trades');
  url.searchParams.set('type', 'deposit');
  if (cursor) url.searchParams.set('cursor', cursor);
  const res = await fetch(url, { headers: { Authorization: CLIENT_TOKEN } });
  const { data } = await res.json();
  for (const trade of data.items) {
    // process trade
  }
  cursor = data.nextCursor;
} while (cursor);
```

## Rate Limits

| Merchant Status | Limit                |
| --------------- | -------------------- |
| Verified        | 3,000 requests / min |
| Unverified      | 30 requests / min    |
