API reference ยท Accounts
/v1/accountsOpen a sandbox account.
Read and tradeIdempotency-KeySandbox only
Reserves a new sandbox account; it opens within moments (status pending, then active). Every account you open counts toward your sandbox accounts for life, see GET /v1/limits.
Headers#
-
A unique value per action: a retry with the same value never does it twice.
Responses#
202Accepted
-
The account number.
-
The environment the account lives in.
One of
livesandbox -
Where the account is in the programme.
One of
evaluationfundedsandbox -
pending: being opened; active: trading.
One of
pendingactivepassedfailedclosedsuspended -
The product it was bought as.
-
Its size as sold.
-
The balance it started with.
-
The balance: closed trades and fees only.
-
The account's rule, as the trading engine enforces it.
Show 11 fields
-
The balance the account started with.
-
Show 4 fields
-
The most the account may lose in a trading day, in USD.
-
The same limit in percent of its basis.
-
What the day's loss is measured from.
One of
peak_balancestart_balancepeak_equityday_start_balanceday_start_equity -
What happens when it is reached.
One of
fail_accountflattenflatten_and_pause
-
-
Show 3 fields
-
The most the account may fall from its reference, in USD.
-
The same limit in percent.
-
How the reference moves: end_of_day and end_of_trade follow the highest balance, static stays at the start, intraday_equity follows the highest equity.
One of
end_of_dayend_of_tradestaticintraday_equity
-
-
Show 3 fields
-
The profit to reach, in USD.
-
The same target in percent.
-
Positions must be closed when it is reached.
-
-
Days with a trade the account needs.
-
Calendar days the account needs.
-
Positions may stay open overnight.
-
Positions may stay open over the weekend.
-
Days without a trade after which the account fails.
-
-
A payout may be requested now.
-
parkedbooleanSandbox only: parked after a while unused; it wakes the moment you use it.
-
When the account was made.
400Calls that create something need a key that makes a retry safe.
{
"error": {
"type": "invalid_request",
"code": "idempotency_key_required",
"message": "This call needs an Idempotency-Key header.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#idempotency_key_required"
}
}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"
}
}409Each customer may open a fixed number of sandbox accounts, ever.
{
"error": {
"type": "conflict",
"code": "sandbox_limit_reached",
"message": "You have opened every sandbox account you may.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#sandbox_limit_reached"
}
}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"
}
}503Sandbox accounts are not being opened.
{
"error": {
"type": "engine",
"code": "sandbox_disabled",
"message": "The sandbox is closed for now.",
"request_id": "req_0f9c2a7d8e1b4c6a9f3e5d7b1a2c4e6f",
"retryable": false,
"doc_url": "https://docs.phoenixperpsfunding.com/reference/errors#sandbox_disabled"
}
}Errors#
Codes this endpoint can return. Match on the code, never on the message.
- 401
missing_api_key - 401
invalid_api_key - 401
expired_api_key - 401
revoked_api_key - 401
invalid_token - 401
expired_token - 401
revoked_token - 401
wrong_resource - 401
wrong_environment - 403
ip_not_allowed - 403
api_disabled - 429
rate_limited - 409
sandbox_limit_reached - 503
sandbox_disabled - 400
idempotency_key_required - 400
invalid_idempotency_key - 403
insufficient_permission - 503
temporarily_unavailable