# Закрыть все позиции и ордера

`POST /accounts/{accountId}/close-all`

Отменяет каждый активный ордер на счёте, а затем закрывает каждую открытую позицию по рынку.

- Отвечает `204` без тела; возникшие исполнения появляются в истории позиций и в событиях счёта.
- Отправьте заголовок `x-idempotency-key`, чтобы сделать вызов безопасным при повторной отправке: в пределах окна повторной отправки, указанного в этом заголовке, тот же ключ на том же маршруте воспроизводит сохранённый ответ (помеченный `X-Idempotency-Cached: true` и `X-Idempotency-Timestamp`) вместо повторного выполнения, а второй вызов, поступивший, пока первый всё ещё выполняется, получает `409` (`idempotency_key_in_flight`).

<a id="authorization"></a>

## Авторизация

bearer: http · bearer (обязательно). Персональный API-ключ с префиксом `usk_`.

<a id="parameters"></a>

## Параметры

- path: accountId (string · uuid; обязательно). Идентификатор торгового аккаунта. Должен принадлежать вызывающей стороне.

Тип: string · uuid

format: uuid

- header: x-idempotency-key (string; необязательно). Ключ идемпотентности — любая непрозрачная строка, uuid v4 хорошо подходит. Повторение вызова с тем же ключом на этом маршруте в течение 1 минуты воспроизводит сохранённый ответ вместо повторного выполнения; повторное воспроизведение содержит `X-Idempotency-Cached: true` и `X-Idempotency-Timestamp`. Пропустите заголовок, чтобы отказаться.

Тип: string

Пример: "9f1c2b7e-5a3d-4f61-9b0e-2c7d4a8e1f35"

<a id="example-curl"></a>

## Пример · cURL

```bash
curl --request POST 'https://api.upscale.trade/accounts/{accountId}/close-all' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'
```

<a id="example-javascript"></a>

## Пример · JavaScript

```javascript
const response = await fetch("https://api.upscale.trade/accounts/{accountId}/close-all", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
});
console.log(response.status, await response.text());
```

<a id="example-python"></a>

## Пример · Python

```python
import requests

response = requests.request(
    "POST",
    "https://api.upscale.trade/accounts/{accountId}/close-all",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

<a id="response-401"></a>

## Ответ 401

**401**  — Неавторизовано

<a id="response-403"></a>

## Ответ 403

**403**  — Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).

<a id="response-404"></a>

## Ответ 404

**404**  — Нет аккаунта с этим идентификатором.

<a id="response-409"></a>

## Ответ 409

**409**  — Другой вызов с тем же `x-idempotency-key` всё ещё выполняется (`idempotency_key_in_flight`). Повторите попытку, когда он завершится.

<a id="response-429"></a>

## Ответ 429

**429**  — Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.