MT5 — Orders
Place an order
POST /api/external/instances/{accountId}/orders
| Field | Type | Required | Notes |
|---|---|---|---|
symbol | string | ✅ | e.g. EURUSD |
type | enum | ✅ | 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 |
volume | number | ✅ | Lots |
price | number | Required for limit/stop orders | |
sl | number | Stop-loss price | |
tp | number | Take-profit price | |
deviation | integer | Max slippage in points, 0 or more. Omitted uses 50 | |
comment | string | Order 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"