List multi-account orders
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 an environment (live or test) in the key itself, so a test key pasted into a
production config fails immediately instead of at the worst possible moment.
Scopes are per key. A key without accounts:write can read accounts and nothing else.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/execution-waves"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "label": null, "clientWaveId": null, "symbol": "string", "side": "buy", "baseVolume": null, "state": "planned", "stateDetail": null, "barrierPolicy": "release-ready", "executeAt": null, "expiresAt": null, "preparedAt": null, "releasedAt": null, "settledAt": null, "dispatchSpreadMs": null, "summary": { "total": 0, "filled": 0, "rejected": 0, "skipped": 0, "unresolved": 0 }, "legs": [ { "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9", "orderId": null, "volume": null, "state": "pending", "stateDetail": null, "sentAt": null, "settledAt": null } ], "createdAt": "2019-08-24T14:15:22Z" } ]}Follow a multi-account order GET
Poll this after creating a multi-account order. `state` moves `planned → preparing → armed → releasing → settled`: accepted, bringing accounts online, waiting for `executeAt`, sending, and every account has a result. `cancelled` and `abandoned` mean nothing was sent. Each account in `legs` carries its own state and its own order id — an account's order is an ordinary order, confirmed with the broker and audited like any other.
Place one trade on many accounts POST
A multi-account order: one trade placed on many accounts at once. Every account is brought online first, then the orders are sent together — at `executeAt`, or as soon as every account is online. **A multi-account order is not all-or-nothing once sent, and cannot be.** There is no transaction across a hundred brokers: accounts fill at different prices, some are rejected for margin, some go unanswered. So it never reports a single success or failure — it reports a result for each account, and `summary` counts what landed. An account whose result is `unresolved` must not be resent; poll its order. `dispatchSpreadMs` is the gap between the first account's order being sent and the last. It is the number worth watching: as it grows, your accounts are getting different prices. **`barrierPolicy`** decides what happens when some accounts are not online in time: - `release-ready` — trade on the accounts that are online, skip the rest. A partial entry beats a late one. - `all-or-nothing` — trade on none unless all are online. Note this is about *sending*: a broker can still reject an account's order after it was sent. - `wait` — keep waiting past `executeAt` until every account is online, up to `expiresAt`.