Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

historicalOrders

Limit and market order history. The Order History Limit / Market tab uses this type and omits orderTypes. Switch to TP/SL, trigger, or TWAP by changing type — see historicalTpslOrders, historicalTriggerOrders, and twapHistory.

Look up one row by id with orderDetails.

Include outcome in accountType to return Outcome orders. For currently resting Outcome orders, prefer outcomeFrontendOpenOrders, whose rows are enriched with event and market display metadata.

POST/infotype historicalOrders

Render the Order History tab (limit / market orders).paged { data, hasMore, total? }

Request body
typestringrequired

Must be `historicalOrders`.

"historicalOrders"
userstring · addressrequired

Account to query. No auth — the body `user` is the subject.

accountTypestring[]optional

Instrument tab: `["perp"]`, `["outcome"]`, or both (`perps` is accepted as an alias).

coinstringoptional

Single instrument — a name (`BTC`, `BTC-USDC`) or the numeric id from `perpMeta`. Prefer this over `contract` for one market.

contractstringoptional

`active` = instruments where this user currently has an open perps position (`szi ≠ 0`). Empty list when there is no position. Do not combine with `coin`.

"all""active"
endTimeMsinteger · uint64optional

Inclusive window end, Unix milliseconds. Alias: `endTime`.

limitinteger · int64optional

Page size. Default `300`; max `2000` (export). Values above 2000 are clamped. `<= 0` is rejected.

offsetinteger · int64optional

Skip this many newest-first rows. Omit or `0` for the first page; page N is `(N - 1) * limit`. Max `200000`. Alias: `from` on some types.

orderTypesstring[]optional

Omit on the default Order History tab. Pass `["Limit"]` or `["Market"]` only to restrict.

sidestringoptional

Request filter uses `Buy` / `Sell`. Response `side` is usually `B` / `A`.

"Buy""Sell"
startTimeMsinteger · uint64optional

Inclusive window start, Unix milliseconds. Alias: `startTime`.

Request example
curl -X POST https://rpc.txflow-testnet.xyz/info \
  -H "Content-Type: application/json" \
  -H "x-api-version: 2026-08-16" \
  -d '{
  "type": "historicalOrders",
  "user": "0x0000000000000000000000000000000000000001",
  "offset": 0,
  "limit": 20
}'
Try it
POST https://rpc.txflow-testnet.xyz/info
Response 200
codeinteger

`0` on success.

dataobject
dataHistoricalOrder[]

Newest-first rows for this page.

hasMoreboolean

`true` when more rows exist after this page. Prefer this over guessing from a missing `total`.

totalinteger · uint64

Omitted when the count is unknown.

successboolean
Response example
{
  "success": true,
  "code": 0,
  "data": {
    "data": [
      {
        "order": {
          "coin": "BTC",
          "symbol": "BTC-USDC",
          "side": "B",
          "limitPx": "65000.0",
          "sz": "0.01",
          "oid": 123456,
          "timestamp": 1720000000000,
          "triggerCondition": "",
          "isTrigger": false,
          "triggerPx": "0",
          "children": [
            ""
          ],
          "isPositionTpsl": false,
          "reduceOnly": false,
          "dir": "Open Long",
          "orderType": "Limit",
          "origSz": "0.01",
          "tif": "Gtc",
          "cloid": "my-order-001",
          "avgFillPrice": "65010.5",
          "positionMode": "OneWay",
          "marginMode": "cross",
          "leverage": 10,
          "pnl": "12.5",
          "entryPrice": "64000.0",
          "roe": "1.95",
          "fee": "0.02",
          "filledAmount": "0.01",
          "cancelSource": "UserCanceled",
          "status": "filled",
          "instrumentId": 1,
          "instrumentType": "perps",
          "marketType": "perps"
        },
        "status": "filled",
        "statusTimestamp": 1720000000000
      }
    ],
    "hasMore": true,
    "total": 1337
  }
}