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 (long) or sell (short). For orders, maps to is_buy column. For trades/funding, maps to action IN ('OpenLong','CloseShort') (buy) or action IN ('CloseLong','OpenShort') (sell).

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