Docs
Api referenceEvents

List events

GET
/v1/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
AuthorizationBearer <token>

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

after?string

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.

since?string

Events at or after this time.

Formatdate-time
until?string

Events before this time.

Formatdate-time
type?|array<>

Only these types: repeat it (type=a&type=b) or separate with commas.

account_id?string

Events about this MT5 account, including multi-account orders with a leg on it.

Formatuuid
delivery_status?"failed"

failed: events at least one of your endpoints has not received — given up on, or still retrying after a failure.

Value in

  • "failed"
limit?integer
Range1 <= value <= 200
Default50
cursor?string

Without after: the previous page's nextCursor.

Lengthlength <= 200

Response 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  }}