MT5 — Orders

Place an order

POST /api/external/instances/{accountId}/orders

FieldTypeRequiredNotes
symbolstring✅e.g. EURUSD
typeenum✅BUY, SELL, BUY_LIMIT, SELL_LIMIT, BUY_STOP, SELL_STOP, BUY_STOP_LIMIT, SELL_STOP_LIMIT, exactly as written. Anything else (sell, Sell, ORDER_TYPE_SELL) is rejected with 400
volumenumber✅Lots
pricenumberRequired for limit/stop orders
slnumberStop-loss price
tpnumberTake-profit price
deviationintegerMax slippage in points, 0 or more. Omitted uses 50
commentstringOrder comment
# Market buy
curl -s -X POST "$ATLAS_BASE_URL/api/external/instances/5012345/orders" \
  -H "Authorization: Bearer $ATLAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "symbol": "EURUSD", "type": "BUY", "volume": 0.10, "sl": 1.08000, "tp": 1.09000 }'

# Pending buy-limit at 1.0800
curl -s -X POST "$ATLAS_BASE_URL/api/external/instances/5012345/orders" \
  -H "Authorization: Bearer $ATLAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "symbol": "EURUSD", "type": "BUY_LIMIT", "volume": 0.10, "price": 1.08000 }'

Response (201):

{
  "success": true,
  "data": { "ticket": 123456789, "symbol": "EURUSD", "type": "BUY", "volume": 0.10, "price": 1.08431, "sl": 1.08000, "tp": 1.09000 }
}

List pending orders

GET /api/external/instances/{accountId}/orders

curl -s "$ATLAS_BASE_URL/api/external/instances/5012345/orders" \
  -H "Authorization: Bearer $ATLAS_API_KEY"

Cancel a pending order

DELETE /api/external/instances/{accountId}/orders/{ticket}

curl -s -X DELETE "$ATLAS_BASE_URL/api/external/instances/5012345/orders/123456789" \
  -H "Authorization: Bearer $ATLAS_API_KEY"