↑ ↓ move · Enter open · Esc close

REST API / Signals / Arbitrage

Arbitrage

Cross-platform arbitrage opportunities. Buying YES on one platform and NO on another guarantees a risk-free profit after fees.

GET/v2/arb

roi_pct is net of fees but each leg's fee_usd is a per-contract taker fee at qty=1 - fees do not scale linearly, so compute net profit at your own size with the per-platform formulas (Q = contracts, P = price 0–1). Kalshi: fee = ceil(0.07 · Q · P · (1−P)) rounded up to the cent. Polymarket: fee = ceil(mult · Q · P · (1−P)) rounded up to the mill, where mult defaults to 0.05 (per-leg fee_usd uses this default). Polymarket US: fee = ceil(Θ · Q · P · (1−P)) to the cent, where Θ is the market's fee coefficient and defaults to 0.06. Opinion: fee = ceil(Q · P · (1−P)) to the cent. Predict.fun: fee = ceil((bps/10000) · Q · P) to the cent, bps defaults to 200 (2%). ProphetX: fee = 0.02 · Q · (1−P). PredictIt charges no entry fee but takes 10% of net profit on withdrawal - this is an exit fee folded into roi_pct, not into fee_usd.

Parameters

min_roifloat

Minimum ROI percentage to include. Default: 0 (no minimum).

platformsstring

Filter to specific platform pair, e.g. polymarket,kalshi. Accepts kalshi, polymarket, polymarket_us, predictit, prophetx, opinion, predictfun, novig.

limitinteger

Default: 20, max: 100.

Response

as_ofstring

Server timestamp of the response (ISO 8601).

delay_secondsinteger

Signal delay in seconds applied to the response.

countinteger

Number of opportunities returned.

opportunitiesobject[]

Current arbitrage opportunities.

Show 9 fields
group_idinteger

Match group ID.

group_titlestring

Human-readable group title.

event_datestring

Event date.

event_typestring

Event category.

roi_pctnumber

Net-of-fees return on investment as a true percent (e.g. 5.49 means 5.49%). Fees deducted are the per-leg entry fees plus, for any PredictIt leg, its expected 10% win fee.

total_costnumber

Total cost to execute (YES price + NO price).

max_wager_usdnumber

Maximum executable wager in USD - the total cost of the largest equal-contract pair fillable against current book depth on both legs.

detected_atstring

When this opportunity was detected (ISO 8601).

legsobject[]

The two legs of the arbitrage trade.

Show 7 fields
sidestring

"yes" or "no".

platformstring

Platform for this leg.

market_idstring

Market ID on the platform.

source_urlstring

Direct link to the market.

pricenumber

Price for this leg.

liquidity_usdnumber

Available liquidity in USD.

fee_usdnumber

Platform entry (taker) fee for this leg, in USD, for ONE contract at the quoted price. Per-contract basis - fees are not linear in size, so recompute at your own quantity using the formula below. Entry fees only (PredictIt's 10% win fee is a separate exit fee, not included here).

Full API response