Skip to main content
GET
Get API public v1 live positioning by entry by coin

Authorizations

X-API-Key
string
header
required

Create an API key at https://developers.coinversa.ai/keys. REST limits are shared across keys by account; access uses the effective tier of the presented key.

Path Parameters

coin
string
required

Market symbol, e.g. BTC or xyz:GOLD. Case and surrounding whitespace are normalized; the body echoes the canonical spelling.

Query Parameters

minRecentSharpe
number<double>

Optional inclusive minimum stored annualized realized-PnL Sharpe over 30 completed UTC days (refreshed hourly). Finite values only, including zero and negatives. Undefined/unpopulated scores are excluded when set. Fees, funding and unrealized PnL are excluded; this is not equity-return Sharpe. Applied with minTotalSharpe using AND, before limits and aggregation.

minTotalSharpe
number<double>

Optional inclusive minimum stored annualized realized-PnL Sharpe from first available daily history through yesterday UTC (refreshed daily). Finite values only, including zero and negatives. Undefined/unpopulated scores are excluded when set. Uses the current wallet score, not a historical score. Applied with minRecentSharpe using AND; omitted thresholds do not filter.

tierType
enum<string>
default:pnl

Cohort axis: pnl (all-time realized PnL tiers; money_printer = Apex, exit_liquidity = The Crowd), pnl_recent (the same slugs over the wallet's last 30 days of PnL — Apex by recent PnL is who is winning now; traders.pnl_tier_recent, refreshed hourly) or size (lifetime traded-volume tiers). Tiers are the wallet's CURRENT label (tierAssignment current).

Available options:
pnl,
pnl_recent,
size
buckets
integer<int32>
default:60

Number of equal-width entry-price bins across the range.

Required range: 1 <= x <= 200
range
integer<int32>
default:30

Percentage distance below and above the reference mark covered by the bins; 30 means mark x 0.7 .. mark x 1.3. Priced positions whose entry is outside are summed in outsideRange and still count in cohorts and totals.

Required range: 1 <= x <= 100

Response

OK

binSize
number<double>
required

Width of one bin, USD.

bins
object[] | null
required

Ascending price bins; empty when there are no positions or no mark.

cohortBasis
string
required

Human label of the axis: all_time_pnl, recent_30d_pnl or lifetime_volume.

cohorts
object[] | null
required

One row per (tier, side) with any open notional, in tier order (most profitable or largest first), long before short. Market-wide, not limited to the bin range.

coin
string
required

Canonical market symbol.

coverage
object
required
long
object
required
markAsOf
integer<int64>
required

When the reference mark was observed, Unix ms: the feed's fetch time (live_mark) or the row's updated_at (newest_position). Zero when unknown: no mark, or weighted_fallback (which only runs when no row with a mark carries a time).

markDivergencePct
number<double> | null
required

(markPx - storedMark) / storedMark x 100 when both exist, else null. Above 1 percent in absolute value the stored notionals and liquidation distances are noticeably stale; a note says so.

markMethod
string
required

live_mark: Hyperliquid's current mark via the API's cached metaAndAssetCtxs client (preferred when it is at most 60 s old and not older than the newest stored row); newest_position: the mark stored on the most recently flushed row (ties broken by larger notional), used when the feed is unavailable; weighted_fallback: notional-weighted stored mark when no dated row has one; none: no mark.

markPx
number<double> | null
required

Reference mark, USD per unit, used for the bin range, in-profit/underwater/flat and near-liquidation: the venue's live mark when the feed answered (markMethod live_mark), else a mark stored on a position row. null when neither exists (then bins are empty and every profit split is unknown).

markSource
string
required

Which feed or table the reference mark came from.

nearLiqPct
number<double>
required

The distance, in percent of mark, that defines nearLiqNotional.

notes
string[] | null
required

Caveats the chart should label: snapshot not history, mixed observation times, unpriced and untiered positions.

rangeHigh
number<double>
required

Highest entry price covered by the bins, USD.

rangeLow
number<double>
required

Lowest entry price covered by the bins, USD.

short
object
required
source
object
required
storedMark
number<double> | null
required

The mark the position rows themselves carry (newest_position or weighted_fallback over stored marks), USD per unit; null when none. Shown so clients can see how stale the stored book is against the reference.

storedMarkAsOf
integer<int64>
required

updated_at of the row the stored mark came from, Unix ms; zero when unknown.

tierType
string
required

Cohort axis used: pnl, pnl_recent or size.

tierWindowDays
integer<int32> | null
required

Rolling window the tier labels are computed over, days; null for all-time axes (pnl, size).

$schema
string<uri>
read-only

A URL to the JSON Schema for this object.

Example:

"https://api.coinversa.ai/schemas/PositioningByEntryBody.json"