Margin required, or profit at a price
Esta página aún no está traducida al español; a continuación está la versión en inglés.
Opens nothing and is safe to call freely. This is how you find out an order will be refused for margin before sending it, rather than collecting a 10019 from the broker.
The account must be online: an offline account is refused with 409 NO_RUNTIME. A null value means the broker would not answer, which is not the same as zero.
Authorization
apiKey Authorization: Bearer fx_live_<id>_<secret>.
A key is shown once, at creation. We cannot show it again or recover it for you.
Keys carry a label (live or test) in the key itself, so each configuration is easy to tell
apart. Both reach real brokers: test with a broker demo account.
Scopes are per key. A key without accounts:write can read accounts and nothing else.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/accounts/497f6eca-6276-4993-bfeb-53cbbbba6f08/calculate" \ -H "Content-Type: application/json" \ -d '{ "kind": "margin", "symbol": "EURUSD", "side": "buy", "volume": "0.10", "price": "1.13426" }'{ "data": { "kind": "margin", "value": null }}Confirm pending results with the broker now POST
Confirms the result of every opening order on this account still in `unknown`, and brings its deals and positions up to date with the broker. A close, stop change or cancel in `unknown` is not settled from deal history — its `stateDetail` says to check the position or order at the broker. This happens automatically; call it when you do not want to wait. It is safe to call at any time and safe to call twice — nothing is recorded or settled twice. `ambiguous` counts orders whose result the broker's records do not settle unambiguously. Those are left in `unknown` on purpose: a wrong guess produces a history that looks settled and is wrong, which is worse than the gap. They need a human. `skipped` is `no-runtime` when the account is offline: bring it online and call again.
Move a pending order's price or levels POST
Keeps the order's ticket. Cancelling and re-placing loses its place in the broker's queue and leaves a window where the order does not exist at all — on a fast market that window is where the move happens. An omitted field is left alone. Send `stopLoss: null` to clear a stop; omitting it keeps whatever is there. Only an order in `working` can be moved. A `filled` order is a position — move its stop with `/positions/{id}/modify` instead.