> ## Documentation Index
> Fetch the complete documentation index at: https://docs.totalis.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Quote Request

> Update the legs or bet amount on an active quote request.

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

API key required. Pass your API key in the `X-API-Key` header. The key needs the `trading:write` scope.

```
X-API-Key: <your-api-key>
```

A Privy JWT (`Authorization: Bearer <jwt>`) is also accepted — see [Authentication](/guides/authentication).

## Path parameters

<ParamField path="id" type="string" required>
  The quote request ID (UUID).
</ParamField>

## Request body

Same fields as [Create Quote Request](/api-reference/quote-service/create).

<ParamField body="legs" type="array" required>
  Array of 2-5 parlay legs.

  <Expandable title="Leg object">
    <ParamField body="market_ticker" type="string" required>
      The market ticker on the venue.
    </ParamField>

    <ParamField body="side" type="string" required>
      `"yes"` or `"no"`.
    </ParamField>

    <ParamField body="venue" type="string">
      `"kalshi"` (default) or `"polymarket"`.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="bet_amount" type="number" required>
  USDC bet amount (1-100).
</ParamField>

## Response

<ResponseField name="data" type="object">
  <Expandable title="data">
    <ResponseField name="quote_request" type="object">
      The updated quote request with an incremented `version`.
    </ResponseField>
  </Expandable>
</ResponseField>

## Errors

| Status | Code               | Description                                                |
| ------ | ------------------ | ---------------------------------------------------------- |
| 400    | `VALIDATION_ERROR` | Invalid body or market validation failed.                  |
| 401    | `UNAUTHORIZED`     | Missing or invalid API key.                                |
| 403    | `FORBIDDEN`        | You do not own this quote request.                         |
| 404    | `NOT_FOUND`        | Quote request not found.                                   |
| 409    | `CONFLICT`         | Quote request is already committed, cancelled, or expired. |

<RequestExample>
  ```bash theme={null}
  curl -X PATCH https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40 \
    -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": "KXETH-26JUN01-T3000", "side": "no", "venue": "kalshi"}
      ],
      "bet_amount": 50
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "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"}
        ]
      }
    }
  }
  ```
</ResponseExample>
