Added

Safe retries for market orders with clientOrderId

Availability: Sandbox since November 3, 2026 · Production since November 3, 2026

POST /market-orders now accepts an optional clientOrderId (a UUID you generate). Pass it to make a submission safe to retry after a timeout or dropped connection. Existing integrations that omit it are unaffected.

  • When clientOrderId is provided, the order's refId is isv_ followed by that value. If you omit it, the platform generates the refId as before.
  • A second submission with the same clientOrderId returns 409 with code DUPLICATE_ORDER and does not place another order. If a request timed out, call GET /market-orders/{refId} to check what happened instead of resubmitting blindly.
  • A clientOrderId is used up by the first submission that reaches the wallet, even if that order is then rejected. To try again after a rejection, submit a new order with a new clientOrderId.
  • A clientOrderId that is not a valid UUID returns 422 with a validation error on the clientOrderId field.

See Market Orders.

Parlays: if the same parlay confirmation is sent concurrently, only one parlay is placed. The duplicate requests now return 400 with code parlay_already_exists, the same response as confirming an already-confirmed parlay, instead of a 500. Parlay confirmation is already idempotent on the parlayId, so no client-supplied key is added. See Parlays.