HTTP 500 in broker APIs: what it means, broker by broker
11 decoded error codes from 5 brokers and platforms return this status, and one general record gives the standard's meaning: 12 records on this page. The count is of records whose recorded HTTP status is 500. A search for the number 500 also finds records that only mention it in their code or meaning, so the error lookup can show more.
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
What the status means in general
HTTP 500 is Internal Server Error. The server met an unexpected condition that prevented it from fulfilling the request.
The fault is on the server's side and the request may have been perfectly valid. For a request that places, changes or cancels an order, a 500 does not prove that nothing happened.
Do not assume the request had no effect. For an order request, read open orders and positions before sending it again. Retry reads after a pause, and check the provider's status page if it persists.
The first paragraph is the standard's meaning in this site's words, with its source. The rest is this site's own explanation and describes no particular broker. HTTP 500 Internal Server Error on its own page.
The status alone is only the category. The code or message in the body of the reply is what tells you the cause, and that differs from one API to the next.
The decoded errors that return it
In order of broker name, then code. Each row links to the full meaning and the fix.
DXtrade APIs
| Code | Meaning, first sentence | Source |
|---|---|---|
| 110 A system error has occurred | DXtrade errorCode 110, description "A system error has occurred" (the vendor's wording). | demo.dx.tradechecked |
| 500 Internal Server Error | DXtrade REST API: An unexpected error occurred on the server. | demo.dx.tradechecked |
eToro
| Code | Meaning, first sentence | Source |
|---|---|---|
| HTTP 500 | An internal error on eToro's side. | api-portal.etoro.comchecked |
IG
| Code | Meaning, first sentence | Source |
|---|---|---|
| error.positions.generic | An unexpected error happened on IG's side while handling a positions request, and it could not proceed. | labs.ig.comchecked |
| error.security.get.session.timeout Recorded as 500 or 504 | The request timed out while IG was retrieving the session details. | labs.ig.comchecked |
| error.switch.cannot-set-default-account | The switch could not make the target account the new default account. | labs.ig.comchecked |
| error.watchlists.management.error Recorded as 400 or 500 | A watchlist request failed for a reason IG does not specify. | labs.ig.comchecked |
| public-api.costs-and-charges.general-error | A server side error on the indicative costs and charges endpoints. | labs.ig.comchecked |
| system.error | A system error on IG's side. | labs.ig.comchecked |
Interactive Brokers
| Code | Meaning, first sentence | Source |
|---|---|---|
| 500 Internal Server Error | On the Web API, the reference for submitting an order lists 500 Internal Server Error, returned when the incoming request cannot be processed. | interactivebrokers.comchecked |
Saxo OpenAPI
| Code | Meaning, first sentence | Source |
|---|---|---|
| HTTP 500 | Internal service error. | developer.saxochecked |
Brokers and platforms not listed here have no decoded error recorded with this status. That describes this dataset, not their APIs.