Skip to main content
GET
/
v1
/
positions
curl
ADDR=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
curl "https://api.testnet.arcus.xyz/v1/positions?address=${ADDR}"
{
  "positions": {}
}

Query Parameters

address
string
required

Master Ethereum address for this API key (must match address from POST /createApiKey for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.

20-byte EVM address as hex: optional 0x or 0X prefix and exactly 40 hexadecimal digits. API responses normalize to lowercase af after 0x.

Pattern: ^(0x|0X)?[0-9a-fA-F]{40}$

Response

List of positions.

positions
object
required

Open positions keyed by marketId (integer; 1=BTC-USD, 2=ETH-USD, etc). JSON keys are stringified integers. Always present — an account with no open positions returns an empty object {}. Same shape as Account.positions and the accounts channel snapshot, so a single shape works across REST GET /positions, REST GET /account, and the accounts / positions WebSocket snapshots. Streaming PositionUpdate frames keep their array shape — they're a different schema (one event per frame).