> 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-eng-es/para-hosts/api.md).

# API

> 💡 **Desarrolladores de Python:** Use el SDK oficial [clore-ai Python SDK](/clore.ai/clore.ai-eng-es/desarrolladores/python-sdk.md) en lugar de llamadas API directas. Maneja automáticamente la autenticación, la limitación de velocidad, los reintentos y el manejo de errores.
>
> **Inicio rápido:** `pip install clore-ai` — Consulte la [documentación del SDK de Python](/clore.ai/clore.ai-eng-es/desarrolladores/python-sdk.md) y [Referencia de la CLI](/clore.ai/clore.ai-eng-es/desarrolladores/cli-guide.md).

> 🧭 ¿Prefiere una referencia navegable? Abra la documentación interactiva de la API en [clore.ai/api-docs](https://clore.ai/api-docs). URL base para todos los endpoints de esta página: `https://api.clore.ai/v1/`.

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

### Introducción <a href="#introduction" id="introduction"></a>

[CLORE.AI](http://clore.ai/) la API se puede usar para automatizar implementaciones de sus cargas de trabajo en [CLORE.AI](http://clore.ai/)

Primero debe obtener una clave de API\
![alt text](https://clore.ai/assets/html/api-export1.png)\
![alt text](https://clore.ai/assets/html/api-export2.png)

***

### Respuestas de la API <a href="#api-responses" id="api-responses"></a>

Las respuestas se devuelven en formato JSON y pueden tener distintos campos

El campo que siempre se devuelve es code, que indica el estado

**campo code**

| code | Descripción                                |
| ---- | ------------------------------------------ |
| `0`  | NORMAL                                     |
| `1`  | ERROR DE BASE DE DATOS                     |
| `2`  | DATOS DE ENTRADA NO VÁLIDOS                |
| `3`  | TOKEN DE API NO VÁLIDO                     |
| `4`  | ENDPOINT NO VÁLIDO                         |
| `5`  | SE SUPERÓ EL LÍMITE DE 1 SOLICITUD/SEGUNDO |
| `6`  | Error especificado en `error` campo        |

***

### Endpoints <a href="#endpoints" id="endpoints"></a>

#### 1. `carteras` <a href="#id-1-wallets" id="id-1-wallets"></a>

**Acerca de**

Devuelve carteras y saldos

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Salida**

| Campo      | Tipo       | Descripción         |
| ---------- | ---------- | ------------------- |
| `code`     | `int`      | Código de estado    |
| `carteras` | `[]string` | Arreglo de carteras |

**Ejemplo**

**Entrada:**

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

**Salida:**

```
{
  "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>

**Acerca de**

Devuelve sus servidores que está proporcionando a [clore.ai](http://clore.ai/) mercado

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Salida**

| Campo                                 | Tipo       | Descripción                                                                                          |
| ------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------- |
| `code`                                | `int`      | Código de estado                                                                                     |
| `límite`                              | `int`      | Cantidad máxima de servidores que puede tener                                                        |
| `servidores`                          | `[]string` | Arreglo de servidores                                                                                |
| `servers[x].name`                     | `cadena`   | Nombre del servidor seleccionado por el usuario                                                      |
| `servers[x].connected`                | `cadena`   | ¿El servidor se conectó alguna vez a [clore.ai](http://clore.ai/)                                    |
| `servers[x].visibility`               | `cadena`   | Visibilidad en el marketplace                                                                        |
| `servers[x].pricing`                  | `[]string` | Precio/día bajo demanda                                                                              |
| `servers[x].online`                   | `bool`     | ¿El servidor está en línea?                                                                          |
| `servers[x].min_spot_pricing`         | `[]string` | Precio mínimo/día para alquilar en el mercado spot                                                   |
| `servers[x].init_token`               | `cadena`   | Token de inicialización                                                                              |
| `servers[x].specs`                    | `[]string` | Especificaciones del servidor                                                                        |
| `servers[x].remaining_time`           | `int`      | Hora de finalización del alquiler del último pedido activo (época en ms, 0 cuando no está alquilado) |
| `servers[x].rental_state`             | `cadena`   | Estado agregado del alquiler de GPU: `ninguno`, `parcial`, o `completo`                              |
| `servers[x].rented_gpus`              | `int`      | GPU actualmente alquiladas en las órdenes activas                                                    |
| `servers[x].total_gpus`               | `int`      | Total de GPU en el servidor                                                                          |
| `servers[x].rented_price_by_currency` | `objeto`   | Suma de los precios de las órdenes activas por moneda                                                |
| `servers[x].update_channel`           | `cadena`   | Canal de actualización del agente de alojamiento: `estable` o `beta`                                 |
| `servers[x].requested_channel`        | `cadena`   | Cambio de canal solicitado desde la interfaz web (solo presente cuando se solicita)                  |
| `servers[x].target_backend_version`   | `int`      | Versión del backend a la que apunta el canal actual                                                  |

**Ejemplo**

**Entrada:**

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

**Salida:**

```
{
  "servers": [
    {
      "name": "Michael",
      "connected": false,
      "visibility": "oculto",
      "pricing": { "bitcoin": 0, "usd": 0 },
      "online": false,
      "min_spot_pricing": { "bitcoin": 0, "usd": 0 },
      "init_token": "qnwVIMsZPjUWS7jw6gAbTOeoGQNgTH9XVxJaiCEbG0OlmfjF"
    },
    {
      "name": "Jan Vykydal",
      "connected": true,
      "visibility": "público",
      "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
}
```

Los valores en USD en `pricing` los objetos reflejan el modo de precios basado en USD cuando el host lo habilitó.

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

**Acerca de**

Obtiene la configuración de un servidor específico

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo         | Tipo     | Obligatorio | Descripción         |
| ------------- | -------- | ----------- | ------------------- |
| `server_name` | `cadena` | Sí          | Nombre del servidor |

**Salida**

| Campo                   | Tipo       | Descripción                                                                                        |
| ----------------------- | ---------- | -------------------------------------------------------------------------------------------------- |
| `code`                  | `int`      | Código de estado                                                                                   |
| `creation_completed`    | `bool`     | ¿La creación del servidor está completa?                                                           |
| `config`                | `[]string` | Configuración del servidor                                                                         |
| `config.name`           | `cadena`   | Nombre del servidor seleccionado por el usuario                                                    |
| `config.connected`      | `bool`     | ¿El servidor se conectó alguna vez a [clore.ai](http://clore.ai/)                                  |
| `config.visibility`     | `cadena`   | Visibilidad en el marketplace                                                                      |
| `config.pricing`        | `[]string` | Precio/día bajo demanda                                                                            |
| `config.spot_pricing`   | `[]string` | Precio mínimo/día para alquilar en el mercado spot                                                 |
| `config.mrl`            | `int`      | Duración máxima de alquiler en horas                                                               |
| `config.online`         | `bool`     | ¿El servidor está en línea?                                                                        |
| `config.initialized`    | `bool`     | ¿El servidor se conectó alguna vez a [clore.ai](http://clore.ai/)                                  |
| `config.id`             | `int`      | ID único del servidor                                                                              |
| `config.rental_status`  | `int`      | 0 - no alquilado \| 1 - alquilado en el mercado spot \| 2 - alquilado bajo demanda                 |
| `config.specs`          | `[]string` | Especificaciones del servidor                                                                      |
| `config.background_job` | `[]string` | Tarea en segundo plano cuando no está alquilado                                                    |
| `config.tenants`        | `[]object` | Órdenes activas en el servidor: `rental_type`, `currency`, `precio`, `remaining_time`, `gpu_count` |

> `server_config` también devuelve los mismos campos de estado de alquiler y canal de actualización que `my_servers`: `remaining_time`, `rental_state`, `rented_gpus`, `total_gpus`, `rented_price_by_currency`, `update_channel`, `requested_channel`, `target_backend_version`.

**Ejemplo**

**Entrada:**

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

**Salida:**

```
{
  "config": {
    "name": "Jan Vykydal",
    "connected": true,
    "visibility": "público",
    "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
}
```

Los valores en USD en `pricing` los objetos reflejan el modo de precios basado en USD cuando el host lo habilitó.

#### 4. `mercado` <a href="#id-4-marketplace" id="id-4-marketplace"></a>

**Acerca de**

Obtener marketplace

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Salida**

| Campo                           | Tipo               | Descripción                                                                                                           |
| ------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
| `code`                          | `int`              | Código de estado                                                                                                      |
| `my_servers`                    | `[]string`         | Arreglo de IDs de servidores que está proporcionando a [clore.ai](http://clore.ai/) (no se puede alquilar)            |
| `servidores`                    | `[]string`         | Arreglo de servidores públicos en el marketplace                                                                      |
| `servers[x].id`                 | `int`              | ID único del servidor                                                                                                 |
| `servers[x].owner`              | `int`              | ID único del propietario                                                                                              |
| `servers[x].mrl`                | `int`              | Duración máxima de alquiler en horas                                                                                  |
| `servers[x].price.on_demand`    | `[]string`         | Precio por día bajo demanda                                                                                           |
| `servers[x].spot`               | `[]string`         | Precio mínimo del mercado spot por día                                                                                |
| `servers[x].rented`             | `bool`             | ¿El servidor está alquilado bajo demanda?                                                                             |
| `servers[x].specs`              | `[]string`         | Especificaciones del servidor                                                                                         |
| `servers[x].partial_gpu_rental` | `objeto` \| `bool` | `false` cuando el alquiler parcial no está disponible; de lo contrario `{ total_gpus, available_gpus, free_indices }` |

**Ejemplo**

Obtener marketplace

**Entrada:**

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

**Salida:**

```
{
  "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>

**Acerca de**

Obtenga sus órdenes

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Cadena de consulta**

| Campo              | Tipo   | Obligatorio | Descripción                                 |
| ------------------ | ------ | ----------- | ------------------------------------------- |
| `return_completed` | `bool` | No          | Devuelve las órdenes completadas (vencidas) |

**Salida**

| Campo                    | Tipo       | Descripción                                                |
| ------------------------ | ---------- | ---------------------------------------------------------- |
| `code`                   | `int`      | Código de estado                                           |
| `límite`                 | `int`      | Cantidad máxima de órdenes activas                         |
| `órdenes`                | `[]string` | Arreglo de órdenes                                         |
| `orders[x].id`           | `int`      | ID único del pedido                                        |
| `orders[x].fee`          | `float`    | Comisión (%) pagada a [clore.ai](http://clore.ai/)         |
| `orders[x].creation_fee` | `float`    | Comisión de creación pagada a [clore.ai](http://clore.ai/) |
| `orders[x].price`        | `float`    | Precio de la orden (coste) por día                         |
| `orders[x].mrl`          | `int`      | Duración máxima del alquiler de la orden en segundos       |
| `orders[x].image`        | `cadena`   | Imagen de Docker utilizada                                 |
| `orders[x].currency`     | `cadena`   | Moneda utilizada para la facturación                       |
| `orders[x].spend`        | `float`    | Dinero gastado en la orden                                 |
| `orders[x].ct`           | `int`      | Hora de creación (hora UNIX)                               |
| `orders[x].p`            | `int`      | Clúster de proxy actualmente utilizado                     |
| `orders[x].specs`        | `[]string` | Especificaciones del servidor                              |
| `orders[x].si`           | `int`      | ID único del servidor                                      |
| `orders[x].pub_cluster`  | `[]string` | Endpoints públicos con puertos reenviados                  |
| `orders[x].tcp_ports`    | `[]string` | Reenvío de puertos TCP                                     |
| `orders[x].http_port`    | `cadena`   | Puerto del contenedor reenviado a través de un proxy HTTPS |
| `orders[x].spot`         | `bool`     | Indicación de que es una orden spot                        |
| `orders[x].expired`      | `bool`     | Indicación de que la orden ha vencido                      |

**Entrada:**

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

**Salida:**

```
{
  "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. `spot_marketplace` <a href="#id-6-spot_marketplace" id="id-6-spot_marketplace"></a>

**Acerca de**

Obtiene el marketplace spot para un servidor específico

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Cadena de consulta**

| Campo     | Tipo  | Obligatorio | Descripción           |
| --------- | ----- | ----------- | --------------------- |
| `mercado` | `int` | Sí          | ID único del servidor |

**Salida**

| Campo                       | Tipo      | Descripción                                               |
| --------------------------- | --------- | --------------------------------------------------------- |
| `code`                      | `int`     | Código de estado                                          |
| `existe`                    | `bool`    | Verificación de que el mercado existe                     |
| `mercado`                   | `objeto`  | Marketplace                                               |
| `market.offers`             | `arreglo` | Ofertas de alquiler para el servidor                      |
| `market.offers[x].offer_id` | `int`     | ID único de la oferta                                     |
| `market.offers[x].bid`      | `float`   | Precio ofrecido por día                                   |
| `market.offers[x].active`   | `bool`    | Esta oferta está actualmente en uso                       |
| `market.offers[x].my`       | `bool`    | Esta oferta me pertenece                                  |
| `market.server`             | `objeto`  | Información del servidor                                  |
| `market.server.min_pricing` | `objeto`  | Precio mínimo de la oferta por día                        |
| `market.server.mrl`         | `int`     | Duración máxima del alquiler en segundos                  |
| `market.server.visibility`  | `cadena`  | Solo puede crear ofertas cuando la visibilidad es pública |
| `market.server.online`      | `bool`    | El servidor está en línea                                 |

**Entrada:**

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

**Salida:**

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

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

**Acerca de**

Configure los ajustes del servidor que está proporcionando en [clore.ai](http://clore.ai/) mercado

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo            | Tipo     | Obligatorio | Descripción                                     |
| ---------------- | -------- | ----------- | ----------------------------------------------- |
| `nombre`         | `cadena` | Sí          | Nombre del servidor seleccionado por el usuario |
| `disponibilidad` | `bool`   | Sí          | ¿Se puede alquilar el servidor?                 |
| `mrl`            | `int`    | Sí          | Duración máxima del alquiler del servidor       |
| `on_demand`      | `float`  | Sí          | Precio por día de su servidor bajo demanda      |
| `spot`           | `float`  | Sí          | Precio mínimo por día para una oferta SPOT      |

> Los precios por día están limitados a 0.015 BTC / 600,000 CLORE / 1,000 USD.

**Salida**

| Campo  | Tipo  | Descripción      |
| ------ | ----- | ---------------- |
| `code` | `int` | Código de estado |

**Ejemplo**

Vamos a crear una prueba de envío para una transacción enviada desde la cartera actual.

**Entrada:**

```
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'
```

**Salida:**

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

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

**Acerca de**

Establece el precio por día en tu oferta del mercado SPOT

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo           | Tipo    | Obligatorio | Descripción                |
| --------------- | ------- | ----------- | -------------------------- |
| `order_id`      | `int`   | Sí          | ID único de la oferta      |
| `desired_price` | `float` | Sí          | Tu precio ofrecido por día |

**Ejemplo**

Intentemos actualizar el precio del mercado spot

**Entrada 1 (La bajada fue demasiado grande):**

```
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'
```

**Posible salida 1 (La bajada fue demasiado grande):**\
Puedes bajar el precio de la oferta del mercado spot como máximo en 0.00000100 ₿

| Campo      | Tipo     | Descripción                                                      |
| ---------- | -------- | ---------------------------------------------------------------- |
| `code`     | `int`    | Código de estado                                                 |
| `error`    | `cadena` | Campo de descripción del error                                   |
| `max_step` | `float`  | Valor más bajo posible al que puedes bajar el precio actualmente |

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

**Entrada 2 (Bajada de precio válida):**

```
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'
```

**Posible salida 2 (Bajada de precio válida):**

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

**Entrada 3 (Bajar aún más el precio después de enviar la Entrada 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
```

**Posible salida 3 (Bajar aún más el precio después de enviar la Entrada 2):**\
Puedes bajar el precio spot una vez cada 600 segundos

| Campo              | Tipo     | Descripción                                                           |
| ------------------ | -------- | --------------------------------------------------------------------- |
| `code`             | `int`    | Código de estado                                                      |
| `error`            | `cadena` | Campo de descripción del error                                        |
| `time_to_lowering` | `float`  | Tiempo restante (s) hasta la siguiente posibilidad de bajar el precio |

```
{
    "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>

**Acerca de**

Cancela una orden activa o una oferta spot

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo   | Tipo     | Obligatorio | Descripción                                                                                                                          |
| ------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `id`    | `int`    | Sí          | ID único de la orden/oferta                                                                                                          |
| `issue` | `cadena` | No          | Si has encontrado algún problema con el servidor, puedes reportarlo a [clore.ai](http://clore.ai/) el equipo, máximo 2048 caracteres |

**Salida**

| Campo  | Tipo  | Descripción      |
| ------ | ----- | ---------------- |
| `code` | `int` | Código de estado |

**Ejemplo**

Cancelar orden/oferta

**Entrada:**\
En este ejemplo estamos reportando problemas con la GPU #1; si no tienes problemas, no incluyas el campo issue.\
Puedes escribir cualquier mensaje en el campo de texto y lo investigaremos

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "id":39,
    "issue":"La GPU #1 se estaba sobrecalentando y reduciendo su rendimiento"
}' 'https://api.clore.ai/v1/cancel_order'
```

**Salida:**

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

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

**Acerca de**

Puedes crear una oferta spot o una orden on-demand con este endpoint\
Este endpoint también solo permite 1 solicitud cada 5 segundos

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo                | Tipo     | Obligatorio | Descripción                                                                                                                                                                                                                     |
| -------------------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `currency`           | `cadena` | Sí          | Nombre de la moneda                                                                                                                                                                                                             |
| `image`              | `cadena` | Sí          | Imagen válida de Docker Hub                                                                                                                                                                                                     |
| `renting_server`     | `int`    | Sí          | ID del servidor que quieres alquilar                                                                                                                                                                                            |
| `type`               | `cadena` | Sí          | `on-demand` O `spot`                                                                                                                                                                                                            |
| `spotprice`          | `float`  | Depende     | Precio ofrecido por día en el mercado spot, requerido al crear una orden spot                                                                                                                                                   |
| `ports`              | `objeto` | No          | Configuración de reenvío de puertos, máximo 5 registros                                                                                                                                                                         |
| `env`                | `objeto` | No          | <p>Variables de entorno, limitadas a 12000 caracteres en total al serializarlas.<br>Nombre de la variable - máximo 128 símbolos<br>Valor de la variable - máximo 1536 símbolos</p>                                              |
| `jupyter_token`      | `cadena` | No          | Token de Jupyter para imágenes que tienen notebooks de Jupyter, máximo 32 caracteres \*                                                                                                                                         |
| `ssh_key`            | `cadena` | No          | Clave SSH para imágenes con SSH, máximo 3072 caracteres \*                                                                                                                                                                      |
| `ssh_password`       | `cadena` | No          | Contraseña SSH para imágenes con SSH, máximo 32 caracteres \*                                                                                                                                                                   |
| `command`            | `cadena` | No          | El comando se ejecutará en el servidor después de crear la orden                                                                                                                                                                |
| `required_price`     | `float`  | No          | Especifica el precio al que quieres iniciar la orden; si el propietario de la máquina cambia el precio, la orden no se iniciará (solo on-demand)                                                                                |
| `gpu_count`          | `int`    | No          | Número de GPUs a alquilar en servidores que admiten [alquiler parcial](/clore.ai/clore.ai-eng-es/para-arrendatarios/partial-gpu-rental.md). Omítelo para alquilar el rig completo. Solo on-demand, solo rigs homogéneos         |
| `gpu_indices`        | `[]int`  | No          | Índices de ranuras de GPU basados en 0 para alquilar; la longitud debe ser igual a `gpu_count`. Toma las ranuras libres de `partial_gpu_rental.free_indices`. Omítelo para que el backend elija automáticamente las GPUs libres |
| `autossh_entrypoint` | `bool`   | No          | Usa el punto de entrada de clore.ai, que despliega automáticamente un servidor SSH y un script personalizado `/root/onstart.sh` script                                                                                          |

\* En los campos marcados con asterisco solo puedes introducir caracteres de este grupo regexp `/^[a-zA-Z0-9\s-=.@+/]+$/`

**Salida**

| Campo  | Tipo  | Descripción      |
| ------ | ----- | ---------------- |
| `code` | `int` | Código de estado |

**Ejemplo**

**Entrada 1 (Crear oferta spot):**

```
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'
```

**Salida 1 (Crear oferta spot):**

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

**Entrada 2 (Crear orden 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'
```

**Salida 2 (Crear orden on-demand):**

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

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

**Acerca de**

Obtén la configuración actual de tarifas: tarifas base para arrendatarios, ajustes de reducción de tarifas PoH, tarifas de creación de órdenes y tu saldo PoH

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Salida**

| Campo                              | Tipo     | Descripción                                                |
| ---------------------------------- | -------- | ---------------------------------------------------------- |
| `code`                             | `int`    | Código de estado                                           |
| `renter_fees.on_demand`            | `objeto` | Tarifa base (%) por moneda para órdenes on-demand          |
| `renter_fees.spot`                 | `objeto` | Tarifa base (%) por moneda para órdenes spot               |
| `poh_config.max_reduction_percent` | `int`    | Reducción máxima de la tarifa base a través de PoH (%)     |
| `poh_config.max_poh_amount`        | `int`    | Saldo PoH a partir del cual se alcanza la reducción máxima |
| `creation_fees.on_demand`          | `objeto` | Tarifa de creación de orden por moneda                     |
| `creation_fees.spot`               | `objeto` | Tarifa de creación de orden spot por moneda                |
| `poh_balance`                      | `float`  | Tu saldo PoH de CLORE                                      |

**Entrada:**

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

**Salida:**

```
{
  "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>

**Acerca de**

Cancela varias órdenes a la vez (hasta 256 por solicitud)

**Encabezados**

| Campo               | Tipo     | Obligatorio | Descripción                 |
| ------------------- | -------- | ----------- | --------------------------- |
| `auth`              | `cadena` | Sí          | token de API                |
| `Tipo de contenido` | `cadena` | Sí          | Debe ser `application/json` |

**Cuerpo**

| Campo       | Tipo    | Obligatorio | Descripción                              |
| ----------- | ------- | ----------- | ---------------------------------------- |
| `order_ids` | `[]int` | Sí          | IDs de órdenes para cancelar, máximo 256 |

**Salida**

| Campo              | Tipo    | Descripción                               |
| ------------------ | ------- | ----------------------------------------- |
| `code`             | `int`   | Código de estado                          |
| `failed_to_cancel` | `[]int` | IDs de órdenes que no pudieron cancelarse |

**Entrada:**

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

**Salida:**

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

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

**Acerca de**

Obtén tu saldo de Proof of Holding: elementos, totales y montos de ofertas del mercado PoH

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `cadena` | Sí          | token de API |

**Salida**

| Campo                                         | Tipo       | Descripción                               |
| --------------------------------------------- | ---------- | ----------------------------------------- |
| `code`                                        | `int`      | Código de estado                          |
| `items`                                       | `[]object` | Tus elementos PoH con saldos individuales |
| `balance.total`                               | `float`    | Saldo PoH total entre todos los elementos |
| `balance.free_amount`                         | `float`    | Saldo PoH no comprometido en ofertas      |
| `balance.reward_amount`                       | `float`    | Saldo elegible para recompensas           |
| `balance.offers.rented_amount`                | `float`    | Cantidad alquilada a otros usuarios       |
| `balance.offers.rented_on_marketplace_amount` | `float`    | Cantidad publicada en el mercado PoH      |
| `balance.offers.leased_amount`                | `float`    | Cantidad alquilada de otros usuarios      |

**Entrada:**

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

**Salida:**

```
{
  "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>

**Acerca de**

Obtén datos de configuración estática de la API. No requiere autenticación

**Entrada:**

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

**Acerca de**

Obtén nodos de retransmisión de reenvío TCP para tu país detectado. No requiere autenticación

**Salida**

| Campo     | Tipo     | Descripción                        |
| --------- | -------- | ---------------------------------- |
| `code`    | `int`    | Código de estado                   |
| `country` | `cadena` | Código de país detectado           |
| `nodes`   | `objeto` | Nodos de retransmisión disponibles |

**Entrada:**

```
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-eng-es/para-hosts/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.
