GET /venue-markets returns three fields describing the venue’s taker fee for
each market. These fields are returned by GET /venue-markets only — the
embedded venueMarkets[] on /venue-events and matchedVenueMarkets[]
entries do not carry them.
What is and isn’t included
These fields carry the venue’s fee only, and only the taker side — every venue below charges makers nothing. They do not include AGG’s own execution costs, such as the builder fee on Polymarket. Those appear infeeBreakdown on GET /orderbook/{venueMarketOutcomeId}/route, which is the authoritative
number for what a trade will actually cost. Use these fields to render indicative
fee-inclusive levels; use feeBreakdown to quote.
Applying the fee
feeBasis: "fill" with feeExponent >= 1
The fee per share is feeRate * (p * (1 - p))^feeExponent.
Polymarket bills buys on the pre-fee quantity (notional / p, not the shares
you receive), so for a buy the correct general form is:
feeExponent = 1, which is by far the common case, that collapses to the
price-linear form:
feeRate: 0 with feeExponent: 1 — the
exponent is an inert placeholder there, since a zero rate gives a zero fee at
any exponent.
feeBasis: "fill" with feeExponent = 0
A flat fraction of notional: fee = feeRate * qty * p. predict.fun works this
way.
feeBasis: "fill_in_game_only"
Same as fill, but the venue charges nothing on fills matched before the
event goes live. Only Novig behaves this way. If you are rendering a pre-game
book, the venue fee is zero. This is a property of the fill, not the order —
a pre-game order still resting when the event goes live pays the fee on
whatever matches after kickoff.
Note that our own quotes charge this fee unconditionally — the router has no
liveness signal — so a pre-game feeBreakdown will be higher than what you
compute here. Novig settles the fill at zero.
feeBasis: "winnings"
Not a cost at execution. The venue takes a cut of your net profit, netted per
market, at settlement. Render it as a payout haircut:
feeBasis: "exit"
Charged only when a position closes. Opening a position is free.
- Selling shares:
fee = feeRate * qty * p, a flat fraction of notional (feeExponentis0). - Holding to settlement on the winning side: the venue keeps
feeRateof the $1 payout.
0.0007 * (s + max(s, 1)), where s is the market deployer’s fee scale (0–10), so 14 bps at scale 1 and up to 140 bps at scale 10. That is the base-tier rate: Hyperliquid’s volume, staking and referral discounts lower what a given trader pays.
Buy route responses report fills[].settlementFee and an estimatedPayout net of those fees. Use that payout to compare routes and show the winning return; totalFilled remains the share count. Hyperliquid quantities are solved as whole shares, including in split routes. Settlement fees do not increase buy funding or bridge amounts.
An absent deployerFeeScale is treated as scale 0 (7 bps). If no usable rate is stored for a market, quotes price it at 140 bps until one is available.
Per-venue reference
Kalshi rounds the computed fee up to the next cent, per order. The rate in
the table above is the unrounded rate — computing
feeRate * p * (1 - p)
without rounding under-states the actual charge, materially on small orders (1
contract at p = 0.5 computes $0.0175; Kalshi charges $0.02, +14%).
Novig was verified 2026-09-07; ProphetX was verified 2026-09-04 (its page
returns 403 to automated fetchers, so it has not been re-fetched since).
Treat each date as an expiry date — venues change these schedules without
notice, and the links above are how you re-check.
Venues that return null
Three venues return null. Two of them have fee curves that a
(rate, exponent) pair cannot express, so a value would be wrong at most
prices:
- Limitless — a piecewise-linear schedule across 12 published anchors, and
the buy and sell curves differ (buy falls from 3.00% to a 0.40% floor as
p → 1; sell peaks at 1.50% atp = 0.50). - Myriad — a tent,
feeBPS(p) = peakBPS * min(p, 1 - p) / 0.5. A parabola cannot express a tent at any exponent.
- Opinion — we believe it charges nothing, but that has never been verified
against Opinion’s published terms. Since
0is a positive claim that the venue charges nothing, we returnnullinstead until someone can cite a source. This is deliberately conservative: you fall back to your own table rather than trusting an unverified zero.
feeBreakdown from the route endpoint.
Parlay and combination contracts
Everything above describes straight contracts. Two venues price multi-leg contracts on an entirely separate schedule:- ProphetX parlays — taker-only, per fill:
F(p) = 0.014 * (1 - p) / (0.19 + p) + 0.004, with per-order rounding and a $0.01 minimum. (source) - Novig combination contracts — a 0.10 taker coefficient on a different
formula,
0.10 * wager * collateral / (wager + collateral). (source)
/venue-markets uses these. They are documented here only so the
straight-contract values above are not mistaken for the venue’s whole fee story.