Added
Safe retries for market orders with clientOrderId
November 4th, 2026 by ReadMe API
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
clientOrderIdis provided, the order'srefIdisisv_followed by that value. If you omit it, the platform generates therefIdas before. - A second submission with the same
clientOrderIdreturns409with codeDUPLICATE_ORDERand does not place another order. If a request timed out, callGET /market-orders/{refId}to check what happened instead of resubmitting blindly. - A
clientOrderIdis 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 newclientOrderId. - A
clientOrderIdthat is not a valid UUID returns422with a validation error on theclientOrderIdfield.
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.
