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(orPERP_DEV_TOOLS_ENABLED=true); otherwise it returns403user-scoped account routes are disabled; use exchange session routes. It takes no authentication. The session-scoped equivalent isGET /v1/positions/me/{symbol}withAuthorization: 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.