At a glance
- 2 to 5 legs, 1 to 100 USDC per bet, payout odds between 1.0001 and 1000.
- Two fees, both 1%: a taker fee on the bet, and a profit fee on the winner’s profit at settlement. A 25 USDC bet at 4.0 odds pays 98.2575 (98.26 rounded) if every leg wins.
- Odds apply to the net stake after the taker fee, never to the gross bet.
- Every expiring object carries its own timestamp. Honor it over any default on this page.
Parlay construction
Correlated legs are rejected. To avoid the rejection, read each market’s
exclusion_keys from
List markets and check for overlap before you create the request.
Timing
If the maker misses the confirmation window, the commit returns
409 with reason
mm_confirmation_timeout and the maker’s id in failed_mm_id. Nothing moves and your quote request
stays open, so you can commit the next best quote, or leave that maker out with exclude_mm_ids.
Rate limits
Each route draws from one of three buckets.
The exact route prefixes:
- Public:
/markets*,/v1/markets*,/referral*. - Quote service:
/v1/quote-requests*,/v1/cashout-requests*,/v1/mm/quote-requests*,/v1/mm/cashout-requests*. - Authenticated: everything else under
/v1/*, plus/app/*,/rfqs*,/parlay-shares*, and the flat/mm/quotes*and/mm/positions*aliases. They all draw down the same 300, including the maker reads at/v1/mm/quotesand/v1/mm/positions.
When you size a client:
- Market reads and quote service calls do not draw down your authenticated budget.
- Sending an API key to a public read does not raise its limit. Those routes never resolve the key.
- Per-IP buckets count the source IP, not the key. A market maker fleet behind one NAT shares one 100 / minute market-read budget and one quote service budget across every process and key.
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. A
429 carries a Retry-After header, in seconds. Main API routes also put it in error.retry_after;
quote service routes send only the header. See Errors.
X-RateLimit-Limit reports the ceiling that applied, not the bucket. Two routes can both report
100 from different buckets. Watch X-RateLimit-Remaining to tell them apart.Fees
Totalis charges two fees, at different times and on different bases.
The taker fee comes off first. Odds apply to what remains, never to your gross bet.


The fee rate is fixed on the position when it is created. Settlement uses that rate, even if the
rate changes while the position is live.

