API reference ยท Events
/v1/eventsList events.
Read
What happened on your accounts, oldest first: the same events the account stream sends. Poll with after = the id of the last event you have (next_cursor of the previous page).
Query parameters#
account_idstringOnly this account.
afterstringThe id of the last event you have: the ones after it, oldest first. Absent: from the oldest kept.
limitintegerPage size.
Responses#
200OK
-
The event; pass it as after (GET /v1/events) or resume (the stream) to continue from it.
-
What happened.
One of
order.createdorder.editedorder.filledorder.canceledorder.expiredorder.rejectedfill.createdposition.openedposition.changedposition.closed -
The account number.
-
When it happened.
-
Where it came from: an order placed through this API, one placed on a trading platform, or the engine itself (positions).
One of
apiplatformengine -
order, fill or position (the objects REST answers), with changes, previous_size or close_reason when they apply.
400A query or path parameter is out of range or the wrong kind.
{
"error": {
"type": "invalid_request",
"code": "invalid_parameter",
"message": "A parameter has a value this route does not take.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#invalid_parameter"
}
}401The request has no Authorization header.
{
"error": {
"type": "authentication",
"code": "missing_api_key",
"message": "No API key: send it as Authorization: Bearer <key>.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#missing_api_key"
}
}403The key only works from the addresses you listed.
{
"error": {
"type": "permission",
"code": "ip_not_allowed",
"message": "This address is not on the key's allowlist.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#ip_not_allowed"
}
}404The account does not exist in this environment, or the key does not reach it.
{
"error": {
"type": "not_found",
"code": "account_not_found",
"message": "No account with that id is reachable with this key.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#account_not_found"
}
}429A request budget is used up (details.scope says which).
{
"error": {
"type": "rate_limit",
"code": "rate_limited",
"message": "Too many requests: slow down.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": true,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#rate_limited"
}
}500An error we did not expect.
{
"error": {
"type": "server",
"code": "internal_error",
"message": "Something went wrong on our side.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": true,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#internal_error"
}
}503The API is starting and has not loaded your keys yet.
{
"error": {
"type": "engine",
"code": "not_ready",
"message": "The API is starting. Try again in a moment.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": true,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#not_ready"
}
}Errors#
Codes this endpoint can return. Match on the code, never on the message.