Skip to main content

Position by User+Symbol

GET /v1/positions/{user_id}/{symbol}

Read a single position row by user + symbol.

Dev-only. This user-scoped route only answers when the gateway runs with DEV_TOOLS_ENABLED=true (or PERP_DEV_TOOLS_ENABLED=true); otherwise it returns 403 user-scoped account routes are disabled; use exchange session routes. It takes no authentication. The session-scoped equivalent is GET /v1/positions/me/{symbol} with Authorization: Bearer <session_token> (same response shape).

Request

GET /v1/positions/{user_id}/{symbol}

user_id is a UUID.

Response — 200

{
"user_id": "5cfb031b593644679533cd2df576dbb8",
"symbol": "BTC-PERP",
"qty": "0.001",
"avg_price": "76500.00",
"realized_pnl": "0.5234"
}

user_id is returned as 32 hex chars (no hyphens). If the user has no position, all numeric fields are "0". Ledger-side failures surface as 500.