Skip to main content
GET
cURL
Rank markets by net flow from S, A, and B grade traders over a timeframe. Use it to find markets before you know a condition_id.

Read the flows

  • timeframe is 1h, 4h, 24h (default), or 7d. min_grade defaults to B, which includes S, A, and B and excludes unranked traders.
  • platform is polymarket, kalshi, or all (default). direction keeps only YES or NO rows after aggregation.
  • category ignores case. A bucket name such as Basketball matches every provider member that folds into it.
  • sharp_money.net_flow_usd is signed: BUY YES and SELL NO count positive, BUY NO and SELL YES count negative. sharp_money.direction is the sign.
  • sharp_money.whale_trade_count, buy_volume_usd, and sell_volume_usd describe the ranked trades behind the flow.
  • smart_money repeats sharp_money byte for byte. It is deprecated; read sharp_money.
  • Rows sort by absolute net flow, then condition_id. The cursor carries the first page as_of, so a new whale trade does not reorder page 2.
  • The endpoint does not grade resolution events and does not detect insider behavior.

Cache the flows

The response carries an ETag. Send it as If-None-Match to get 304 Not Modified when the ranking is unchanged. Get Market Intel drills into one market. Smart Money Flows is the deprecated alias of this route.

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

timeframe
enum<string>
default:24h

Lookback window for grade-filtered whale flow aggregation.

Available options:
1h,
4h,
24h,
7d
limit
integer
default:20

Page size.

Required range: 1 <= x <= 100
cursor
string

Opaque cursor from previous response's next_cursor. Encodes the first-page as_of timestamp plus the last row's absolute net flow and condition_id.

category
string

Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket.

platform
enum<string>
default:all

Filter by source platform. all is a request-side no-op.

Available options:
polymarket,
kalshi,
all
min_grade
enum<string>
default:B

Minimum latest trader grade included in the flow. Default B means S/A/B only; unranked traders are excluded.

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

Optional post-aggregate flow direction filter.

Available options:
YES,
NO

Response

Ranked market sharp-money flows

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