---
title: "Query executed order deals"
method: POST
path: "/api/v4/trade-account/order"
tags: ["Spot Trading"]
---

# Query executed order deals

`POST /api/v4/trade-account/order`

The endpoint retrieves individual trade fills (deals) for a specific order. Each deal represents a partial or full execution of the order against a counterparty. The response includes pagination and returns deal details such as price, amount, fee, and execution role (maker or taker).

<Warning>
Rate limit: 12000 requests/10 sec.
</Warning>

<Note>
This endpoint supports pagination. Use `limit` (default: 50) and `offset` (default: 0) to page through results. The response does not include a `total` field — detect the last page when `records.length < limit`. An empty `records` array means you have paged past the end; receiving exactly `limit` records does not guarantee that another page exists.
</Note>

<Note>
An unknown or not-owned `orderId` is **not** an error. The endpoint always returns HTTP 200 with the paged-list envelope; a non-matching `orderId` simply filters down to an empty `records` array.
</Note>

<Note>
The endpoint can retrieve data not older than 6 months from the current month. For older data, use the Report on the History page. An order older than this window returns an empty `records` array even when the order was filled.
</Note>

<Accordion title="Error Codes">
  - `30` - default validation error code (for example, a missing or malformed `orderId`, or invalid pagination)
</Accordion>

## Request body

- object
  - `orderId` integer, required — Identifier of the order to retrieve deals for.
  - `offset` integer — Number of records to skip. Default: `0`.
  - `limit` integer — Maximum number of records to return. Default: `50`.
  - `request` string, required
  - `nonce` integer, required

## Response `200`

Successful response - returns paginated order deals

- object
  - `records` object[] — Array of deal records
    - `time` number — Unix timestamp of the deal execution, with microsecond precision.
    - `fee` string — Fee charged for the deal, denominated in the asset specified by `feeAsset`.
    - `price` string — Execution price per unit in quote currency.
    - `amount` string — Executed quantity in base (stock) currency.
    - `id` integer — Unique deal identifier assigned by the matching engine.
    - `dealOrderId` integer — Identifier of the counterparty order that matched against the queried order.
    - `clientOrderId` string — Custom order identifier supplied in the original order request. Returns an empty string when not specified.
    - `role` 1 | 2 — Execution role in the deal. `1` = maker (order was resting on the book), `2` = taker (order matched immediately).
    - `deal` string — Total deal value in quote (money) currency. Equals `amount * price`.
    - `feeAsset` string — Currency ticker of the asset used to pay the trading fee.
    - `rpi` boolean — Retail Price Improvement flag. `true` when the deal executed under RPI pricing.
  - `offset` integer — Number of records skipped
  - `limit` integer — Number of records per page

## Other responses

- `400` — Inner validation failed
- `422` — Request validation failed
- `503` — Service temporarily unavailable

---

[API](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4.md) · [All operations](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whitebit/whitebit-private-http-api-v4/revisions/76c9def9942f/schema)
