# API

> 💡 **Разработчики Python:** Используйте официальный [clore-ai Python SDK](/clore.ai/clore.ai-ru/razrabotchiki/python-sdk.md) вместо прямых запросов к API. Он автоматически обрабатывает аутентификацию, ограничение скорости, повторные попытки и обработку ошибок.
>
> **Быстрый старт:** `pip install clore-ai` — См.  [документацию Python SDK](/clore.ai/clore.ai-ru/razrabotchiki/python-sdk.md) и [CLI справочник](/clore.ai/clore.ai-ru/razrabotchiki/cli-guide.md).

<div data-full-width="true"><figure><img src="/files/56487af1fd300848f4d3338abb891a478521d8fc" alt=""><figcaption></figcaption></figure></div>

### Введение <a href="#introduction" id="introduction"></a>

[CLORE.AI](http://clore.ai/) API можно использовать для автоматизации развертывания ваших рабочих нагрузок на [CLORE.AI](http://clore.ai/)

Сначала вам нужно получить API-ключ\
![alt text](https://clore.ai/assets/html/api-export1.png)\
![alt text](https://clore.ai/assets/html/api-export2.png)

***

### Ответы API <a href="#api-responses" id="api-responses"></a>

Ответы возвращаются в формате JSON, могут содержать разные поля

Всегда возвращаемое поле — code, указывающее статус

**поле code**

| код | Описание                           |
| --- | ---------------------------------- |
| `0` | НОРМАЛЬНО                          |
| `1` | ОШИБКА БАЗЫ ДАННЫХ                 |
| `2` | НЕКОРРЕКТНЫЕ ВХОДНЫЕ ДАННЫЕ        |
| `3` | НЕКОРРЕКТНЫЙ API ТОКЕН             |
| `4` | НЕКОРРЕКТНЫЙ ENDPOINT              |
| `5` | ПРЕВЫШЕН ЛИМИТ 1 запроса/секунду   |
| `6` | Ошибка указана в `поле error` поле |

***

### Эндпоинты <a href="#endpoints" id="endpoints"></a>

#### 1. `кошельки` <a href="#id-1-wallets" id="id-1-wallets"></a>

**О сервисе**

Возвращает кошельки и балансы

**Заголовки**

| Поле   | Тип      | Обязательно | Описание  |
| ------ | -------- | ----------- | --------- |
| `auth` | `строка` | Да          | API токен |

**Вывод**

| Поле       | Тип        | Описание         |
| ---------- | ---------- | ---------------- |
| `код`      | `int`      | Код статуса      |
| `кошельки` | `[]string` | Массив кошельков |

**Пример**

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' 'https://api.clore.ai/v1/wallets'
```

**Вывод:**

```
{
  "wallets": [
    {
      "name": "bitcoin",
      "deposit": "tb1q6erw7v02t7hakgmlcl4wfnlykzqj05alndruwr",
      "balance": 0.00153176,
      "withdrawal_fee": 0.0001
    }
  ],
  "code": 0
}
```

#### 2. `мои_серверы` <a href="#id-2-my_servers" id="id-2-my_servers"></a>

**О сервисе**

Возвращает ваши серверы, которые вы предоставляете в [clore.ai](http://clore.ai/) маркетплейс

**Заголовки**

| Поле   | Тип      | Обязательно | Описание  |
| ------ | -------- | ----------- | --------- |
| `auth` | `строка` | Да          | API токен |

**Вывод**

| Поле                          | Тип        | Описание                                                        |
| ----------------------------- | ---------- | --------------------------------------------------------------- |
| `код`                         | `int`      | Код статуса                                                     |
| `лимит`                       | `int`      | Максимальное количество серверов, которыми вы можете владеть    |
| `серверы`                     | `[]string` | Массив серверов                                                 |
| `servers[x].name`             | `строка`   | Имя сервера, выбранное пользователем                            |
| `servers[x].connected`        | `строка`   | Когда-либо ли сервер подключался к [clore.ai](http://clore.ai/) |
| `servers[x].visibility`       | `строка`   | Видимость на маркетплейсе                                       |
| `servers[x].pricing`          | `[]string` | Цена/день по требованию                                         |
| `servers[x].online`           | `bool`     | Сервер в сети                                                   |
| `servers[x].min_spot_pricing` | `[]string` | Минимальная цена/день для аренды на спотовом рынке              |
| `servers[x].init_token`       | `строка`   | Токен инициализации                                             |
| `servers[x].specs`            | `[]string` | Характеристики сервера                                          |

**Пример**

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' 'https://api.clore.ai/v1/my_servers'
```

**Вывод:**

```
{
  "servers": [
    {
      "name": "Michael",
      "connected": false,
      "visibility": "hidden",
      "pricing": { "bitcoin": 0, "usd": 0 },
      "online": false,
      "min_spot_pricing": { "bitcoin": 0, "usd": 0 },
      "init_token": "qnwVIMsZPjUWS7jw6gAbTOeoGQNgTH9XVxJaiCEbG0OlmfjF"
    },
    {
      "name": "Jan Vykydal",
      "connected": true,
      "visibility": "public",
      "pricing": { "bitcoin": 0.00010337, "usd": 0 },
      "online": false,
      "min_spot_pricing": { "bitcoin": 0.00005168, "usd": 0 },
      "specs": {
        "mb": "Z590 GAMING X",
        "cpu": "Intel Core i9-11900",
        "cpus": "8/16",
        "ram": 64,
        "disk": "NVMe 512GB",
        "disk_speed": 2000,
        "gpu": "1x GeForce GTX 1080 Ti",
        "gpuram": 11,
        "net": {
          "down":119.61,
          "up":25.24
        }
      }
    }
  ],
  "limit": 16,
  "code": 0
}
```

**\*USD ещё не реализовано**

#### 3. `конфигурация_сервера` <a href="#id-3-server_config" id="id-3-server_config"></a>

**О сервисе**

Получить конфигурацию конкретного сервера

**Заголовки**

| Поле           | Тип      | Обязательно | Описание                       |
| -------------- | -------- | ----------- | ------------------------------ |
| `auth`         | `строка` | Да          | API токен                      |
| `Content-type` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле          | Тип      | Обязательно | Описание    |
| ------------- | -------- | ----------- | ----------- |
| `server_name` | `строка` | Да          | Имя сервера |

**Вывод**

| Поле                    | Тип        | Описание                                                                           |
| ----------------------- | ---------- | ---------------------------------------------------------------------------------- |
| `код`                   | `int`      | Код статуса                                                                        |
| `creation_completed`    | `bool`     | Завершено ли создание сервера                                                      |
| `config`                | `[]string` | Конфигурация сервера                                                               |
| `config.name`           | `строка`   | Имя сервера, выбранное пользователем                                               |
| `config.connected`      | `bool`     | Когда-либо ли сервер подключался к [clore.ai](http://clore.ai/)                    |
| `config.visibility`     | `строка`   | Видимость на маркетплейсе                                                          |
| `config.pricing`        | `[]string` | Цена/день по требованию                                                            |
| `config.spot_pricing`   | `[]string` | Минимальная цена/день для аренды на спотовом рынке                                 |
| `config.mrl`            | `int`      | Максимальная длина аренды в часах                                                  |
| `config.online`         | `bool`     | Сервер в сети                                                                      |
| `config.initialized`    | `bool`     | Когда-либо ли сервер подключался к [clore.ai](http://clore.ai/)                    |
| `config.id`             | `int`      | Уникальный ID сервера                                                              |
| `config.rental_status`  | `int`      | 0 - не арендован \| 1 - Арендован на спотовом рынке \| 2 - Арендован по требованию |
| `config.specs`          | `[]string` | Характеристики сервера                                                             |
| `config.background_job` | `[]string` | Фоновая задача, когда сервер не арендуется                                         |

**Пример**

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "server_name":"Jan Vykydal"
}' 'https://api.clore.ai/v1/server_config'
```

**Вывод:**

```
{
  "config": {
    "name": "Jan Vykydal",
    "connected": true,
    "visibility": "public",
    "pricing": { "bitcoin": 0.00010337, "usd": 0 },
    "spot_pricing": { "bitcoin": 0.00005168, "usd": 0 },
    "mrl": 72,
    "online": false,
    "initialized": true,
    "id": 4,
    "rental_status": 0,
    "specs": {
      "mb": "Z590 GAMING X",
      "cpu": "Intel Core i9-11900",
      "cpus": "8/16",
      "ram": 64,
      "disk": "NVMe 512GB",
      "disk_speed": 2000,
      "gpu": "1x GeForce GTX 1080 Ti",
      "gpuram": 11,
      "net": {
        "down":119.61,
        "up":25.24
      }
    },
    "background_job": {
      "times_updated": 1,
      "image": "cloreai/ubuntu20.04-jupyter",
      "command": "",
      "env": []
    }
  },
  "creation_completed": true,
  "code": 0
}
```

**\*USD ещё не реализовано**

#### 4. `маркетплейс` <a href="#id-4-marketplace" id="id-4-marketplace"></a>

**О сервисе**

Получить маркетплейс

**Заголовки**

| Поле   | Тип      | Обязательно | Описание  |
| ------ | -------- | ----------- | --------- |
| `auth` | `строка` | Да          | API токен |

**Вывод**

| Поле                         | Тип        | Описание                                                                                         |
| ---------------------------- | ---------- | ------------------------------------------------------------------------------------------------ |
| `код`                        | `int`      | Код статуса                                                                                      |
| `мои_серверы`                | `[]string` | Массив ID серверов, которые вы предоставляете в [clore.ai](http://clore.ai/) (нельзя арендовать) |
| `серверы`                    | `[]string` | Массив публичных серверов на маркетплейсе                                                        |
| `servers[x].id`              | `int`      | Уникальный ID сервера                                                                            |
| `servers[x].owner`           | `int`      | Уникальный ID владельца                                                                          |
| `servers[x].mrl`             | `int`      | Максимальная длина аренды в часах                                                                |
| `servers[x].price.on_demand` | `[]string` | Цена по требованию в день                                                                        |
| `servers[x].spot`            | `[]string` | Минимальная цена на спотовом рынке в день                                                        |
| `servers[x].rented`          | `bool`     | Арендуется ли сервер по требованию                                                               |
| `servers[x].specs`           | `[]string` | Характеристики сервера                                                                           |

**Пример**

Получить маркетплейс

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' 'https://api.clore.ai/v1/marketplace'
```

**Вывод:**

```
{
  "servers": [
    {
      "id": 6,
      "owner": 4,
      "mrl": 73,
      "price": { "on_demand": { "bitcoin": 0.00001 },
      "spot": { "bitcoin": 0.000001 }},
      "rented": false,
      "specs": {
        "mb": "Z590 GAMING X",
        "cpu": "11th Gen Intel(R) Core(TM) i9-11900 @ 2.50GHz",
        "cpus": "8/16",
        "ram": 62.67348861694336,
        "disk": "NVMe disk 247.3623046875GB",
        "disk_speed": 0,
        "gpu": "1x NVIDIA GeForce GTX 1080 Ti",
        "gpuram": 11,
        "net": {
          "up": 26.38,
          "down": 118.42,
          "cc": "CZ"
        }
      }
    }
  ],
  "my_servers": [1, 2, 4],
  "code": 0
}
```

#### 5. `мои_заказы` <a href="#id-5-my_orders" id="id-5-my_orders"></a>

**О сервисе**

Получить ваши заказы

**Заголовки**

| Поле   | Тип      | Обязательно | Описание  |
| ------ | -------- | ----------- | --------- |
| `auth` | `строка` | Да          | API токен |

**Строка запроса**

| Поле               | Тип    | Обязательно | Описание                                 |
| ------------------ | ------ | ----------- | ---------------------------------------- |
| `return_completed` | `bool` | Нет         | Возвращать завершённые (истёкшие) заказы |

**Вывод**

| Поле                     | Тип        | Описание                                                      |
| ------------------------ | ---------- | ------------------------------------------------------------- |
| `код`                    | `int`      | Код статуса                                                   |
| `лимит`                  | `int`      | Максимальное количество активных заказов                      |
| `заказы`                 | `[]string` | Массив заказов                                                |
| `orders[x].id`           | `int`      | Уникальный ID заказа                                          |
| `orders[x].fee`          | `float`    | Комиссия (%) выплачиваемая [clore.ai](http://clore.ai/)       |
| `orders[x].creation_fee` | `float`    | Плата за создание, выплачиваемая [clore.ai](http://clore.ai/) |
| `orders[x].price`        | `float`    | Цена заказа (стоимость) в день                                |
| `orders[x].mrl`          | `int`      | Максимальная длина аренды заказа в секундах                   |
| `orders[x].image`        | `строка`   | Используемый docker-образ                                     |
| `orders[x].currency`     | `строка`   | Валюта, используемая для выставления счетов                   |
| `orders[x].spend`        | `float`    | Потраченные средства на заказ                                 |
| `orders[x].ct`           | `int`      | Время создания (UNIX время)                                   |
| `orders[x].p`            | `int`      | В настоящее время используемый кластер прокси                 |
| `orders[x].specs`        | `[]string` | Характеристики сервера                                        |
| `orders[x].si`           | `int`      | Уникальный ID сервера                                         |
| `orders[x].pub_cluster`  | `[]string` | Публичные эндпоинты с проброшенными портами                   |
| `orders[x].tcp_ports`    | `[]string` | Проброс TCP портов                                            |
| `orders[x].http_port`    | `строка`   | Порт контейнера, проброшенный через HTTPS прокси              |
| `orders[x].spot`         | `bool`     | Указание, что это спотовый заказ                              |
| `orders[x].expired`      | `bool`     | Указание, что заказ истёк                                     |

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' 'https://api.clore.ai/v1/my_orders?return_completed=true'
```

**Вывод:**

```
{
  "orders": [
    {
      "id": 38,
      "fee": 5,
      "creation_fee": 3e-7,
      "price": 0.00001,
      "mrl": 262800,
      "image": "cloreai/ubuntu20.04-jupyter",
      "currency": "bitcoin",
      "spend": 6.944444444444445e-9,
      "ct": 1667401396,
      "p": 1,
      "specs": {
        "mb": "Z590 GAMING X",
        "cpu": "11th Gen Intel(R) Core(TM) i9-11900 @ 2.50GHz",
        "cpus": "8/16",
        "ram": 62.67348861694336,
        "disk": "NVMe disk 247.3623046875GB",
        "disk_speed": 2000,
        "gpu": "1x NVIDIA GeForce GTX 1080 Ti",
        "gpuram": 11,
        "net": {
          "up": 26.38,
          "down": 118.42,
        }
      },
      "si": 6,
      "pub_cluster": [ "n1.c1.clorecloud.net", "n2.c1.clorecloud.net" ],
      "tcp_ports": [ "22:10000" ],
      "http_port": "8888"
    },{
      "id": 36,
      "fee": 2.5,
      "creation_fee": 1e-7,
      "price": 0.00001,
      "mrl": 262800,
      "image": "cloreai/ubuntu20.04-jupyter",
      "currency": "bitcoin",
      "spend": 1.3888888888888888e-7,
      "ct": 1667248597,
      "specs": {
        "mb": "Z590 GAMING X",
        "cpu": "11th Gen Intel(R) Core(TM) i9-11900 @ 2.50GHz",
        "cpus": "8/16",
        "ram": 62.67348861694336,
        "disk": "NVMe disk 247.3623046875GB",
        "disk_speed": 2000,
        "gpu": "1x NVIDIA GeForce GTX 1080 Ti",
        "gpuram": 11,
        "net": {
          "up": 26.38,
          "down": 118.42,
        }
      },
      "si": 6,
      "spot": true,
      "expired": true,
      "tcp_ports": []
    }
  ],
  "limit": 13,
  "code": 0
}
```

#### 6. `спотовый_маркетплейс` <a href="#id-6-spot_marketplace" id="id-6-spot_marketplace"></a>

**О сервисе**

Получить спотовый маркетплейс для конкретного сервера

**Заголовки**

| Поле   | Тип      | Обязательно | Описание  |
| ------ | -------- | ----------- | --------- |
| `auth` | `строка` | Да          | API токен |

**Строка запроса**

| Поле    | Тип   | Обязательно | Описание              |
| ------- | ----- | ----------- | --------------------- |
| `рынок` | `int` | Да          | Уникальный ID сервера |

**Вывод**

| Поле                        | Тип      | Описание                                                        |
| --------------------------- | -------- | --------------------------------------------------------------- |
| `код`                       | `int`    | Код статуса                                                     |
| `существует`                | `bool`   | Проверка того, что рынок существует                             |
| `рынок`                     | `объект` | Маркетплейс                                                     |
| `market.offers`             | `массив` | Предложения аренды для сервера                                  |
| `market.offers[x].offer_id` | `int`    | Уникальный ID предложения                                       |
| `market.offers[x].bid`      | `float`  | Предлагаемая цена в день                                        |
| `market.offers[x].active`   | `bool`   | Это предложение в настоящее время используется                  |
| `market.offers[x].my`       | `bool`   | Это предложение принадлежит мне                                 |
| `market.server`             | `объект` | Информация о сервере                                            |
| `market.server.min_pricing` | `объект` | Минимальная цена предложения в день                             |
| `market.server.mrl`         | `int`    | Максимальная длина аренды в секундах                            |
| `market.server.visibility`  | `строка` | Вы можете создавать предложения только когда видимость — public |
| `market.server.online`      | `bool`   | Сервер в сети                                                   |

**Ввод:**

```
curl -XGET -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' 'https://api.clore.ai/v1/spot_marketplace?market=6'
```

**Вывод:**

```
{
  "market": {
    "offers": [
      {
        "offer_id": 39,
        "bid": 0.0000042,
        "active": true,
        "my": true
      }
    ],
    "server": {
      "min_pricing": {
        "bitcoin": 0.000001
      },
      "mrl": 262800,
      "visibility": "public",
      "online": true
    }
  },
  "exists": true,
  "code": 0
}
```

#### 7. `set_server_settings` <a href="#id-7-set_server_settings" id="id-7-set_server_settings"></a>

**О сервисе**

Настроить параметры сервера, который вы предоставляете на [clore.ai](http://clore.ai/) маркетплейс

**Заголовки**

| Поле           | Тип      | Обязательно | Описание                       |
| -------------- | -------- | ----------- | ------------------------------ |
| `auth`         | `строка` | Да          | API токен                      |
| `Content-type` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле          | Тип      | Обязательно | Описание                                     |
| ------------- | -------- | ----------- | -------------------------------------------- |
| `имя`         | `строка` | Да          | Имя сервера, выбранное пользователем         |
| `доступность` | `bool`   | Да          | Можно ли арендовать сервер                   |
| `mrl`         | `int`    | Да          | Максимальная длина аренды сервера            |
| `on_demand`   | `float`  | Да          | Цена в день для вашего сервера по требованию |
| `spot`        | `float`  | Да          | Минимальная цена в день для SPOT предложения |

**Вывод**

| Поле  | Тип   | Описание    |
| ----- | ----- | ----------- |
| `код` | `int` | Код статуса |

**Пример**

Давайте создадим доказательство отправки для транзакции, отправленной с текущего кошелька.

**Ввод:**

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "name": "Jan Vykydal",
    "availability":true,
    "mrl":96,
    "on_demand":0.0001,
    "spot":0.00000113
}' 'https://api.clore.ai/v1/set_server_settings'
```

**Вывод:**

```
{
  "code": 0
}
```

#### 8. `set_spot_price` <a href="#id-8-set_spot_price" id="id-8-set_spot_price"></a>

**О сервисе**

Установить цену в день для вашего SPOT предложения

**Заголовки**

| Поле           | Тип      | Обязательно | Описание                       |
| -------------- | -------- | ----------- | ------------------------------ |
| `auth`         | `строка` | Да          | API токен                      |
| `Content-type` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле            | Тип     | Обязательно | Описание                      |
| --------------- | ------- | ----------- | ----------------------------- |
| `order_id`      | `int`   | Да          | Уникальный ID предложения     |
| `желаемая_цена` | `float` | Да          | Ваша предлагаемая цена в день |

**Пример**

Попробуем обновить цену на спотовом рынке

**Ввод 1 (шаг понижения был слишком велик):**

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "order_id":39,
    "desired_price":0.00000200
}' 'https://api.clore.ai/v1/set_spot_price'
```

**Возможный вывод 1 (шаг понижения был слишком велик):**\
Вы можете снизить цену спотового предложения максимум на 0.00000100 ₿

| Поле         | Тип      | Описание                                                                 |
| ------------ | -------- | ------------------------------------------------------------------------ |
| `код`        | `int`    | Код статуса                                                              |
| `поле error` | `строка` | Поле описания ошибки                                                     |
| `max_step`   | `float`  | Минимально возможное значение, до которого вы сейчас можете снизить цену |

```
{
    "error":"exceeded_max_step",
    "max_step":0.0000032,
    "code":6
}
```

**Ввод 2 (допустимый шаг понижения цены):**

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "order_id":39,
    "desired_price":0.00000320
}' 'https://api.clore.ai/v1/set_spot_price'
```

**Возможный вывод 2 (допустимый шаг понижения цены):**

```
{
    "code": 0
}
```

**Ввод 3 (еще большее снижение цены после отправки Ввода 2):**

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "order_id":39,
    "desired_price":0.00000220
}' 'https://api.clore.ai/v1/set_spot_price
```

**Возможный вывод 3 (еще большее снижение цены после отправки Ввода 2):**\
Вы можете снизить спотовую цену один раз в 600 секунд

| Поле               | Тип      | Описание                                                     |
| ------------------ | -------- | ------------------------------------------------------------ |
| `код`              | `int`    | Код статуса                                                  |
| `поле error`       | `строка` | Поле описания ошибки                                         |
| `time_to_lowering` | `float`  | Оставшееся время (сек) до следующей возможности снизить цену |

```
{
    "error":"can_lower_every_600_seconds",
    "time_to_lowering":513,
    "code":6
}
```

#### 9. `cancel_order` <a href="#id-9-cancel_order" id="id-9-cancel_order"></a>

**О сервисе**

Установить цену в день для вашего SPOT предложения

**Заголовки**

| Поле           | Тип      | Обязательно | Описание                       |
| -------------- | -------- | ----------- | ------------------------------ |
| `auth`         | `строка` | Да          | API токен                      |
| `Content-type` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле    | Тип      | Обязательно | Описание                                                                                                                                                                       |
| ------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`    | `int`    | Да          | Уникальный ID заказа/предложения                                                                                                                                               |
| `issue` | `строка` | Нет         | Если вы столкнулись с какими-либо проблемами с сервером, вы можете сообщить о них команде, максимум 2048 символов [clore.ai](http://clore.ai/) команда, максимум 2048 символов |

**Вывод**

| Поле  | Тип   | Описание    |
| ----- | ----- | ----------- |
| `код` | `int` | Код статуса |

**Пример**

Отменить заказ/предложение

**Ввод:**\
В этом примере мы сообщаем о проблемах с GPU #1, если у вас нет проблем, не включайте поле issue.\
Вы можете написать любое сообщение в поле text и мы расследуем это

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "id":39,
    "issue":"GPU #1 перегревался и снижал производительность"
}' 'https://api.clore.ai/v1/cancel_order'
```

**Вывод:**

```
{
  "code": 0
}
```

#### 10. `create_order` <a href="#id-10-create_order" id="id-10-create_order"></a>

**О сервисе**

Вы можете создать спотовое предложение или заказ по требованию с этим эндпоинтом\
Этот эндпоинт также допускает только 1 запрос в 5 секунд

**Заголовки**

| Поле           | Тип      | Обязательно | Описание                       |
| -------------- | -------- | ----------- | ------------------------------ |
| `auth`         | `строка` | Да          | API токен                      |
| `Content-type` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле                 | Тип      | Обязательно | Описание                                                                                                                                                                      |
| -------------------- | -------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `currency`           | `строка` | Да          | Название валюты                                                                                                                                                               |
| `image`              | `строка` | Да          | Допустимый образ из Docker Hub                                                                                                                                                |
| `renting_server`     | `int`    | Да          | ID сервера, который вы хотите арендовать                                                                                                                                      |
| `type`               | `строка` | Да          | `по требованию` ИЛИ `spot`                                                                                                                                                    |
| `spotprice`          | `float`  | Зависит     | Предлагаемая цена в день на спотовом рынке, требуется при создании спотового заказа                                                                                           |
| `ports`              | `объект` | Нет         | Конфигурация проброса портов, максимум 5 записей                                                                                                                              |
| `env`                | `объект` | Нет         | <p>Переменные окружения, ограничены 12000 символами в сумме после сериализации.<br>Имя переменной — максимум 128 символов<br>Значение переменной — максимум 1536 символов</p> |
| `jupyter_token`      | `строка` | Нет         | Токен Jupyter для образов с Jupyter ноутбуками, максимум 32 символа \*                                                                                                        |
| `ssh_key`            | `строка` | Нет         | SSH ключ для образов с SSH, максимум 3072 символа \*                                                                                                                          |
| `ssh_password`       | `строка` | Нет         | Пароль SSH для образов с SSH, максимум 32 символа \*                                                                                                                          |
| `command`            | `строка` | Нет         | Команда будет выполнена на сервере после создания заказа                                                                                                                      |
| `required_price`     | `float`  | Нет         | Укажите цену, за которую вы хотите запустить заказ — если владелец машины изменит цену, заказ не запустится (только по требованию)                                            |
| `autossh_entrypoint` | `bool`   | Нет         | Использовать точку входа clore.ai, которая автоматически развернёт SSH-сервер и пользовательский `/root/onstart.sh` скрипт                                                    |

\* В поля, отмеченные звёздочкой, вы можете вводить только символы из этой группы regexp `/^[a-zA-Z0-9\s-=.@+/]+$/`

**Вывод**

| Поле  | Тип   | Описание    |
| ----- | ----- | ----------- |
| `код` | `int` | Код статуса |

**Пример**

**Ввод 1 (Создать спотовое предложение):**

```
curl -XPOST -H 'auth: 6FcuR7ibcwKR1Z32lEFoSotzUUtzKO2H' -H "Content-type: application/json" -d '
{
    "currency":"bitcoin",
    "image":"cloreai/ubuntu20.04-jupyter",
    "renting_server":6,
    "type":"spot",
    "spotprice":0.000001,
    "ports":{
        "22":"tcp",
        "8888":"http"
    },
    "env":{
        "VARIABLE_NAME":"VARIABLE_VALUE",
    },
    "jupyter_token":"hoZluOjbCOQ5D5yH7R",
    "ssh_password":"Hpcj08ZaOpCbTmn1Eu",
    "command":"#!/bin/sh\napt update -y && apt install htop"
}' 'https://api.clore.ai/v1/create_order'
```

**Вывод 1 (Создание спотового предложения):**

```
{
  "code":0
}
```

**Ввод 2 (Создать заказ по требованию):**

```
curl -XPOST -H 'auth: 6FcuR7ibcwKR1Z32lEFoSotzUUtzKO2H' -H "Content-type: application/json" -d '
{
    "currency":"bitcoin",
    "image":"cloreai/ubuntu20.04-jupyter",
    "renting_server":6,
    "type":"on-demand",
    "ports":{
        "22":"tcp",
        "8888":"http"
    },
    "env":{
        "VARIABLE_NAME":"VARIABLE_VALUE",
    },
    "jupyter_token":"hoZluOjbCOQ5D5yH7R",
    "ssh_password":"Hpcj08ZaOpCbTmn1Eu",
    "command":"#!/bin/sh\napt update -y && apt install htop"
}' 'https://api.clore.ai/v1/create_order'
```

**Вывод 2 (Создать заказ по требованию):**

```
{
  "code":0
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/clore.ai/clore.ai-ru/dlya-khostov/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
