Skip to main content
POST
/
v1
/
quote-requests
curl -X POST https://api.totalis.trade/v1/quote-requests \
  -H "Authorization: Bearer $TOKEN" \
  -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,
      "implied_probability": 0,
      "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 new live quote request. Once created, the request is immediately broadcast to all connected market makers who begin submitting competitive prices in real time. A quote request requires 2-5 legs and a USDC bet amount. Each leg specifies a market ticker, a side (yes or no), and optionally a venue.

Authentication

Bearer token required. Pass your JWT in the Authorization header.
Authorization: Bearer <jwt>

Request Body

legs
array
required
Array of 2-5 parlay legs.
bet_amount
number
required
USDC bet amount. Must be between 1 and 100.

Response

data
object

Errors

StatusCodeDescription
400VALIDATION_ERRORInvalid legs, side, venue, or bet amount. See details.issues for specifics.
400VALIDATION_ERRORMarket validation failed (market not found, expired, or exclusion conflict). See details.leg_errors.
401UNAUTHORIZEDMissing or invalid JWT.
curl -X POST https://api.totalis.trade/v1/quote-requests \
  -H "Authorization: Bearer $TOKEN" \
  -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,
      "implied_probability": 0,
      "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"}
      ]
    }
  }
}