List events
Everything that happened in this workspace while its plan included webhooks, exactly as webhooks deliver it, kept 7, 30 or 90 days by plan — whether or not a webhook endpoint was listening. Events from a time the plan did not include webhooks are not recorded, so they are not listed.
An event appears in the list a few seconds after it happens, and only once every earlier event has, so a page never moves past one that has not appeared yet — except an event stuck more than 15 minutes before it could be prepared for sending (rare; we alert on it), which stops holding the list back and so, once it does appear, may fall behind an after= loop that already paged past its moment.
Catching up after downtime: keep an anchor id taken only from the last item of a list page you processed — never from a webhook: webhooks do not arrive in list order (sends run in parallel and retries are spread out), so a webhook's id can be newer than an event still retrying. On start, call ?after=<anchor> and keep calling with the last id of each page until a page comes back empty. Then check delivery_status=failed, or run a replay, for anything given up on. Deduplicate on id. With after, events come oldest first. Without it, newest first, paged by nextCursor. An after id older than your plan keeps answers 400 EVENT_NOT_IN_HISTORY: resume from since instead.
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
Query Parameters
An event id: return the events after it, oldest first. To catch up, pass the id of the last event of a list page you processed — never a webhook's id, since webhooks can arrive out of order.
Events at or after this time.
date-timeEvents before this time.
date-timeOnly these types: repeat it (type=a&type=b) or separate with commas.
Events about this MT5 account, including multi-account orders with a leg on it.
uuidfailed: events at least one of your endpoints has not received — given up on, or still retrying after a failure.
Value in
- "failed"
1 <= value <= 20050Without after: the previous page's nextCursor.
length <= 200Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/events"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "order.filled", "createdAt": "2019-08-24T14:15:22Z", "data": {} } ], "page": { "hasMore": true, "nextCursor": null }}