> 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 en bruto. 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="https://2330542932-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyNlC5NV8aIpXnc76G7w%2Fuploads%2FoEhopGeayaKnbuDjgTEs%2FCLORE%20Docs%20API%20Page.png?alt=media&amp;token=a0adf6bb-1fde-4f1b-8236-dff2563ffbfd" alt=""><figcaption></figcaption></figure></div>

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

[CLORE.AI](http://clore.ai/) la api puede usarse para automatizar implementaciones 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 y pueden tener diferentes campos

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

**campo code**

| code | Descripción                                |
| ---- | ------------------------------------------ |
| `0`  | NORMAL                                     |
| `1`  | ERROR DE BASE DE DATOS                     |
| `2`  | DATOS DE ENTRADA INVÁLIDOS                 |
| `3`  | TOKEN DE API INVÁLIDO                      |
| `4`  | ENDPOINT INVÁ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. `wallets` <a href="#id-1-wallets" id="id-1-wallets"></a>

**Acerca de**

Devuelve billeteras y saldos

**Encabezados**

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

**Salida**

| Campo     | Tipo       | Descripción           |
| --------- | ---------- | --------------------- |
| `code`    | `int`      | Código de estado      |
| `wallets` | `[]string` | Arreglo 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. `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/) marketplace

**Encabezados**

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

**Salida**

| Campo                                 | Tipo       | Descripción                                                                                                                                         |
| ------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `code`                                | `int`      | Código de estado                                                                                                                                    |
| `limit`                               | `int`      | Número máximo de servidores que puede tener                                                                                                         |
| `servers`                             | `[]string` | Arreglo de servidores                                                                                                                               |
| `servers[x].name`                     | `string`   | Nombre del servidor seleccionado por el usuario                                                                                                     |
| `servers[x].connected`                | `string`   | ¿El servidor se ha conectado alguna vez a [clore.ai](http://clore.ai/)                                                                              |
| `servers[x].visibility`               | `string`   | Visibilidad en el marketplace                                                                                                                       |
| `servers[x].pricing`                  | `[]string` | Precio/día bajo demanda                                                                                                                             |
| `servers[x].online`                   | `bool`     | Indica si 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`               | `string`   | Token de registro de la máquina, devuelto solo hasta que la máquina se inicializa — **trátelo como una credencial**, registra máquinas en su cuenta |
| `servers[x].specs`                    | `[]string` | Especificaciones del servidor                                                                                                                       |
| `servers[x].remaining_time`           | `int`      | Hora de finalización del alquiler del último pedido activo (ms epoch)                                                                               |
| `servers[x].rental_state`             | `string`   | Estado agregado del alquiler de GPU: `ninguno`, `parcial`, o `completo`                                                                             |
| `servers[x].rented_gpus`              | `int`      | GPU actualmente alquiladas en órdenes activas                                                                                                       |
| `servers[x].total_gpus`               | `int`      | Total de GPU en el servidor                                                                                                                         |
| `servers[x].rented_price_by_currency` | `object`   | Suma de los precios de las órdenes activas por moneda                                                                                               |
| `servers[x].update_channel`           | `string`   | Canal de actualización del agente de hosting: `estable` o `beta`                                                                                    |
| `servers[x].requested_channel`        | `string`   | 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                                                                                                 |

> Los campos de estado de alquiler (`remaining_time`, `rental_state`, `rented_gpus`, `total_gpus`, `rented_price_by_currency`) solo están presentes mientras el servidor tenga una orden activa.

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

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

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

**Acerca de**

Obtenga la configuración de un servidor específico

**Encabezados**

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

**Cuerpo**

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

**Salida**

| Campo                   | Tipo                 | Descripción                                                                                                          |
| ----------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `code`                  | `int`                | Código de estado                                                                                                     |
| `creation_completed`    | `bool`               | ¿Se ha completado la creación del servidor?                                                                          |
| `config`                | `[]string`           | Configuración del servidor                                                                                           |
| `config.name`           | `string`             | Nombre del servidor seleccionado por el usuario                                                                      |
| `config.connected`      | `bool`               | ¿El servidor se ha conectado alguna vez a [clore.ai](http://clore.ai/)                                               |
| `config.visibility`     | `string`             | 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 del alquiler en horas                                                                                |
| `config.online`         | `bool`               | Indica si el servidor está en línea                                                                                  |
| `config.initialized`    | `bool`               | ¿El servidor se ha conectado 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 \| 3 - alquiler fijo en USD       |
| `config.specs`          | `[]string`           | Especificaciones del servidor                                                                                        |
| `config.background_job` | `object`             | Tarea en segundo plano cuando no está alquilado: `image`, `command`, `env`, `times_updated`                          |
| `config.autoprice`      | `object` \| `string` | Configuración de precios automáticos por moneda (los valores de cadena heredados `"pow"` / `"usd"` también aparecen) |
| `config.usd_pricing`    | `object`             | Objetivos de precio en USD — presente solo cuando el precio automático en USD está habilitado                        |
| `config.tenants`        | `[]object`           | Órdenes activas en el servidor: `rental_type`, `currency`, `price`, `remaining_time`, `gpu_count`                    |

> `server_config` también devuelve los mismos campos de estado de alquiler y de 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`. En ambos endpoints, los campos de estado de alquiler solo están presentes mientras el servidor tenga una orden activa.

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

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

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

**Acerca de**

Obtener marketplace

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `string` | 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)            |
| `servers`                       | `[]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 del alquiler en horas                                                                                 |
| `servers[x].price.on_demand`    | `[]string`         | Precio por día bajo demanda                                                                                           |
| `servers[x].price.spot`         | `[]string`         | Precio mínimo por día en el mercado spot                                                                              |
| `servers[x].rented`             | `bool`             | ¿El servidor está alquilado bajo demanda?                                                                             |
| `servers[x].specs`              | `[]string`         | Especificaciones del servidor                                                                                         |
| `servers[x].partial_gpu_rental` | `object` \| `bool` | `false` cuando el alquiler parcial no está disponible, de lo contrario `{ total_gpus, available_gpus, free_indices }` |

> `price.on_demand` y `price.spot` incluya solo las monedas que cada servidor acepta realmente — un servidor sin precio en alguna moneda no puede alquilarse en ella.

**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` | `string` | Sí          | Token de API |

**Cadena de consulta**

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

**Salida**

| Campo                    | Tipo       | Descripción                                                                                                                                                                                         |
| ------------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `code`                   | `int`      | Código de estado                                                                                                                                                                                    |
| `limit`                  | `int`      | Número máximo de órdenes activas                                                                                                                                                                    |
| `orders`                 | `[]string` | Arreglo de órdenes                                                                                                                                                                                  |
| `orders[x].id`           | `int`      | ID único de la orden                                                                                                                                                                                |
| `orders[x].fee`          | `float`    | Tarifa (%) pagada a [clore.ai](http://clore.ai/)                                                                                                                                                    |
| `orders[x].creation_fee` | `float`    | Tarifa de creación pagada a [clore.ai](http://clore.ai/)                                                                                                                                            |
| `orders[x].price`        | `float`    | Precio de la orden (costo) por día                                                                                                                                                                  |
| `orders[x].mrl`          | `int`      | Duración máxima del alquiler de la orden en segundos                                                                                                                                                |
| `orders[x].image`        | `string`   | Imagen Docker utilizada                                                                                                                                                                             |
| `orders[x].currency`     | `string`   | Moneda usada para la facturación                                                                                                                                                                    |
| `orders[x].spend`        | `float`    | Importe real debitado hasta ahora: valor acumulado del alquiler más la tarifa base del arrendatario (después de la reducción PoH) y cualquier tarifa adicional; excluye la tarifa única de creación |
| `orders[x].gpu_count`    | `int`      | Número de GPU que ocupa la orden (órdenes bajo demanda; equivale al total de GPU del equipo a menos que sea un alquiler parcial)                                                                    |
| `orders[x].ct`           | `int`      | Hora de creación (hora UNIX)                                                                                                                                                                        |
| `orders[x].p`            | `int`      | Clúster proxy usado actualmente                                                                                                                                                                     |
| `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`    | `string`   | Puerto del contenedor reenviado a través del 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 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. `spot_marketplace` <a href="#id-6-spot_marketplace" id="id-6-spot_marketplace"></a>

**Acerca de**

Obtener el mercado spot para un servidor específico

**Encabezados**

| Campo  | Tipo     | Obligatorio | Descripción  |
| ------ | -------- | ----------- | ------------ |
| `auth` | `string` | 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`                      | `object`  | Mercado                                                                       |
| `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 (en la moneda de la oferta)                           |
| `market.offers[x].currency`    | `string`  | Moneda de la oferta                                                           |
| `market.offers[x].active`      | `bool`    | Esta oferta está en uso actualmente                                           |
| `market.offers[x].my`          | `bool`    | Esta oferta me pertenece                                                      |
| `market.server`                | `object`  | Información del servidor                                                      |
| `market.server.min_pricing`    | `object`  | Precio mínimo de la oferta por día, por cada moneda aceptada                  |
| `market.server.mrl`            | `int`     | Duración máxima de alquiler en **horas**                                      |
| `market.server.visibility`     | `string`  | Solo puedes crear ofertas cuando la visibilidad es pública                    |
| `market.server.online`         | `bool`    | El servidor está en línea                                                     |
| `market.currency_rates_in_usd` | `object`  | Tipos de cambio USD en tiempo real usados para comparar ofertas entre monedas |

> Las ofertas pueden publicarse en cualquier moneda que acepte el servidor; las ofertas competidoras se comparan por su **valor en USD** (usando `currency_rates_in_usd`), no por su valor nominal.
>
> ⚠️ **Cambiado en agosto de 2026:** `market.server.mrl` ahora se devuelve en **horas** (antes, segundos). Un valor que se leía `262800` ahora se lee `73`.

**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,
        "currency": "bitcoin"
      }
    ],
    "server": {
      "min_pricing": {
        "bitcoin": 0.000001
      },
      "mrl": 73,
      "visibility": "public",
      "online": true
    },
    "currency_rates_in_usd": {
      "bitcoin": 110000,
      "CLORE-Blockchain": 0.0045,
      "USD-Blockchain": 1
    }
  },
  "exists": true,
  "code": 0
}
```

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

**Acerca de**

Configura los ajustes del servidor que estás ofreciendo en [clore.ai](http://clore.ai/) marketplace

**Encabezados**

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

**Cuerpo**

| Campo                        | Tipo     | Obligatorio | Descripción                                                                                                                                                     |
| ---------------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `nombre`                     | `string` | Sí          | Nombre del servidor seleccionado por el usuario                                                                                                                 |
| `disponibilidad`             | `bool`   | Sí          | ¿Se puede alquilar el servidor?                                                                                                                                 |
| `mrl`                        | `int`    | Sí          | Duración máxima de alquiler del servidor en **horas** (6 a 3000)                                                                                                |
| `bitcoin_on_demand`          | `float`  | Sí          | Precio bajo demanda en BTC por día                                                                                                                              |
| `bitcoin_spot`               | `float`  | Sí          | Precio mínimo spot en BTC por día                                                                                                                               |
| `CLORE-Blockchain_on_demand` | `float`  | No          | Precio bajo demanda en CLORE por día                                                                                                                            |
| `CLORE-Blockchain_spot`      | `float`  | No          | Precio mínimo spot en CLORE por día                                                                                                                             |
| `USD-Blockchain_on_demand`   | `float`  | No          | Precio bajo demanda en USD por día                                                                                                                              |
| `USD-Blockchain_spot`        | `float`  | No          | Precio mínimo spot en USD por día                                                                                                                               |
| `enabled-bitcoin`            | `bool`   | No\*        | Aceptar Bitcoin para este servidor                                                                                                                              |
| `enabled-CLORE-Blockchain`   | `bool`   | No\*        | Aceptar CLORE para este servidor                                                                                                                                |
| `enabled-USD-Blockchain`     | `bool`   | No\*        | Aceptar stablecoins USD para este servidor                                                                                                                      |
| `autoprice`                  | `object` | No          | Autoprecio por moneda: establece una clave de moneda (`bitcoin`, `CLORE-Blockchain`) a `"usd"` para autoprecio basado en USD o `false` para precios fijos       |
| `usd_pricing`                | `object` | No          | Objetivos de precio en USD por moneda, p. ej. `{ "bitcoin": { "on_demand": 10, "spot": 5 } }` — se usa solo para monedas con `autoprice` establecido en `"usd"` |

> \* **La lista de monedas aceptadas se reconstruye a partir de las `enabled-*` banderas en cada llamada.** Una moneda sin su `enabled-<currency>: true` bandera (o sin un precio válido) se elimina de las monedas aceptadas del servidor — omitir todas las banderas deja el servidor imposible de alquilar en cualquier moneda. Envía siempre `enabled-<currency>: true` para cada moneda que quieras seguir aceptando.
>
> Los precios por día tienen un límite por moneda: 0.000001–0.1 BTC, 0.1–5,000,000 CLORE, 0.1–10,000 USD.
>
> Cuando una moneda tiene autoprecio en USD, su precio cripto listado se deriva de `usd_pricing` al tipo de cambio en vivo (recalculado aproximadamente cada 10 minutos) y cualquier `<currency>_on_demand` / `<currency>_spot` valor enviado para ella se ignora. Los `usd_pricing` objetivos son cifras de $/día para todo el servidor validadas contra el rango en USD (0.1–1,000); los valores fuera de rango se ajustan al límite más cercano.

**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,
    "enabled-bitcoin":true,
    "bitcoin_on_demand":0.0001,
    "bitcoin_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`              | `string` | Sí          | Token de API                |
| `Tipo de contenido` | `string` | 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 |

> **Un precio por debajo del mínimo spot actual del servidor** se rechaza con el mínimo actual incluido:
>
> ```
> { "error": "amount_too_low", "min_price": 0.0000012, "code": 6 }
> ```

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

**Posible salida 1 (la reducción 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`    | `string` | Campo de descripción del error                           |
| `max_step` | `float`  | Valor más bajo al que actualmente puedes bajar el precio |

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

**Entrada 2 (reducción 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 (reducción de precio válida):**

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

**Posible salida 3 (bajar el precio aún más 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`            | `string` | 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**

Cancela una orden activa o una oferta spot

**Encabezados**

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

**Cuerpo**

| Campo   | Tipo     | Obligatorio | Descripción                                                                                                                          |
| ------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `id`    | `int`    | Sí          | ID único de la orden/oferta                                                                                                          |
| `issue` | `string` | No          | Si has encontrado algún problema con el servidor, puedes informarlo a [clore.ai](http://clore.ai/) al 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 informando de 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 bajo demanda con este endpoint

**Encabezados**

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

**Cuerpo**

| Campo                | Tipo     | Obligatorio | Descripción                                                                                                                                                                                                                                                                                                                   |
| -------------------- | -------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `currency`           | `string` | Sí          | Nombre de la moneda                                                                                                                                                                                                                                                                                                           |
| `image`              | `string` | Sí          | Imagen válida de Docker Hub                                                                                                                                                                                                                                                                                                   |
| `renting_server`     | `int`    | Sí          | ID del servidor que quieres alquilar                                                                                                                                                                                                                                                                                          |
| `tipo`               | `string` | Sí          | `bajo demanda` O `spot`                                                                                                                                                                                                                                                                                                       |
| `spotprice`          | `float`  | Depende     | Precio ofrecido por día en el mercado spot, requerido al crear una orden spot                                                                                                                                                                                                                                                 |
| `puertos`            | `object` | No          | Configuración de redirección de puertos, máximo 5 registros                                                                                                                                                                                                                                                                   |
| `env`                | `object` | No          | <p>Variables de entorno, limitadas a 12288 caracteres en total al convertirlas a cadena.<br>Nombre de variable - máximo 128 símbolos, no debe contener <code>-</code><br>Valor de la variable - máximo 1536 símbolos<br>Solo se conservan las primeras 30 variables válidas; las adicionales se descartan silenciosamente</p> |
| `jupyter_token`      | `string` | No          | Token de Jupyter para imágenes que tienen notebooks de Jupyter, máximo 32 caracteres \*                                                                                                                                                                                                                                       |
| `ssh_key`            | `string` | No          | Clave SSH para imágenes con SSH, máximo 3072 caracteres \*                                                                                                                                                                                                                                                                    |
| `ssh_password`       | `string` | No          | Contraseña SSH para imágenes con SSH, máximo 32 caracteres \*                                                                                                                                                                                                                                                                 |
| `command`            | `string` | No          | El comando se ejecutará en el servidor después de crear la orden                                                                                                                                                                                                                                                              |
| `required_price`     | `float`  | No          | Especifica el precio con el que quieres iniciar la orden; si el propietario de la máquina cambia el precio, la orden no se iniciará (solo bajo demanda)                                                                                                                                                                       |
| `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). Omite esto para alquilar todo el rig. Solo bajo demanda, solo rigs homogéneos                                                                                                     |
| `gpu_indices`        | `[]int`  | No          | Índices de ranuras de GPU a alquilar basados en 0; la longitud debe ser igual a `gpu_count`. Toma las ranuras libres de `partial_gpu_rental.free_indices`. Omite esto para que el backend elija las GPUs libres automáticamente                                                                                               |
| `autossh_entrypoint` | `bool`   | No          | Usa el entrypoint de clore.ai, que despliega automáticamente un servidor SSH y un `/root/onstart.sh` script                                                                                                                                                                                                                   |

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

**Salida**

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

> **Las ofertas spot por debajo del mínimo del servidor** se rechazan con el mínimo actual incluido, así que puedes reintentar de inmediato:
>
> ```
> { "error": "too_low_price", "min_price": 0.0000012, "code": 6 }
> ```
>
> El mínimo se recalcula a partir de los tipos de cambio en vivo aproximadamente cada 10 minutos, por lo que un precio leído en la lista del mercado puede estar ligeramente desactualizado — usa siempre el `min_price` devuelto para reintentar.

**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 bajo demanda):**

```
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 bajo demanda):**

```
{
  "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 comisiones: comisiones base del inquilino, ajustes de reducción de comisión PoH, comisiones de creación de órdenes y tu saldo PoH

**Encabezados**

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

**Salida**

| Campo                              | Tipo     | Descripción                                            |
| ---------------------------------- | -------- | ------------------------------------------------------ |
| `code`                             | `int`    | Código de estado                                       |
| `renter_fees.on_demand`            | `object` | Comisión base (%) por moneda para órdenes bajo demanda |
| `renter_fees.spot`                 | `object` | Comisión base (%) por moneda para órdenes spot         |
| `poh_config.max_reduction_percent` | `int`    | Reducción máxima de la comisión base mediante PoH (%)  |
| `poh_config.max_poh_amount`        | `int`    | Saldo PoH en el que se alcanza la reducción máxima     |
| `creation_fees.on_demand`          | `object` | Comisión de creación de orden por moneda               |
| `creation_fees.spot`               | `object` | Comisión de creación de orden spot por moneda          |
| `poh_balance`                      | `float`  | Tu saldo PoH en 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`              | `string` | Sí          | Token de API                |
| `Tipo de contenido` | `string` | 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 se pudieron cancelar |

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

**Encabezados**

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

**Salida**

| Campo                                         | Tipo       | Descripción                               |
| --------------------------------------------- | ---------- | ----------------------------------------- |
| `code`                                        | `int`      | Código de estado                          |
| `elementos`                                   | `[]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 listada en el Marketplace de PoH |
| `balance.offers.leased_amount`                | `float`    | Cantidad arrendada 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 relay 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` | `string` | Código de país detectado   |
| `nodes`   | `object` | Nodos de relay 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.clore.ai/clore.ai/clore.ai-eng-es/para-hosts/api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
