Skip to main content
GET /api/v1/trading/requests/{request_id} requires the submitting token and a valid account verification. Use the ID from answer.id or answer.ID; it is not an order or position ticket.

Confirmation

Submission returns an ID without waiting for execution. This repeatable GET reads the stored result; it does not fetch the current position. A timeout or unavailable result does not mean the operation failed. Do not resend POST with a new key. Mark overdue requests as uncertain and inspect the account.

Read summary

HTTP 200 and the outer retcode describe the query, not trading success. message is in English. Common codes: 10009 completed, 10008 pending order placed, 10010 partial execution, 10019 insufficient margin, 10025 no changes. success: null is neither success nor rejection. operation identifies market_order, place_pending, close_position, cancel_order, modify_order or modify_position. Historical requests may use modify_stops; unrecognized operations use unknown.

Find the position

Save summary.position_id when position_resolution is resolved. Match it to Position in current positions before closing or modifying. Never infer it from order_id or deal_id. Association runs in the background and is historical, not proof the position is still open. Netting trades can share a position. This is not a list of every partial fill and does not track future activation of pending orders. Association failure is not a reason to resubmit the trade.

Request and execution values

summary.execution contains values MT5 reported in the stored result: Prices and volumes may be strings. null means unavailable, not zero. Reported zeros are preserved. Older results without retained SL/TP keep those fields null. retcode and answer remain for compatibility with a limited public field set. Read account orders or positions for current state. Idempotency · Volume