Move a pending order's price or levels
Keeps the order's ticket. Cancelling and re-placing loses its place in the broker's queue and leaves a window where the order does not exist at all — on a fast market that window is where the move happens.
An omitted field is left alone. Send stopLoss: null to clear a stop; omitting it keeps whatever is there.
Only an order in working can be moved. A filled order is a position — move its stop with /positions/{id}/modify instead.
Authorization
apiKey Authorization: Bearer fx_live_<id>_<secret>.
A key is shown once, at creation. We cannot show it again or recover it for you.
Keys carry an environment (live or test) in the key itself, so a test key pasted into a
production config fails immediately instead of at the worst possible moment.
Scopes are per key. A key without accounts:write can read accounts and nothing else.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/orders/497f6eca-6276-4993-bfeb-53cbbbba6f08/modify" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9", "clientOrderId": null, "symbol": "string", "side": "buy", "type": "market", "intent": "open", "brokerPositionId": null, "volume": null, "stopLoss": null, "takeProfit": null, "state": "accepted", "stateDetail": null, "needsReconciliation": true, "retcode": null, "retcodeText": null, "brokerOrderId": null, "brokerDealId": null, "filledVolume": null, "filledPrice": null, "sentAt": null, "settledAt": null, "reconciledAt": null, "createdAt": "2019-08-24T14:15:22Z" }}Margin required, or profit at a price POST
Opens nothing and is safe to call freely. This is how you find out an order will be refused for margin *before* sending it, rather than collecting a `10019` from the broker. The account must be online: an offline account is refused with 409 `NO_RUNTIME`. A null `value` means the broker would not answer, which is not the same as zero.
Move a position's stop loss or take profit POST
**Send `null` to remove a level.** Omitting the field leaves it unchanged — an omitted field silently clearing a stop is how protection disappears without anybody choosing it. Recorded in the order history with intent `modify`, because widening a stop changes what the account risks and belongs beside the trade it protects.