API volume unit
Every public trading-volume field uses MT5 units: 10000 units = 1 lot. No partner endpoint accepts or returns volume directly in lots. Lots in examples are explanatory equivalents. The API does not automatically convert lots to units.
These are conversions, not universally permitted order sizes.
"volume": 1 means 0.0001 lots, never 1 lot.
Symbol settings and contract size
The factor 10000 is independent of the symbol, broker, account group andContractSize within this API contract. Contract size describes what one lot
represents economically; it is not the volume encoding factor.
Symbols with ContractSize = 1 and ContractSize = 10 both take volume: 10000
for a one-lot request. Their economic exposure can differ. Do not multiply or
divide API volume by contract size. Volume conversion alone does not calculate
margin or profit.
Effective account-group symbol settings determine VolumeMin, VolumeMax and
VolumeStep, all in MT5 units. Volume checks require an amount within the limits
and divisible by the step. A correct conversion is not proof that a volume is
allowed. The API does not silently adjust or round the requested amount.
Example: minimum 5000 and step 100 mean a minimum of 0.5 lots and a 0.01-lot step.
Although 0.01 lots correctly converts to 100 units, it is below that minimum.
Fields by endpoint
Append these paths to the API base URL.
Other partner endpoints do not accept or expose a trading volume.
GET /api/v1/accounts/{login}/positions/count counts positions, not lots.
offset and total are pagination controls, not volume.
Grouped and flat execution results use the same units. Zero volume on a
cancellation or stop modification is not proof of failure; check summary.status
and mt5_code.
Opening, closing and partial execution
To request 0.5 lots, submit"volume": 5000.
To request closing 0.2 lots of a 0.5-lot position, send:
POST /api/v1/positions/{position}/close with the actual position ticket and
a new Idempotency-Key. To request closing the entire current position, omit
volume: {"login":104205}. Do not use volume: 0 for a full close.
In an answer execution event, Volume = "5000" and ResultVolume = "3000"
mean 0.5 lots requested and 0.3 lots executed. Check the result and current
positions; the API does not automatically resubmit an unfilled IOC remainder.
Client conversion
Send volume as an integer JSON number. Responses can encode numbers as strings:"Volume": "5000" still means 0.5 lots. Missing or null fields are not zero and
do not establish whether execution occurred.
Use decimal arithmetic. The converted amount must be a positive finite integer;
do not truncate or round it silently. For example:
VolumeExt fields use a different scale and
are not part of these public endpoint contracts.