Skip to main content
GET
cURL
Current positions across traders or markets. Each row carries the trader, market, current value, and side. It also carries trust-metadata fields for source, freshness, and completeness. You can tell a live provider-backed value from a cached or partial one.
For per-fill history (running amount and average entry price), use Position Timeline. When a value is unavailable from the provider, don’t flatten it to 0. See Trust metadata.

Authorizations

Authorization
string
header
required

API key authentication. Send your key in the Authorization header as Bearer oxi_sk_live_.... Live keys require an active Pro subscription and return live data.

Headers

If-None-Match
string

Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.

Query Parameters

limit
integer
default:20
Required range: 1 <= x <= 100
cursor
string

Pagination cursor from previous response's next_cursor.

min_size
number
default:100

Minimum current position value in USD.

category
string

Exact match against provider-backed market_canonical.category.

min_grade
enum<string>

Minimum trader grade allowlist. A matches S and A; B matches S, A, B; etc.

Available options:
S,
A,
B,
C,
D,
F
side
enum<string>

Filter by the binary outcome side. yes maps to outcome_index=0, no to outcome_index=1.

Available options:
yes,
no

Response

Page of positions

object
string
required
Allowed value: "list"
data
object[]
required
has_more
boolean
required
meta
object
required
next_cursor
string | null
total
integer | null

Total matching rows when the read model exposes a count; absent (or null) when it does not.