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
Savesummary.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
