> For the complete documentation index, see [llms.txt](https://guide.traderevolution.com/traderevolution-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.traderevolution.com/traderevolution-api/traderevolution-apis/backoffice-api.md).

# BackOffice API

### General Information

TraderEvolution Back-Office REST API allows to build integrations with CRMs, Core broker/bank systems, and corporate websites to exchange information and automate processes. The API is organized around REST. It has predictable resource-oriented URLs, accepts request bodies, returns JSON-encoded responses, and uses standard verbs from <mark style="color:red;">`HTTP/1.1`</mark> as well as responds in JSON (<mark style="color:red;">`application/json`</mark>) format with standard HTTP error codes.

Please note that this portal describes in detail only the most commonly used methods and flows, while the whole API has much wider possibilities!&#x20;

{% hint style="warning" %}
You can try the Swagger which includes all methods of this API at <https://sandbox.traderevolution.com:8443/proftrading/rest/swagger-ui.html#>
{% endhint %}

All API calls are grouped into sections corresponding to system entities, you can find them structured as a tree in the left part of the page. Each section contains a set of endpoints for interacting with a particular object. It is supplied with a brief manual to facilitate understanding and help manage the API. You can find examples of API requests and responses in the documentation.

### Error Codes and Messages <a href="#error-codes-and-messages" id="error-codes-and-messages"></a>

`200 OK`  this return code is used for successful requests.

`204 No content` return code is used when there is no content.

`400 Bad request` return code is used for *bad requests*.

`401 Unauthorized` return code is used when the user is *unauthorized*.&#x20;

`404 Not found` return code is used when the requested entity is *not available*.

`405 Method not allowed` return code is used when the *method is not allowed*.

`406 Not acceptable` return code is used for *unacceptable* values.

`500 Internal server error` return code is used for *internal server errors*.&#x20;

### Change log

**3.122**: corrected REST API quote queue statistics reporting. Fixed missing *clientOrderId* length validation in REST API order creation.

**3.121**: added validation for *clOrderId* length in <mark style="color:green;">`POST`</mark> `/orders` requests.

**3.119:** added *ISIN* filter to <mark style="color:blue;">`GET`</mark>`/instruments`, fixed commission plan redefinition issue, added Transfer operation validation to prevent negative balance.

**3.118:** changed *positionId* data type in `/positions` for correct Swagger display. <mark style="color:yellow;">`PATCH`</mark>`/users/{id}` now skips user tree hash recalculation when unchanged. Added *settlementSystem* field to the unsettled account operation GET request, and fixed an issue where commission plan settings couldn't be redefined for a custom account operation type.

### Download OpenAPI Specification

You can download the OpenAPI specification in JSON format by following the [link](https://sandbox.traderevolution.com:8443/proftrading/rest/v2/api-docs).
