> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/clore.ai/clore.ai-ru/dlya-khostov/api.md).

# API

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

> 🧭 Предпочитаете справочник с навигацией? Откройте интерактивную документацию API по адресу [clore.ai/api-docs](https://clore.ai/api-docs). Базовый URL для всех конечных точек на этой странице: `https://api.clore.ai/v1/`.

<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**

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

***

### Конечные точки <a href="#endpoints" id="endpoints"></a>

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

**Описание**

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

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

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

**Вывод**

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

**Пример**

**Вход:**

```
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. `my_servers` <a href="#id-2-my_servers" id="id-2-my_servers"></a>

**Описание**

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

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

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

**Вывод**

| Поле                                  | Тип        | Описание                                                                             |
| ------------------------------------- | ---------- | ------------------------------------------------------------------------------------ |
| `code`                                | `int`      | Код статуса                                                                          |
| `лимит`                               | `int`      | Максимальное число серверов, которыми вы можете владеть                              |
| `серверы`                             | `[]строка` | Массив серверов                                                                      |
| `servers[x].name`                     | `строка`   | Имя сервера, выбранное пользователем                                                 |
| `servers[x].connected`                | `строка`   | Был ли сервер когда-либо подключён к [clore.ai](http://clore.ai/)                    |
| `servers[x].visibility`               | `строка`   | Видимость на маркетплейсе                                                            |
| `servers[x].pricing`                  | `[]строка` | Цена/день по запросу                                                                 |
| `servers[x].online`                   | `bool`     | Сервер онлайн                                                                        |
| `servers[x].min_spot_pricing`         | `[]строка` | Минимальная цена/день для аренды на спотовом рынке                                   |
| `servers[x].init_token`               | `строка`   | Токен инициализации                                                                  |
| `servers[x].specs`                    | `[]строка` | Спецификации сервера                                                                 |
| `servers[x].remaining_time`           | `int`      | Время окончания аренды последнего активного заказа (эпоха в мс, 0 если не арендован) |
| `servers[x].rental_state`             | `строка`   | Сводное состояние аренды GPU: `нет`, `частично`, или `полностью`                     |
| `servers[x].rented_gpus`              | `int`      | GPU, арендованные в активных заказах                                                 |
| `servers[x].total_gpus`               | `int`      | Общее число GPU на сервере                                                           |
| `servers[x].rented_price_by_currency` | `объект`   | Сумма цен активных заказов, сгруппированная по валюте                                |
| `servers[x].update_channel`           | `строка`   | Канал обновлений хостинг-агента: `стабильный` или `бета`                             |
| `servers[x].requested_channel`        | `строка`   | Запрос на переключение канала из веб-интерфейса (присутствует только при запросе)    |
| `servers[x].target_backend_version`   | `int`      | Версия backend, которой соответствует текущий канал                                  |

**Пример**

**Вход:**

```
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 в `pricing` объектах отражают режим ценообразования в USD, когда его включил хост.

#### 3. `server_config` <a href="#id-3-server_config" id="id-3-server_config"></a>

**Описание**

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

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

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

**Тело**

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

**Вывод**

| Поле                    | Тип        | Описание                                                                                     |
| ----------------------- | ---------- | -------------------------------------------------------------------------------------------- |
| `code`                  | `int`      | Код статуса                                                                                  |
| `creation_completed`    | `bool`     | Завершено ли создание сервера                                                                |
| `config`                | `[]строка` | Конфигурация сервера                                                                         |
| `config.name`           | `строка`   | Имя сервера, выбранное пользователем                                                         |
| `config.connected`      | `bool`     | Был ли сервер когда-либо подключён к [clore.ai](http://clore.ai/)                            |
| `config.visibility`     | `строка`   | Видимость на маркетплейсе                                                                    |
| `config.pricing`        | `[]строка` | Цена/день по запросу                                                                         |
| `config.spot_pricing`   | `[]строка` | Минимальная цена/день для аренды на спотовом рынке                                           |
| `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`          | `[]строка` | Спецификации сервера                                                                         |
| `config.background_job` | `[]строка` | Фоновая задача, когда не арендован                                                           |
| `config.tenants`        | `[]объект` | Активные заказы на сервере: `rental_type`, `currency`, `цену`, `remaining_time`, `gpu_count` |

> `server_config` также возвращает те же поля rental\_state и update\_channel, что и `my_servers`: `remaining_time`, `rental_state`, `rented_gpus`, `total_gpus`, `rented_price_by_currency`, `update_channel`, `requested_channel`, `target_backend_version`.

**Пример**

**Вход:**

```
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 в `pricing` объектах отражают режим ценообразования в USD, когда его включил хост.

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

**Описание**

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

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

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

**Вывод**

| Поле                            | Тип                | Описание                                                                                                |
| ------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| `code`                          | `int`              | Код статуса                                                                                             |
| `my_servers`                    | `[]строка`         | Массив ID серверов, которые вы предоставляете на [clore.ai](http://clore.ai/) (не может быть арендован) |
| `серверы`                       | `[]строка`         | Массив публичных серверов на маркетплейсе                                                               |
| `servers[x].id`                 | `int`              | Уникальный ID сервера                                                                                   |
| `servers[x].owner`              | `int`              | Уникальный ID владельца                                                                                 |
| `servers[x].mrl`                | `int`              | Максимальная длительность аренды в часах                                                                |
| `servers[x].price.on_demand`    | `[]строка`         | Цена по запросу за день                                                                                 |
| `servers[x].spot`               | `[]строка`         | Минимальная цена спотового рынка за день                                                                |
| `servers[x].rented`             | `bool`             | Сервер арендован по запросу                                                                             |
| `servers[x].specs`              | `[]строка`         | Спецификации сервера                                                                                    |
| `servers[x].partial_gpu_rental` | `объект` \| `bool` | `false` когда частичная аренда недоступна, иначе `{ total_gpus, available_gpus, free_indices }`         |

**Пример**

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

**Вход:**

```
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. `my_orders` <a href="#id-5-my_orders" id="id-5-my_orders"></a>

**Описание**

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

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

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

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

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

**Вывод**

| Поле                     | Тип        | Описание                                                        |
| ------------------------ | ---------- | --------------------------------------------------------------- |
| `code`                   | `int`      | Код статуса                                                     |
| `лимит`                  | `int`      | Максимальное число активных заказов                             |
| `заказы`                 | `[]строка` | Массив заказов                                                  |
| `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`        | `[]строка` | Спецификации сервера                                            |
| `orders[x].si`           | `int`      | Уникальный ID сервера                                           |
| `orders[x].pub_cluster`  | `[]строка` | Публичные конечные точки с проброшенными портами                |
| `orders[x].tcp_ports`    | `[]строка` | Проброс 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 сервера |

**Вывод**

| Поле                        | Тип      | Описание                                                    |
| --------------------------- | -------- | ----------------------------------------------------------- |
| `code`                      | `int`    | Код статуса                                                 |
| `существует`                | `bool`   | Проверка того, что рынок существует                         |
| `рынок`                     | `объект` | Marketplace                                                 |
| `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-токен                      |
| `Тип содержимого` | `строка` | Да          | Должен быть `application/json` |

**Тело**

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

> Цены за день ограничены 0,015 BTC / 600 000 CLORE / 1 000 USD.

**Вывод**

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

**Пример**

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

**Вход:**

```
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-токен                      |
| `Тип содержимого` | `строка` | Да          | Должен быть `application/json` |

**Тело**

| Поле            | Тип     | Обязательно | Описание                       |
| --------------- | ------- | ----------- | ------------------------------ |
| `order_id`      | `int`   | Да          | Уникальный ID предложения      |
| `desired_price` | `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 ₿

| Поле       | Тип      | Описание                                                                 |
| ---------- | -------- | ------------------------------------------------------------------------ |
| `code`     | `int`    | Код статуса                                                              |
| `ошибка`   | `строка` | Поле описания ошибки                                                     |
| `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 секунд

| Поле               | Тип      | Описание                                                      |
| ------------------ | -------- | ------------------------------------------------------------- |
| `code`             | `int`    | Код статуса                                                   |
| `ошибка`           | `строка` | Поле описания ошибки                                          |
| `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>

**Описание**

Отменить активный заказ или спотовое предложение

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

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

**Тело**

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

**Вывод**

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

**Пример**

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

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

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "id":39,
    "issue":"GPU #1 Was overheating and throttling"
}' 'https://api.clore.ai/v1/cancel_order'
```

**Вывод:**

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

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

**Описание**

С помощью этого эндпоинта вы можете создать спотовое предложение или заказ on-demand\
Этот эндпоинт также позволяет делать только 1 запрос в 5 секунд

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

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

**Тело**

| Поле                 | Тип      | Обязательно | Описание                                                                                                                                                                                                                          |
| -------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `currency`           | `строка` | Да          | Название валюты                                                                                                                                                                                                                   |
| `image`              | `строка` | Да          | Допустимый образ из Docker Hub                                                                                                                                                                                                    |
| `renting_server`     | `int`    | Да          | ID сервера, который вы хотите арендовать                                                                                                                                                                                          |
| `type`               | `строка` | Да          | `on-demand` ИЛИ `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`  | Нет         | Укажите цену, по которой вы хотите запустить заказ; если владелец машины изменит цену, заказ не запустится (только on-demand)                                                                                                     |
| `gpu_count`          | `int`    | Нет         | Количество GPU для аренды на серверах, поддерживающих [частичную аренду](/clore.ai/clore.ai-ru/dlya-arendatorov/partial-gpu-rental.md). Не указывайте, чтобы арендовать всю ферму. Только on-demand, только однородные фермы      |
| `gpu_indices`        | `[]int`  | Нет         | Индексы слотов GPU, которые нужно арендовать, начиная с 0; длина должна быть равна `gpu_count`. Использовать свободные слоты из `partial_gpu_rental.free_indices`. Не указывайте, чтобы бэкенд автоматически выбрал свободные GPU |
| `autossh_entrypoint` | `bool`   | Нет         | Использовать точку входа clore.ai, которая автоматически развернет SSH-сервер и пользовательский `/root/onstart.sh` скрипт                                                                                                        |

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

**Вывод**

| Поле   | Тип   | Описание    |
| ------ | ----- | ----------- |
| `code` | `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 (Создать заказ on-demand):**

```
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 (Создать заказ on-demand):**

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

#### 11. `renter_fees` <a href="#id-11-renter_fees" id="id-11-renter_fees"></a>

**Описание**

Получите текущую конфигурацию комиссий: базовые комиссии арендатора, настройки снижения комиссии PoH, комиссии за создание заказа и ваш баланс PoH

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

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

**Вывод**

| Поле                               | Тип      | Описание                                                    |
| ---------------------------------- | -------- | ----------------------------------------------------------- |
| `code`                             | `int`    | Код статуса                                                 |
| `renter_fees.on_demand`            | `объект` | Базовая комиссия (%) по каждой валюте для заказов on-demand |
| `renter_fees.spot`                 | `объект` | Базовая комиссия (%) по каждой валюте для спотовых заказов  |
| `poh_config.max_reduction_percent` | `int`    | Максимальное снижение базовой комиссии через PoH (%)        |
| `poh_config.max_poh_amount`        | `int`    | Баланс PoH, при котором достигается максимальное снижение   |
| `creation_fees.on_demand`          | `объект` | Комиссия за создание заказа по каждой валюте                |
| `creation_fees.spot`               | `объект` | Комиссия за создание спотового заказа по каждой валюте      |
| `poh_balance`                      | `float`  | Ваш баланс PoH CLORE                                        |

**Вход:**

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

**Вывод:**

```
{
  "renter_fees": {
    "on_demand": {
      "base": { "bitcoin": 5, "CLORE-Blockchain": 5, "USD-Blockchain": 5 }
    },
    "spot": {
      "base": { "bitcoin": 1.25, "CLORE-Blockchain": 1.25, "USD-Blockchain": 1.25 }
    }
  },
  "poh_config": { "max_reduction_percent": 50, "max_poh_amount": 2000000 },
  "creation_fees": {
    "on_demand": { "bitcoin": 3e-7, "CLORE-Blockchain": 0.5, "USD-Blockchain": 0.1 },
    "spot": { "bitcoin": 1e-7, "CLORE-Blockchain": 0.05, "USD-Blockchain": 0.005 }
  },
  "poh_balance": 5000,
  "code": 0
}
```

#### 12. `cancel_orders` <a href="#id-12-cancel_orders" id="id-12-cancel_orders"></a>

**Описание**

Отменить несколько заказов одновременно (до 256 за запрос)

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

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

**Тело**

| Поле        | Тип     | Обязательно | Описание                            |
| ----------- | ------- | ----------- | ----------------------------------- |
| `order_ids` | `[]int` | Да          | ID заказов для отмены, максимум 256 |

**Вывод**

| Поле               | Тип     | Описание                                |
| ------------------ | ------- | --------------------------------------- |
| `code`             | `int`   | Код статуса                             |
| `failed_to_cancel` | `[]int` | ID заказов, которые не удалось отменить |

**Вход:**

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "order_ids": [38, 39]
}' 'https://api.clore.ai/v1/cancel_orders'
```

**Вывод:**

```
{
  "failed_to_cancel": [],
  "code": 0
}
```

#### 13. `poh_balance` <a href="#id-13-poh_balance" id="id-13-poh_balance"></a>

**Описание**

Получите баланс Proof of Holding: элементы, итоги и суммы предложений на PoH Marketplace

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

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

**Вывод**

| Поле                                          | Тип        | Описание                                      |
| --------------------------------------------- | ---------- | --------------------------------------------- |
| `code`                                        | `int`      | Код статуса                                   |
| `items`                                       | `[]объект` | Ваши элементы PoH с отдельными балансами      |
| `balance.total`                               | `float`    | Общий баланс PoH по всем элементам            |
| `balance.free_amount`                         | `float`    | Баланс PoH, не задействованный в предложениях |
| `balance.reward_amount`                       | `float`    | Баланс, подходящий для вознаграждений         |
| `balance.offers.rented_amount`                | `float`    | Сумма, сданная в аренду другим пользователям  |
| `balance.offers.rented_on_marketplace_amount` | `float`    | Сумма, размещенная на PoH Marketplace         |
| `balance.offers.leased_amount`                | `float`    | Сумма, арендованная у других пользователей    |

**Вход:**

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

**Вывод:**

```
{
  "items": [ { "balance": 5000 } ],
  "balance": {
    "total": 5000,
    "free_amount": 4000,
    "reward_amount": 5000,
    "offers": {
      "rented_amount": 0,
      "rented_on_marketplace_amount": 1000,
      "rented_finished_amount": 0,
      "leased_amount": 0
    }
  },
  "code": 0
}
```

#### 14. `server-config.json` <a href="#id-14-server-config-json" id="id-14-server-config-json"></a>

**Описание**

Получить статические данные конфигурации API. Аутентификация не требуется

**Вход:**

```
curl -XGET 'https://api.clore.ai/v1/server-config.json'
```

#### 15. `get_relay` <a href="#id-15-get_relay" id="id-15-get_relay"></a>

**Описание**

Получить relay-узлы для TCP-пересылки для вашей определенной страны. Аутентификация не требуется

**Вывод**

| Поле      | Тип      | Описание                |
| --------- | -------- | ----------------------- |
| `code`    | `int`    | Код статуса             |
| `country` | `строка` | Определенный код страны |
| `nodes`   | `объект` | Доступные relay-узлы    |

**Вход:**

```
curl -XGET 'https://api.clore.ai/v1/get_relay'
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
