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

twapHistory

Finished or cancelled TWAP orders. Child fills are userTwapSliceFills. The live stream is userTwapHistory.

POST/infotype twapHistory

Render the TWAP tab of Order History (finished or cancelled TWAPs).paged { data, hasMore, total? }

Request body
typestringrequired

Must be `twapHistory`.

"twapHistory"
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.

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": "twapHistory",
  "user": "0x0000000000000000000000000000000000000001",
  "offset": 0,
  "limit": 20
}'
Try it
POST https://rpc.txflow-testnet.xyz/info
Response 200
codeinteger

`0` on success.

dataobject
dataTwapHistoryRow[]

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": [
      {
        "time": 1720000000000,
        "twapId": "9001",
        "finishedAt": 1720260000000,
        "status": "finished",
        "failureReason": "",
        "state": {
          "coin": "1",
          "symbol": "BTC-USDC",
          "user": "0x0000000000000000000000000000000000000001",
          "side": "B",
          "sz": 0.1,
          "executedSz": 0.1,
          "executedNtl": 6500,
          "unfilledSz": 0,
          "minutes": 30,
          "reduceOnly": false,
          "randomize": false,
          "timestamp": 1720000000000,
          "interval": 30,
          "marginMode": "Cross",
          "positionMode": "OneWay",
          "leverage": 10
        }
      }
    ],
    "hasMore": true,
    "total": 1337
  }
}