Skip to navigation

Dry Run

View as Markdown

Validate an order without placing it.

Available to: All authenticated users

Environments: Demo, Live

Rate Limit: 500 requests per hour, 1-second back-off, counts all requests

Submit one or more orders (up to four) for validation against the account’s pre-trade risk settings without actually placing them. The response includes a rejectReason if the batch would be rejected, so you can surface issues to the trader before they submit a real order.

Use this to check whether an order would pass margin requirements, position limits, and other risk checks before committing to a live trade.

The optional extraPreTradeRisk field lets you apply additional risk constraints beyond the account’s default settings during validation.

Common Failure Scenarios

  • The account does not exist (returns HTTP 404)
  • The caller doesn’t have access to the account (returns HTTP 401)
  • The request contains more than four orders
  • Invalid contractId in one or more orders

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
accountIdlongRequired
orderslist of objectsRequired
extraPreTradeRiskobjectOptional

Response

DryRunResponse
errorTextstringOptional<=8192 characters

Non-empty if the request failed

rejectReasonenumOptional
AccountClosed, AdvancedTrailingStopUnsupported, AnotherCommandPending, BackMonthProhibited, ExecutionProviderNotConfigured, ExecutionProviderUnavailable, HomeStateRestricted, InvalidContract, InvalidPrice, KeyInformationDocumentRequired, LiquidationOnly, LiquidationOnlyBeforeExpiration, MaxOrderQtyIsNotSpecified, MaxOrderQtyLimitReached, MaxPosLimitMisconfigured, MaxPosLimitReached, MaxTotalPosLimitReached, MinTradeDurationNotElapsed, MultipleAccountPlanRequired, NoQuote, NotEnoughLiquidity, OtherExecutionRelated, ParentRejected, RiskCheckTimeout, SSFNFAComplianceRequired, SSFNFAComplianceRequiredJointOnly, SSFRiskDisclosureAcknowledgmentRequired, SessionClosed, Success, TooLate, TradingLocked, TrailingStopNonOrderQtyModify, Unauthorized, UnknownReason, Unsupported
commentstringOptional<=8192 characters
detailsobjectOptional
feesobjectOptional