# API

> 💡 **Desarrolladores de Python:** Usen el oficial [SDK de Python de clore-ai](/clore.ai/clore.ai-eng-es/desarrolladores/python-sdk.md) en lugar de llamadas directas a la API. Maneja autenticación, limitación de tasa, reintentos y manejo de errores automáticamente.
>
> **Inicio rápido:** `pip install clore-ai` — Vea el [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).

<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 puede usarse para automatizar despliegues de sus cargas de trabajo en [CLORE.AI](http://clore.ai/)

Primero necesita 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, pueden tener diferentes campos

El campo siempre devuelto es code, que indica el estado

**campo code**

| código | Descripción                               |
| ------ | ----------------------------------------- |
| `0`    | NORMAL                                    |
| `1`    | ERROR DE BASE DE DATOS                    |
| `2`    | DATOS DE ENTRADA INVÁLIDOS                |
| `3`    | TOKEN DE API INVÁLIDO                     |
| `4`    | PUNTO FINAL INVÁLIDO                      |
| `5`    | EXCEDIDO el límite de 1 solicitud/segundo |
| `6`    | Error especificado en `error` campo       |

***

### Puntos finales <a href="#endpoints" id="endpoints"></a>

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

**Acerca de**

Devuelve billeteras y saldos

**Encabezados**

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

**Salida**

| Campo        | Tipo       | Descripción         |
| ------------ | ---------- | ------------------- |
| `código`     | `int`      | Código de estado    |
| `billeteras` | `[]string` | Array de billeteras |

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

**Acerca de**

Devuelve sus servidores que usted 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                                                         |
| -------------------------------- | ---------- | ------------------------------------------------------------------- |
| `código`                         | `int`      | Código de estado                                                    |
| `límite`                         | `int`      | Número máximo de servidores que puede poseer                        |
| `servidores`                     | `[]string` | Array de servidores                                                 |
| `servidores[x].name`             | `cadena`   | Nombre del servidor seleccionado por el usuario                     |
| `servidores[x].connected`        | `cadena`   | Si el servidor alguna vez se conectó a [clore.ai](http://clore.ai/) |
| `servidores[x].visibility`       | `cadena`   | Visibilidad en el mercado                                           |
| `servidores[x].pricing`          | `[]string` | Precio/día bajo demanda                                             |
| `servidores[x].online`           | `bool`     | El servidor está en línea                                           |
| `servidores[x].min_spot_pricing` | `[]string` | Precio mínimo/día para alquilar en el mercado spot                  |
| `servidores[x].init_token`       | `cadena`   | Token de inicialización                                             |
| `servidores[x].specs`            | `[]string` | Especificaciones del servidor                                       |

**Ejemplo**

**Entrada:**

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

**Salida:**

```
{
  "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 aún no implementado**

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

**Acerca de**

Obtener la configuración de un servidor específico

**Encabezados**

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

**Cuerpo**

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

**Salida**

| Campo                   | Tipo       | Descripción                                                                  |
| ----------------------- | ---------- | ---------------------------------------------------------------------------- |
| `código`                | `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`     | Si el servidor alguna vez se conectó a [clore.ai](http://clore.ai/)          |
| `config.visibility`     | `cadena`   | Visibilidad en el mercado                                                    |
| `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`     | Si el servidor alguna vez se conectó a [clore.ai](http://clore.ai/)          |
| `config.id`             | `int`      | ID único del servidor                                                        |
| `config.rental_status`  | `int`      | 0 - no alquilado \| 1 - Alquilado en mercado spot \| 2 - Alquilado On Demand |
| `config.specs`          | `[]string` | Especificaciones del servidor                                                |
| `config.background_job` | `[]string` | Trabajo en segundo plano cuando no está alquilado                            |

**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": "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 aún no implementado**

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

**Acerca de**

Obtener mercado

**Encabezados**

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

**Salida**

| Campo                        | Tipo       | Descripción                                                                                                     |
| ---------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- |
| `código`                     | `int`      | Código de estado                                                                                                |
| `mis_servidores`             | `[]string` | Array de IDs de servidores que usted está proporcionando a [clore.ai](http://clore.ai/) (no se pueden alquilar) |
| `servidores`                 | `[]string` | Array de servidores públicos en el mercado                                                                      |
| `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 bajo demanda por día                                                                                     |
| `servers[x].spot`            | `[]string` | Precio mínimo del mercado spot por día                                                                          |
| `servers[x].rented`          | `bool`     | Si el servidor está alquilado bajo demanda                                                                      |
| `servidores[x].specs`        | `[]string` | Especificaciones del servidor                                                                                   |

**Ejemplo**

Obtener mercado

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

**Acerca de**

Obtener sus pedidos

**Encabezados**

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

**Cadena de consulta**

| Campo              | Tipo   | Obligatorio | Descripción                              |
| ------------------ | ------ | ----------- | ---------------------------------------- |
| `return_completed` | `bool` | No          | Devolver pedidos completados (expirados) |

**Salida**

| Campo                    | Tipo       | Descripción                                                |
| ------------------------ | ---------- | ---------------------------------------------------------- |
| `código`                 | `int`      | Código de estado                                           |
| `límite`                 | `int`      | Recuento máximo de pedidos activos                         |
| `pedidos`                | `[]string` | Array de pedidos                                           |
| `orders[x].id`           | `int`      | ID único de 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 del pedido (coste) por día                          |
| `orders[x].mrl`          | `int`      | Duración máxima de alquiler del pedido en segundos         |
| `orders[x].image`        | `cadena`   | Imagen docker utilizada                                    |
| `orders[x].currency`     | `cadena`   | Moneda usada para facturación                              |
| `orders[x].spend`        | `float`    | Dinero gastado en el pedido                                |
| `orders[x].ct`           | `int`      | Hora de creación (tiempo UNIX)                             |
| `orders[x].p`            | `int`      | Clúster proxy actualmente usado                            |
| `orders[x].specs`        | `[]string` | Especificaciones del servidor                              |
| `orders[x].si`           | `int`      | ID único del servidor                                      |
| `orders[x].pub_cluster`  | `[]string` | Puntos finales 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 del proxy HTTPS   |
| `orders[x].spot`         | `bool`     | Indicación de que es un pedido spot                        |
| `orders[x].expired`      | `bool`     | Indicación de que el pedido ha expirado                    |

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

**Acerca de**

Obtener mercado 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                                               |
| --------------------------- | -------- | --------------------------------------------------------- |
| `código`                    | `int`    | Código de estado                                          |
| `existe`                    | `bool`   | Verificación de que el mercado existe                     |
| `mercado`                   | `objeto` | Mercado                                                   |
| `market.offers`             | `array`  | Ofertas de alquiler para el servidor                      |
| `market.offers[x].offer_id` | `int`    | ID único de oferta                                        |
| `market.offers[x].bid`      | `float`  | Precio ofrecido por día                                   |
| `market.offers[x].active`   | `bool`   | Esta oferta está siendo usada actualmente                 |
| `market.offers[x].my`       | `bool`   | Esta oferta es mía                                        |
| `market.server`             | `objeto` | Información del servidor                                  |
| `market.server.min_pricing` | `objeto` | Precio mínimo de oferta por día                           |
| `market.server.mrl`         | `int`    | Duración máxima de alquiler en segundos                   |
| `market.server.visibility`  | `cadena` | Puede crear ofertas solo 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": "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>

**Acerca de**

Configurar 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                |
| `Content-type` | `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í          | Puede el servidor ser alquilado                 |
| `mrl`            | `int`    | Sí          | Duración máxima de alquiler del servidor        |
| `on_demand`      | `float`  | Sí          | Precio por día para su servidor bajo demanda    |
| `spot`           | `float`  | Sí          | Precio mínimo por día para oferta SPOT          |

**Salida**

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

**Ejemplo**

Vamos a crear una prueba de envío para una transacción enviada desde la billetera 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**

Establecer precio por día en su oferta del mercado SPOT

**Encabezados**

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

**Cuerpo**

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

**Ejemplo**

Intentemos actualizar el precio del mercado spot

**Entrada 1 (La reducción 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'
```

**Salida posible 1 (La reducción fue demasiado grande):**\
Puede reducir el precio de la oferta del mercado spot como máximo 0.00000100 ₿

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

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

**Entrada 2 (Paso de precio válido):**

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

**Salida posible 2 (Paso de precio válido):**

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

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

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

| Campo              | Tipo     | Descripción                                                            |
| ------------------ | -------- | ---------------------------------------------------------------------- |
| `código`           | `int`    | Código de estado                                                       |
| `error`            | `cadena` | Campo de descripción del error                                         |
| `time_to_lowering` | `float`  | Tiempo restante (seg) para 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**

Establecer precio por día en su oferta del mercado SPOT

**Encabezados**

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

**Cuerpo**

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

**Salida**

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

**Ejemplo**

Cancelar pedido/oferta

**Entrada:**\
En este ejemplo estamos reportando problemas con la GPU #1, si no tiene problemas, no incluya el campo issue.\
Puede 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":"GPU #1 Se sobrecalentaba y reducÍa 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**

Puede crear oferta spot o pedido bajo demanda con este punto final\
Este punto final también permite solo 1 solicitud cada 5 segundos

**Encabezados**

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

**Cuerpo**

| Campo                | Tipo     | Obligatorio | Descripción                                                                                                                                                                                     |
| -------------------- | -------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `moneda`             | `cadena` | Sí          | Nombre de la moneda                                                                                                                                                                             |
| `imagen`             | `cadena` | Sí          | Imagen válida de dockerhub                                                                                                                                                                      |
| `renting_server`     | `int`    | Sí          | ID del servidor que desea alquilar                                                                                                                                                              |
| `tipo`               | `cadena` | Sí          | `bajo_demanda` O `spot`                                                                                                                                                                         |
| `spotprice`          | `float`  | Depende     | Precio ofrecido por día en el mercado spot, requerido al hacer un pedido spot                                                                                                                   |
| `puertos`            | `objeto` | No          | Configuración de reenvío de puertos, máximo 5 entradas                                                                                                                                          |
| `env`                | `objeto` | No          | <p>Variables de entorno, limitadas a 12000 caracteres en total cuando se convierten a cadena.<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 cuadernos 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 \*                                                                                                                                   |
| `comando`            | `cadena` | No          | El comando se ejecutará en el servidor después de la creación del pedido                                                                                                                        |
| `precio_requerido`   | `float`  | No          | Especifique el precio por el que desea iniciar el pedido, si el propietario de la máquina cambia el precio, entonces el pedido no se iniciará (solo bajo demanda)                               |
| `autossh_entrypoint` | `bool`   | No          | Use el entrypoint de clore.ai, que despliega automáticamente el servidor SSH y el personalizado `/root/onstart.sh` script                                                                       |

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

**Salida**

| Campo    | Tipo  | Descripción      |
| -------- | ----- | ---------------- |
| `código` | `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 pedido bajo demanda):**

```
curl -XPOST -H 'auth: 6FcuR7ibcwKR1Z32lEFoSotzUUtzKO2H' -H "Content-type: application/json" -d '
{
    "currency":"bitcoin",
    "image":"cloreai/ubuntu20.04-jupyter",
    "renting_server":6,
    "type":"bajo-demanda",
    "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 pedido bajo demanda):**

```
{
  "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-eng-es/para-anfitriones/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.
