AArtery

Real-time open positions for an arbitrary wallet, normalized across providers

get/v1/positions

BY-ADDRESS (QF-10888): the queried wallet does NOT need to be bound to your org — built for copy-trading (mirror) pollers watching a leader wallet. Auth is the standard org bearer with `read` scope, same as `/v1/portfolio`. Addresses resolve like `/v1/portfolio`: pass a single `user` for all providers, OR per-provider overrides `hlUser` (native HL EOA) / `pmUser` (PM deposit-wallet) when they differ. Addresses are lowercased server-side; at least one must be present (400 otherwise). Pass `?provider=hyperliquid` (or a comma list) to fan out to specific providers only. **Hyperliquid** — every open perp position from `clearinghouseState.assetPositions[]`, fanned out across the MAIN perp dex AND every builder / HIP-3 dex (dex list via `perpDexs`), so `xyz:…`-style positions are covered. Normalized fields per position: `dex` (`''` = main dex, otherwise the HIP-3 dex name), `coin`, `szi` (signed size — positive long / negative short), `entryPx`, `positionValue`, `unrealizedPnl`, `leverage {type,value}`, `liquidationPx`, `marginUsed`. **Polymarket** — every open outcome-token position from the data-api, normalized to `conditionId`, `outcome`, `size` (shares), `avgPrice`, `currentValue`, `cashPnl`, `title`. Unknown/missing upstream fields degrade to `null`. **Native passthrough** — the top-level `native[]` carries each provider's raw payload verbatim (HL: `clearinghouseStateByDex` keyed `''` = main; PM: the raw positions array), so nothing is lost by the normalization. **Failure semantics** — a provider (or a single HL dex) failing degrades to a `warnings` entry; the call still returns 200 with whatever settled. Mirror pollers should treat a warned provider as "stale, retry", not "flat". **Freshness / polling** — reads are live (`clearinghouseState` is uncached by design; only slow-moving facts like the dex list are briefly cached), so every poll reflects current on-chain state. Keep polling intervals ≥ 5s per watched wallet.

Real-time open positions for an arbitrary wallet, normalized across providers · Artery API Docs