Skip to main content
GET
Get user order history

Authorizations

Authorization
string
header
required

Bearer token from Geomi. See Authentication for setup instructions.

Query Parameters

account
string
required

User account address (user query alias is also accepted)

asset_type
enum<string>

Optional asset_type filter ("perp" | "spot"). Omit to UNION both; each row carries an asset_type field for client-side demux. Discriminator carried on DTOs that can mix perp and spot rows (markets, orders, trades, bulk orders, bulk order fills, and WebSocket payloads). Also accepted as a query parameter on REST endpoints that can filter to one product.

Wire format is lowercase ("perp" / "spot") and accepted case-insensitively on the request side via [impl_case_insensitive_deserialize].

Available options:
perp,
spot
limit
integer<int32>
default:10

Page size

Required range: 0 <= x <= 200
offset
integer<int32>
default:0

Page offset

Required range: 0 <= x <= 10000
start_timestamp
integer<int64>
end_timestamp
integer<int64>
sort_key
enum<string>

Sort key for history endpoints

Available options:
timestamp
sort_dir
enum<string>
Available options:
ASC,
DESC
market
string

Filter by one concrete market address.

order_type
string

Filter by order type

status
string

Filter by order status

side
enum<string>

Filter by side Order side filter: buy or sell. Product-independent: a buy is a bid on both venues, whether or not it opens a perp long. For perp orders, maps to the is_buy column; for spot orders, is_bid. For perp trades/funding, maps to action IN ('OpenLong','CloseShort') (buy) or action IN ('CloseLong','OpenShort') (sell); for spot trades, to is_taker_bid resolved against whether the account is the taker or maker.

Available options:
buy,
sell
reduce_only
boolean

Filter by reduce-only flag (perp-only; ignored for spot rows)

Response

Order history retrieved successfully

items
object[]
required

The items in the current page

total_count
integer<int32> | null

The total number of items across all pages. Optional: history endpoints omit this field to avoid expensive COUNT(*) queries.

Required range: x >= 0