Orders

Get the authenticated user's current live position exposure

Returns the caller's current positions from the lowest-latency source available, which is always at least as fresh as the synchronous fill path. This is the RECOMMENDED source of truth for "what do I currently hold" while actively trading — prefer it over any aggregate that may lag behind live fills. Three buckets, each token appears in at most one:

  • positions — open positions (net_size != 0), with available_to_sell (net size minus outstanding sell reservations) and reserved.
  • closed_token_ids — tokens the store just folded flat (within a 10-minute window); callers may use presence here to zero any stale cached position for that token.
  • resolved — held tokens whose MARKET HAS RESOLVED, split out so a resolved loser is never confused with an open position; redeemable is true for a won (claimable) outcome, false for a loss.

Absence from every bucket means the store has no current opinion on that token (neither "open" nor "just closed") — leave any previously-cached value as-is. Central fallback. On a deployment without a cell-local position store the response is built from central Postgres instead. In that mode available_to_sell always equals net_size, reserved is always 0, and closed_token_ids is always empty — the reservation view is a regional-node feature. Auth & scope. Requires position:read. Takes no query, path or body parameters.

get/positions/exposure

Request

  • Base URL
    https://execution.kairos.trade
  • Auth
    API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret

Response

Current position exposure.

closed_token_idsstring[] required

Token ids the store positively holds at net_size == 0 (folded flat, e.g. a just-settled sell). Absence from both this list and positions/resolved means "no current opinion." Carries no venue, so on a cell serving several it cannot say which venue's position to retire — read closed instead.

Example response

{
  "positions": [
    {
      "net_size": "100",
      "avg_entry_price_bps": 5200
    }
  ],
  "closed": [
    {
      "exchange_id": "hyperliquid"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.