curl -X POST https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40/commit \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expected_version": 3,
"displayed_quote_id": "b2c3d4e5-6789-0abc-def1-234567890abc",
"displayed_quote_book_seq": 5,
"min_payout_odds_seen": 4.0
}'
{
"data": {
"status": "committed",
"quote_request_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"rfq_id": "c3d4e5f6-7890-abcd-ef12-34567890abcd",
"quote_id": "d4e5f6a7-8901-bcde-f234-567890abcdef",
"selected_payout_odds": 4.0,
"confirmation_deadline": "2026-06-01T18:45:35.000Z"
}
}
Quote service
Commit quote request
Lock in the best available quote and create a trade.
POST
/
v1
/
quote-requests
/
{id}
/
commit
curl -X POST https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40/commit \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expected_version": 3,
"displayed_quote_id": "b2c3d4e5-6789-0abc-def1-234567890abc",
"displayed_quote_book_seq": 5,
"min_payout_odds_seen": 4.0
}'
{
"data": {
"status": "committed",
"quote_request_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"rfq_id": "c3d4e5f6-7890-abcd-ef12-34567890abcd",
"quote_id": "d4e5f6a7-8901-bcde-f234-567890abcdef",
"selected_payout_odds": 4.0,
"confirmation_deadline": "2026-06-01T18:45:35.000Z"
}
}
Commit the best available quote on an active quote request. The server revalidates every market, selects the best quote at or above your
A Privy JWT (
min_payout_odds_seen, and creates the trade atomically. The trade is an RFQ with its own rfq_id.
The body ties the commit to exactly what you last saw, so you never fill at a stale price.
After a successful commit, the selected market maker receives a quote:accepted event and must confirm before confirmation_deadline. It may also receive mm_quote:accepted on its private mm:quotes:{mm_id} channel, with the final quote economics and exact exposure legs. Vault settlement follows.
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.
Path parameters
string
required
The quote request ID (UUID).
Request body
integer
required
The quote request
version you are committing against. If the request has changed since, the commit is rejected.string
required
The
id of the best quote you saw at commit time.integer
required
The
book_seq from the SSE event that delivered the displayed quote. It proves your data was up to date.number
required
The minimum payout odds you were shown. Only quotes at or above it are eligible. Must be at least 1.0001.
Response
object
Rejection reasons
A rejected commit carries its reason inerror.details.reason. What each reason means and how to respond is on Errors.
| Reason | Status |
|---|---|
QUOTE_CHANGED | 409 |
MARKET_NOT_LIVE | 409 |
QUOTE_EXPIRED | 409 |
COMMIT_FAILED | 409 |
COMMIT_FAILED_RETRYABLE | 503 |
mm_confirmation_timeout | 409 |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Missing or invalid commit fields. |
| 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 | Commit rejected. See Rejection reasons. |
| 503 | SERVICE_UNAVAILABLE | Transient failure. Retry after a short delay. |
curl -X POST https://api.totalis.trade/v1/quote-requests/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40/commit \
-H "X-API-Key: $TOTALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expected_version": 3,
"displayed_quote_id": "b2c3d4e5-6789-0abc-def1-234567890abc",
"displayed_quote_book_seq": 5,
"min_payout_odds_seen": 4.0
}'
{
"data": {
"status": "committed",
"quote_request_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"rfq_id": "c3d4e5f6-7890-abcd-ef12-34567890abcd",
"quote_id": "d4e5f6a7-8901-bcde-f234-567890abcdef",
"selected_payout_odds": 4.0,
"confirmation_deadline": "2026-06-01T18:45:35.000Z"
}
}
Was this page helpful?

