curl -X POST https://api.totalis.trade/v1/quote-requests \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
],
"bet_amount": 25
}'
{
"data": {
"quote_request": {
"id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cm3abc...",
"version": 1,
"request_hash": "sha256:9f86d08...",
"book_seq": 0,
"status": "active",
"bet_amount": 25,
"expires_at": "2026-06-01T18:45:30.000Z",
"legs": [
{
"id": "8ccf2c5d-3a61-4707-93f2-b6f0a0f0c0c6",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T72500",
"side": "yes",
"venue": "kalshi"
},
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T73000",
"side": "no",
"venue": "kalshi"
}
],
"input_legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
]
}
}
}
Quote service
Create quote request
Create a new quote request for a multi-leg parlay.
POST
/
v1
/
quote-requests
curl -X POST https://api.totalis.trade/v1/quote-requests \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
],
"bet_amount": 25
}'
{
"data": {
"quote_request": {
"id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cm3abc...",
"version": 1,
"request_hash": "sha256:9f86d08...",
"book_seq": 0,
"status": "active",
"bet_amount": 25,
"expires_at": "2026-06-01T18:45:30.000Z",
"legs": [
{
"id": "8ccf2c5d-3a61-4707-93f2-b6f0a0f0c0c6",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T72500",
"side": "yes",
"venue": "kalshi"
},
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T73000",
"side": "no",
"venue": "kalshi"
}
],
"input_legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
]
}
}
}
Create a live quote request for a parlay of 2-5 legs. Every connected market maker receives it immediately and starts quoting.
A Privy JWT (
Authentication
Send your API key in theX-API-Key header. The key needs the trading:write scope.
X-API-Key: <your-api-key>
Authorization: Bearer <jwt>) is also accepted. See Authentication.
Request body
array
required
2-5 parlay legs. See Limits and fees.
number
required
Bet amount in USDC, from 1 to 100.
string[]
Up to 50 market maker ids whose quotes you do not want, such as the
failed_mm_id from a commit
that timed out.Response
object
Show data
Show data
object
The created quote request.
Show quote_request
Show quote_request
string
UUID of the quote request.
string
Your user ID.
integer
Request version, starts at
1.string
Hash of the current request parameters.
integer
Quote book sequence number, starts at
0.string
"active"number
Bet amount in USDC.
string
ISO 8601 expiration timestamp.
array
The validated legs, with added metadata.
array
The legs exactly as you submitted them.
Errors
| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid legs, side, venue, or bet amount. See details.issues for specifics. |
| 400 | VALIDATION_ERROR | Market validation failed (market not found, expired, or exclusion conflict). See details.leg_errors. |
| 401 | UNAUTHORIZED | Missing or invalid API key. |
curl -X POST https://api.totalis.trade/v1/quote-requests \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
],
"bet_amount": 25
}'
{
"data": {
"quote_request": {
"id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cm3abc...",
"version": 1,
"request_hash": "sha256:9f86d08...",
"book_seq": 0,
"status": "active",
"bet_amount": 25,
"expires_at": "2026-06-01T18:45:30.000Z",
"legs": [
{
"id": "8ccf2c5d-3a61-4707-93f2-b6f0a0f0c0c6",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T72500",
"side": "yes",
"venue": "kalshi"
},
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"event_ticker": "KXBTC-26JUN01",
"market_ticker": "KXBTC-26JUN01-T73000",
"side": "no",
"venue": "kalshi"
}
],
"input_legs": [
{"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
{"market_ticker": "KXBTC-26JUN01-T73000", "side": "no", "venue": "kalshi"}
]
}
}
}
Was this page helpful?

