Skip to main content
POST
4 October 2026 upgrade: the account-local and aggregate margin guidance below applies after the scheduled upgrade. Public responses retain the margin object; they do not expose the SDK’s internal metrics and aggregate objects.

Query Targets

POST /account is unsigned. Current-state query types accept a master or sub-account pubkey as user. History queries use the same endpoint and may also query a physical isolated-account pubkey directly. Isolated accounts are not current-state query targets. An isolated isoPubkey is supported only by the paginated history types. Isolated accounts are managed via the i flag on order actions (see Isolated Margin); their pubkeys also appear inline on parent rows and can be used as to in margin transfer top-ups. To enumerate sub-accounts on a master, read subAccounts[] from its fullAccount response.

Request Examples


Response Schemas

Current-state responses are an array of externally tagged objects with fullAccount, openOrder, or feeTier. History types return a plain typed {data, page} object.

History Queries

Use fills, positions, fundingHistory, orderHistory, activityHistory, or riskHistory as the request type.
  • limit is optional, defaults to 5000, and accepts 1–5000.
  • startSlot and endSlot are optional inclusive bounds on the first page.
  • Continue with the returned cursor. A cursor request may change limit but cannot include slot bounds.
History responses use this envelope:
Rows are ordered newest-first by slot and sequence. Always continue with nextCursor; do not construct cursors from timestamps or row fields. Fill rows include tradeId in "<slot>:<event-sequence>" form. REST history and account WebSocket views of the same execution share the same value. Treat it as an opaque network-local reconciliation key. positions history rows may include averageEntryTime when available.

Full Account Response

For type: "fullAccount". Returns account state including margin, positions, open orders, and leverage settings. The example below shows selected fields.
Account top-level fields:
  • kind - Account kind string. Current-state query responses use MasterEOA or SubAccount.
  • parent - Parent master pubkey for sub-accounts; omitted when no parent exists
  • name - Sub-account display name. Present on responses where kind: "SubAccount" (i.e. when you passed the sub-account pubkey as user); omitted on master responses.
  • subAccounts - Children of the master, each {pubkey}. The list contains pubkeys only; query a sub-account directly with type: "fullAccount" to see its name. See Sub-Accounts
  • authorizedAgentWallets - Agent wallets registered on this account that may sign on its behalf. See Manage Agent Wallets
  • builderCodeApprovals - Approved builder-code recipients as {recipient, maxFee}. Builder codes are builder-code fees on the wire; use abc/rbc to manage this list.
  • lockedAmounts - Margin locked while a transfer or withdrawal is in progress, omitted when empty. Each row contains the action hash, symbol, amount, and nanosecond lockedAt timestamp. Locks clear when the operation completes or is no longer pending.

Account-local and aggregate margin

The unprefixed fields inside margin describe the queried account only. When that account has attached isolated accounts, optional agg* fields in the same object describe the account plus those isolated accounts. These totals do not include separate sub-accounts. Do not add the unprefixed values to the agg* values: that would count the parent twice. Illustrative partial response for an account with isolated collateral:
positions and openOrders remain the combined parent-plus-isolated view, with isolated rows identified by iso and isoPubkey. Public margin fields are totalMargin and availableMargin, not totalBalance and availableBalance. Position fields: symbol, size, price, fairPrice, notional, realizedPnl, unrealizedPnl, leverage, liquidationPrice, fees, funding, maintenanceMargin, averageEntryTime, lambda, riskAllocation, iso
  • averageEntryTime - Average entry time in nanoseconds.
  • iso - true if the position belongs to a per-instrument isolated account attached to this master/sub-account; otherwise false
  • isoPubkey - Present only when iso=true; pubkey of the isolated account. Use as to in transfer to top up isolated-account margin. It is valid as user for history queries, but not for current-state queries.
  • protection - Optional attached reduce-only protective orders for this symbol

Open Orders Response

For type: "openOrders". Returns up to 5000 resting orders; each item is an object with key openOrder.
For master/sub accounts, the response also includes per-instrument isolated-account rows (iso=true) belonging to that account tree. Order-state tif values are gtc, ioc, postOnly, postOnlySlide, and postOnlyJoin. The last two correspond to the JSON request values ALO_SLIDE and ALO_JOIN; see Place & Cancel Orders.

Fee Tier Response

For type: "feeTier". Returns the account-only fee-tier quote snapshot. For global fee-state (policy, schedules, settlement totals) use GET /feeState.
Fee Tier Fields:
  • scopeInstrument - Instrument scope resolved for this quote
  • rollingVolume - Account rolling volume in resolved scope window
  • tierIndex - Active tier index (0-based)
  • tierThreshold - Threshold volume of the active tier row
  • makerBps / takerBps - Effective bps at current tier
  • windowDays - Rolling window length in days

Real-time Updates

For real-time account updates, use the WebSocket account stream.

Body

application/json

Unsigned current-state or paginated-history query

type
enum<string>
required

feeTier returns the account-only fee-tier quote; use GET /feeState for global fee policy/schedule snapshots.

Available options:
fullAccount,
openOrders,
feeTier,
fills,
positions,
fundingHistory,
orderHistory,
activityHistory,
riskHistory
user
string
required

Account public key (base58)

Example:

"FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7"

symbol
string

Optional market symbol for feeTier

Example:

"BTC-USD"

limit
integer
default:5000

Optional page size for history queries

Required range: 1 <= x <= 5000
startSlot
integer<int64>

Optional inclusive lower slot bound for the first history page

Required range: x >= 0
endSlot
integer<int64>

Optional inclusive upper slot bound for the first history page

Required range: x >= 0
cursor
string

Opaque history continuation; cannot be combined with slot bounds

Response

Current-state array or complete/default-policy typed history page

fullAccount
object
required

Complete account state with account tree, margin, positions, orders, and leverage settings