Skip to main content
PATCH
/
v1
/
quote-requests
/
{id}
curl -X PATCH https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "legs": [
      {"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
      {"market_ticker": "KXETH-26JUN01-T3000", "side": "no", "venue": "kalshi"}
    ],
    "bet_amount": 50
  }'
{
  "data": {
    "quote_request": {
      "id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
      "user_id": "did:privy:cm3abc...",
      "version": 2,
      "request_hash": "sha256:a3f4b2c...",
      "book_seq": 0,
      "status": "active",
      "bet_amount": 50,
      "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": "d4e5f6a7-8901-23bc-def4-567890abcdef",
          "event_ticker": "KXETH-26JUN01",
          "market_ticker": "KXETH-26JUN01-T3000",
          "side": "no",
          "venue": "kalshi"
        }
      ],
      "input_legs": [
        {"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
        {"market_ticker": "KXETH-26JUN01-T3000", "side": "no", "venue": "kalshi"}
      ]
    }
  }
}
Update an active quote request with new legs or a different bet amount. This increments the version and recomputes the request_hash, which automatically invalidates all existing market maker quotes. MMs receive the updated request and can submit fresh prices. You can only update a quote request while its status is active.

Authentication

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

Path Parameters

id
string
required
The quote request ID (UUID).

Request Body

Same fields as Create Quote Request.
legs
array
required
Array of 2-5 parlay legs.
bet_amount
number
required
USDC bet amount (1-100).

Response

data
object

Errors

StatusCodeDescription
400VALIDATION_ERRORInvalid body or market validation failed.
401UNAUTHORIZEDMissing or invalid JWT.
403FORBIDDENYou do not own this quote request.
404NOT_FOUNDQuote request not found.
409CONFLICTQuote request is already committed, cancelled, or expired.
curl -X PATCH https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "legs": [
      {"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
      {"market_ticker": "KXETH-26JUN01-T3000", "side": "no", "venue": "kalshi"}
    ],
    "bet_amount": 50
  }'
{
  "data": {
    "quote_request": {
      "id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
      "user_id": "did:privy:cm3abc...",
      "version": 2,
      "request_hash": "sha256:a3f4b2c...",
      "book_seq": 0,
      "status": "active",
      "bet_amount": 50,
      "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": "d4e5f6a7-8901-23bc-def4-567890abcdef",
          "event_ticker": "KXETH-26JUN01",
          "market_ticker": "KXETH-26JUN01-T3000",
          "side": "no",
          "venue": "kalshi"
        }
      ],
      "input_legs": [
        {"market_ticker": "KXBTC-26JUN01-T72500", "side": "yes", "venue": "kalshi"},
        {"market_ticker": "KXETH-26JUN01-T3000", "side": "no", "venue": "kalshi"}
      ]
    }
  }
}