> 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-fr/pour-les-hotes/api.md).

# API

> 💡 **Développeurs Python :** Utilisez le SDK officiel [SDK Python clore-ai](/clore.ai/clore.ai-eng-fr/developpeurs/python-sdk.md) au lieu d'appels API bruts. Il gère automatiquement l'authentification, la limitation du débit, les nouvelles tentatives et la gestion des erreurs.
>
> **Démarrage rapide :** `pip install clore-ai` — Voir la [documentation du SDK Python](/clore.ai/clore.ai-eng-fr/developpeurs/python-sdk.md) et [Référence du CLI](/clore.ai/clore.ai-eng-fr/developpeurs/cli-guide.md).

> 🧭 Vous préférez une référence consultable ? Ouvrez la documentation API interactive à [clore.ai/api-docs](https://clore.ai/api-docs). URL de base pour tous les points de terminaison de cette page : `https://api.clore.ai/v1/`.

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

### Introduction <a href="#introduction" id="introduction"></a>

[CLORE.AI](http://clore.ai/) L'API peut être utilisée pour automatiser le déploiement de vos charges de travail sur [CLORE.AI](http://clore.ai/)

Tout d'abord, vous devez obtenir une clé API\
![alt text](https://clore.ai/assets/html/api-export1.png)\
![alt text](https://clore.ai/assets/html/api-export2.png)

***

### Réponses de l'API <a href="#api-responses" id="api-responses"></a>

Les réponses sont renvoyées au format JSON et peuvent comporter différents champs

Le champ toujours renvoyé est code, indiquant le statut

**champ code**

| code | Description                          |
| ---- | ------------------------------------ |
| `0`  | NORMAL                               |
| `1`  | ERREUR DE BASE DE DONNÉES            |
| `2`  | DONNÉES D'ENTRÉE INVALIDES           |
| `3`  | JETON API INVALIDE                   |
| `4`  | POINT DE TERMINAISON INVALIDE        |
| `5`  | Limite de 1 requête/seconde dépassée |
| `6`  | Erreur spécifiée dans `erreur` champ |

***

### Points de terminaison <a href="#endpoints" id="endpoints"></a>

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

**À propos**

Renvoie les portefeuilles et les soldes

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Sortie**

| Champ           | Type       | Description              |
| --------------- | ---------- | ------------------------ |
| `code`          | `int`      | Code d'état              |
| `portefeuilles` | `[]string` | Tableau de portefeuilles |

**Exemple**

**Entrée :**

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

**Sortie :**

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

#### 2. `mes serveurs` <a href="#id-2-my_servers" id="id-2-my_servers"></a>

**À propos**

Renvoie les serveurs que vous mettez à disposition pour [clore.ai](http://clore.ai/) place de marché

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Sortie**

| Champ                                 | Type       | Description                                                                                        |
| ------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------- |
| `code`                                | `int`      | Code d'état                                                                                        |
| `limite`                              | `int`      | Nombre maximal de serveurs que vous pouvez posséder                                                |
| `serveurs`                            | `[]string` | Tableau de serveurs                                                                                |
| `servers[x].name`                     | `chaîne`   | Nom du serveur sélectionné par l'utilisateur                                                       |
| `servers[x].connected`                | `chaîne`   | Le serveur a-t-il déjà été connecté à [clore.ai](http://clore.ai/)                                 |
| `servers[x].visibility`               | `chaîne`   | Visibilité sur la place de marché                                                                  |
| `servers[x].pricing`                  | `[]string` | Prix/jour à la demande                                                                             |
| `servers[x].online`                   | `bool`     | Le serveur est-il en ligne                                                                         |
| `servers[x].min_spot_pricing`         | `[]string` | Prix minimal/jour pour louer sur le marché spot                                                    |
| `servers[x].init_token`               | `chaîne`   | Jeton d'initialisation                                                                             |
| `servers[x].specs`                    | `[]string` | Spécifications du serveur                                                                          |
| `servers[x].remaining_time`           | `int`      | Heure de fin de location de la dernière commande active (époque en ms, 0 lorsqu'il n'est pas loué) |
| `servers[x].rental_state`             | `chaîne`   | État agrégé de location des GPU : `aucun`, `partiel`, ou `complet`                                 |
| `servers[x].rented_gpus`              | `int`      | GPU actuellement loués dans les commandes actives                                                  |
| `servers[x].total_gpus`               | `int`      | Nombre total de GPU sur le serveur                                                                 |
| `servers[x].rented_price_by_currency` | `objet`    | Somme des prix des commandes actives par devise                                                    |
| `servers[x].update_channel`           | `chaîne`   | Canal de mise à jour de l'agent d'hébergement : `stable` ou `bêta`                                 |
| `servers[x].requested_channel`        | `chaîne`   | Changement de canal demandé depuis l'interface web (présent uniquement lorsqu'il est demandé)      |
| `servers[x].target_backend_version`   | `int`      | Version du backend visée par le canal actuel                                                       |

**Exemple**

**Entrée :**

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

**Sortie :**

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

Les valeurs USD dans `les objets pricing` reflètent le mode de tarification basé sur l'USD lorsque l'hôte l'a activé.

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

**À propos**

Obtenir la configuration d'un serveur spécifique

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ         | Type     | Obligatoire | Description    |
| ------------- | -------- | ----------- | -------------- |
| `server_name` | `chaîne` | Oui         | Nom du serveur |

**Sortie**

| Champ                   | Type       | Description                                                                                         |
| ----------------------- | ---------- | --------------------------------------------------------------------------------------------------- |
| `code`                  | `int`      | Code d'état                                                                                         |
| `creation_completed`    | `bool`     | La création du serveur est-elle terminée                                                            |
| `config`                | `[]string` | Configuration du serveur                                                                            |
| `config.name`           | `chaîne`   | Nom du serveur sélectionné par l'utilisateur                                                        |
| `config.connected`      | `bool`     | Le serveur a-t-il déjà été connecté à [clore.ai](http://clore.ai/)                                  |
| `config.visibility`     | `chaîne`   | Visibilité sur la place de marché                                                                   |
| `config.pricing`        | `[]string` | Prix/jour à la demande                                                                              |
| `config.spot_pricing`   | `[]string` | Prix minimal/jour pour louer sur le marché spot                                                     |
| `config.mrl`            | `int`      | Durée maximale de location en heures                                                                |
| `config.online`         | `bool`     | Le serveur est-il en ligne                                                                          |
| `config.initialized`    | `bool`     | Le serveur a-t-il déjà été connecté à [clore.ai](http://clore.ai/)                                  |
| `config.id`             | `int`      | ID de serveur unique                                                                                |
| `config.rental_status`  | `int`      | 0 - non loué \| 1 - Loué sur le marché spot \| 2 - Loué à la demande                                |
| `config.specs`          | `[]string` | Spécifications du serveur                                                                           |
| `config.background_job` | `[]string` | Tâche d'arrière-plan lorsqu'il n'est pas loué                                                       |
| `config.tenants`        | `[]object` | Commandes actives sur le serveur : `rental_type`, `currency`, `prix`, `remaining_time`, `gpu_count` |

> `configuration du serveur` renvoie également les mêmes champs d'état de location et de canal de mise à jour que `mes serveurs`: `remaining_time`, `rental_state`, `rented_gpus`, `total_gpus`, `rented_price_by_currency`, `update_channel`, `requested_channel`, `target_backend_version`.

**Exemple**

**Entrée :**

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

**Sortie :**

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

Les valeurs USD dans `les objets pricing` reflètent le mode de tarification basé sur l'USD lorsque l'hôte l'a activé.

#### 4. `place de marché` <a href="#id-4-marketplace" id="id-4-marketplace"></a>

**À propos**

Obtenir la place de marché

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Sortie**

| Champ                           | Type              | Description                                                                                                                  |
| ------------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `code`                          | `int`             | Code d'état                                                                                                                  |
| `mes serveurs`                  | `[]string`        | Tableau des identifiants de serveurs que vous mettez à disposition pour [clore.ai](http://clore.ai/) (ne peut pas être loué) |
| `serveurs`                      | `[]string`        | Tableau des serveurs publics sur la place de marché                                                                          |
| `servers[x].id`                 | `int`             | ID de serveur unique                                                                                                         |
| `servers[x].owner`              | `int`             | Identifiant unique du propriétaire                                                                                           |
| `servers[x].mrl`                | `int`             | Durée maximale de location en heures                                                                                         |
| `servers[x].price.on_demand`    | `[]string`        | Prix à la demande par jour                                                                                                   |
| `servers[x].spot`               | `[]string`        | Prix minimal par jour sur le marché spot                                                                                     |
| `servers[x].rented`             | `bool`            | Le serveur est-il loué à la demande                                                                                          |
| `servers[x].specs`              | `[]string`        | Spécifications du serveur                                                                                                    |
| `servers[x].partial_gpu_rental` | `objet` \| `bool` | `faux` lorsque la location partielle n'est pas disponible, sinon `{ total_gpus, available_gpus, free_indices }`              |

**Exemple**

Obtenir la place de marché

**Entrée :**

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

**Sortie :**

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

**À propos**

Obtenez vos commandes

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Chaîne de requête**

| Champ              | Type   | Obligatoire | Description                                |
| ------------------ | ------ | ----------- | ------------------------------------------ |
| `return_completed` | `bool` | Non         | Renvoie les commandes terminées (expirées) |

**Sortie**

| Champ                    | Type       | Description                                             |
| ------------------------ | ---------- | ------------------------------------------------------- |
| `code`                   | `int`      | Code d'état                                             |
| `limite`                 | `int`      | Nombre maximal de commandes actives                     |
| `commandes`              | `[]string` | Tableau de commandes                                    |
| `orders[x].id`           | `int`      | ID de commande unique                                   |
| `orders[x].fee`          | `float`    | Frais (%) versés à [clore.ai](http://clore.ai/)         |
| `orders[x].creation_fee` | `float`    | Frais de création versés à [clore.ai](http://clore.ai/) |
| `orders[x].price`        | `float`    | Prix de la commande (coût) par jour                     |
| `orders[x].mrl`          | `int`      | Durée maximale de location de la commande en secondes   |
| `orders[x].image`        | `chaîne`   | Image Docker utilisée                                   |
| `orders[x].currency`     | `chaîne`   | Devise utilisée pour la facturation                     |
| `orders[x].spend`        | `float`    | Argent dépensé pour la commande                         |
| `orders[x].ct`           | `int`      | Heure de création (heure UNIX)                          |
| `orders[x].p`            | `int`      | Cluster de proxy actuellement utilisé                   |
| `orders[x].specs`        | `[]string` | Spécifications du serveur                               |
| `orders[x].si`           | `int`      | ID de serveur unique                                    |
| `orders[x].pub_cluster`  | `[]string` | Points de terminaison publics avec ports transférés     |
| `orders[x].tcp_ports`    | `[]string` | Transfert de ports TCP                                  |
| `orders[x].http_port`    | `chaîne`   | Port du conteneur transféré via un proxy HTTPS          |
| `orders[x].spot`         | `bool`     | Indication qu'il s'agit d'une commande spot             |
| `orders[x].expired`      | `bool`     | Indication que la commande a expiré                     |

**Entrée :**

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

**Sortie :**

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

**À propos**

Obtenir le marché spot pour un serveur spécifique

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Chaîne de requête**

| Champ    | Type  | Obligatoire | Description          |
| -------- | ----- | ----------- | -------------------- |
| `marché` | `int` | Oui         | ID de serveur unique |

**Sortie**

| Champ                       | Type      | Description                                                            |
| --------------------------- | --------- | ---------------------------------------------------------------------- |
| `code`                      | `int`     | Code d'état                                                            |
| `existe`                    | `bool`    | Vérification que le marché existe                                      |
| `marché`                    | `objet`   | Marketplace                                                            |
| `market.offers`             | `tableau` | Offres de location pour le serveur                                     |
| `market.offers[x].offer_id` | `int`     | Identifiant unique de l'offre                                          |
| `market.offers[x].bid`      | `float`   | Prix proposé par jour                                                  |
| `market.offers[x].active`   | `bool`    | Cette offre est actuellement utilisée                                  |
| `market.offers[x].my`       | `bool`    | Cette offre m'appartient                                               |
| `market.server`             | `objet`   | Informations sur le serveur                                            |
| `market.server.min_pricing` | `objet`   | Prix minimal de l'offre par jour                                       |
| `market.server.mrl`         | `int`     | Durée maximale de location en secondes                                 |
| `market.server.visibility`  | `chaîne`  | Vous ne pouvez créer des offres que lorsque la visibilité est publique |
| `market.server.online`      | `bool`    | Le serveur est en ligne                                                |

**Entrée :**

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

**Sortie :**

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

**À propos**

Configurez les paramètres du serveur que vous mettez à disposition sur [clore.ai](http://clore.ai/) place de marché

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ           | Type     | Obligatoire | Description                                   |
| --------------- | -------- | ----------- | --------------------------------------------- |
| `nom`           | `chaîne` | Oui         | Nom du serveur sélectionné par l'utilisateur  |
| `Disponibilité` | `bool`   | Oui         | Le serveur peut-il être loué                  |
| `mrl`           | `int`    | Oui         | Durée maximale de location du serveur         |
| `À la demande`  | `float`  | Oui         | Prix par jour pour votre serveur à la demande |
| `Spot`          | `float`  | Oui         | Prix minimum par jour pour une offre SPOT     |

> Les prix journaliers sont plafonnés à 0,015 BTC / 600 000 CLORE / 1 000 USD.

**Sortie**

| Champ  | Type  | Description |
| ------ | ----- | ----------- |
| `code` | `int` | Code d'état |

**Exemple**

Créons une preuve d'envoi pour une transaction envoyée depuis le portefeuille actuel.

**Entrée :**

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

**Sortie :**

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

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

**À propos**

Définissez le prix par jour de votre offre sur le marché spot

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ           | Type    | Obligatoire | Description                   |
| --------------- | ------- | ----------- | ----------------------------- |
| `order_id`      | `int`   | Oui         | Identifiant unique de l'offre |
| `desired_price` | `float` | Oui         | Votre prix proposé par jour   |

**Exemple**

Essayons de mettre à jour le prix du marché spot

**Entrée 1 (La diminution était trop importante) :**

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

**Sortie possible 1 (La diminution était trop importante) :**\
Vous pouvez baisser le prix de l'offre sur le marché spot d'au maximum 0.00000100 ₿

| Champ      | Type     | Description                                                               |
| ---------- | -------- | ------------------------------------------------------------------------- |
| `code`     | `int`    | Code d'état                                                               |
| `erreur`   | `chaîne` | Champ de description de l'erreur                                          |
| `max_step` | `float`  | Valeur minimale jusqu'à laquelle vous pouvez actuellement baisser le prix |

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

**Entrée 2 (Baisse de prix valide) :**

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

**Sortie possible 2 (Baisse de prix valide) :**

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

**Entrée 3 (Baisser encore plus le prix après l'envoi de l'entrée 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
```

**Sortie possible 3 (Baisser encore plus le prix après l'envoi de l'entrée 2) :**\
Vous pouvez baisser le prix spot une fois toutes les 600 secondes

| Champ              | Type     | Description                                                              |
| ------------------ | -------- | ------------------------------------------------------------------------ |
| `code`             | `int`    | Code d'état                                                              |
| `erreur`           | `chaîne` | Champ de description de l'erreur                                         |
| `time_to_lowering` | `float`  | Temps restant (en s) jusqu'à la prochaine possibilité de baisser le prix |

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

**À propos**

Annuler une commande active ou une offre spot

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ   | Type     | Obligatoire | Description                                                                                                                                   |
| ------- | -------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`    | `int`    | Oui         | ID unique de commande/offre                                                                                                                   |
| `issue` | `chaîne` | Non         | Si vous avez rencontré des problèmes avec le serveur, vous pouvez les signaler à [clore.ai](http://clore.ai/) équipe, 2048 caractères maximum |

**Sortie**

| Champ  | Type  | Description |
| ------ | ----- | ----------- |
| `code` | `int` | Code d'état |

**Exemple**

Annuler la commande/l'offre

**Entrée :**\
Dans cet exemple, nous signalons des problèmes avec le GPU #1 ; si vous n'avez pas de problème, n'incluez pas le champ issue.\
Vous pouvez écrire n'importe quel संदेश ?

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "id":39,
    "issue":"Le GPU #1 surchauffait et subissait un bridage"
}' 'https://api.clore.ai/v1/cancel_order'
```

**Sortie :**

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

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

**À propos**

Vous pouvez créer une offre spot ou une commande à la demande avec ce point de terminaison\
Ce point de terminaison n'autorise également qu'une requête toutes les 5 secondes

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ                | Type     | Obligatoire | Description                                                                                                                                                                                                                                              |
| -------------------- | -------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `currency`           | `chaîne` | Oui         | Nom de la devise                                                                                                                                                                                                                                         |
| `image`              | `chaîne` | Oui         | Image valide provenant de Docker Hub                                                                                                                                                                                                                     |
| `renting_server`     | `int`    | Oui         | ID du serveur que vous souhaitez louer                                                                                                                                                                                                                   |
| `type`               | `chaîne` | Oui         | `on-demand` OU `Spot`                                                                                                                                                                                                                                    |
| `spotprice`          | `float`  | Dépend      | Prix proposé par jour sur le marché spot, requis lors de la création d'une commande spot                                                                                                                                                                 |
| `ports`              | `objet`  | Non         | Configuration du transfert de ports, 5 enregistrements maximum                                                                                                                                                                                           |
| `env`                | `objet`  | Non         | <p>Variables d'environnement, limitées à 12000 caractères au total une fois sérialisées.<br>Nom de variable - 128 symboles max<br>Valeur de variable - 1536 symboles max</p>                                                                             |
| `jupyter_token`      | `chaîne` | Non         | Jeton Jupyter pour les images contenant des notebooks Jupyter, 32 caractères maximum \*                                                                                                                                                                  |
| `ssh_key`            | `chaîne` | Non         | Clé SSH pour les images avec SSH, 3072 caractères maximum \*                                                                                                                                                                                             |
| `ssh_password`       | `chaîne` | Non         | Mot de passe SSH pour les images avec SSH, 32 caractères maximum \*                                                                                                                                                                                      |
| `command`            | `chaîne` | Non         | La commande sera exécutée sur le serveur après la création de la commande                                                                                                                                                                                |
| `required_price`     | `float`  | Non         | Spécifiez le prix auquel vous souhaitez lancer la commande ; si le propriétaire de la machine change le prix, la commande ne démarrera pas (à la demande uniquement)                                                                                     |
| `gpu_count`          | `int`    | Non         | Nombre de GPU à louer sur les serveurs qui prennent en charge [la location partielle](/clore.ai/clore.ai-eng-fr/pour-les-locataires/partial-gpu-rental.md). Omettez pour louer l'ensemble du rig. Uniquement à la demande, uniquement des rigs homogènes |
| `gpu_indices`        | `[]int`  | Non         | Indices de slots GPU à louer, basés sur 0 ; la longueur doit être égale à `gpu_count`. Prenez les emplacements libres depuis `partial_gpu_rental.free_indices`. Omettez pour laisser le backend choisir automatiquement les GPU libres                   |
| `autossh_entrypoint` | `bool`   | Non         | Utilisez le point d'entrée clore.ai, qui déploie automatiquement un serveur SSH et un script personnalisé `/root/onstart.sh` script                                                                                                                      |

\* Pour les champs marqués d'une étoile, vous ne pouvez saisir que des caractères provenant de ce groupe regexp `/^[a-zA-Z0-9\s-=.@+/]+$/`

**Sortie**

| Champ  | Type  | Description |
| ------ | ----- | ----------- |
| `code` | `int` | Code d'état |

**Exemple**

**Entrée 1 (Créer une offre 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'
```

**Sortie 1 (Créer une offre spot) :**

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

**Entrée 2 (Créer une commande à la demande) :**

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

**Sortie 2 (Créer une commande à la demande) :**

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

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

**À propos**

Obtenez la configuration actuelle des frais : frais de base du locataire, paramètres de réduction des frais PoH, frais de création de commande et votre solde PoH

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Sortie**

| Champ                              | Type    | Description                                                  |
| ---------------------------------- | ------- | ------------------------------------------------------------ |
| `code`                             | `int`   | Code d'état                                                  |
| `renter_fees.on_demand`            | `objet` | Frais de base (%) par devise pour les commandes à la demande |
| `renter_fees.spot`                 | `objet` | Frais de base (%) par devise pour les commandes spot         |
| `poh_config.max_reduction_percent` | `int`   | Réduction maximale des frais de base via PoH (%)             |
| `poh_config.max_poh_amount`        | `int`   | Solde PoH à partir duquel la réduction maximale est atteinte |
| `creation_fees.on_demand`          | `objet` | Frais de création de commande par devise                     |
| `creation_fees.spot`               | `objet` | Frais de création de commande spot par devise                |
| `poh_balance`                      | `float` | Votre solde PoH CLORE                                        |

**Entrée :**

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

**Sortie :**

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

**À propos**

Annuler plusieurs commandes à la fois (jusqu'à 256 par requête)

**En-têtes**

| Champ             | Type     | Obligatoire | Description                  |
| ----------------- | -------- | ----------- | ---------------------------- |
| `auth`            | `chaîne` | Oui         | jeton API                    |
| `Type de contenu` | `chaîne` | Oui         | Doit être `application/json` |

**Corps**

| Champ       | Type    | Obligatoire | Description                              |
| ----------- | ------- | ----------- | ---------------------------------------- |
| `order_ids` | `[]int` | Oui         | IDs des commandes à annuler, 256 maximum |

**Sortie**

| Champ              | Type    | Description                                      |
| ------------------ | ------- | ------------------------------------------------ |
| `code`             | `int`   | Code d'état                                      |
| `failed_to_cancel` | `[]int` | IDs des commandes qui n'ont pas pu être annulées |

**Entrée :**

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

**Sortie :**

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

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

**À propos**

Obtenez votre solde Proof of Holding : éléments, totaux et montants des offres PoH Marketplace

**En-têtes**

| Champ  | Type     | Obligatoire | Description |
| ------ | -------- | ----------- | ----------- |
| `auth` | `chaîne` | Oui         | jeton API   |

**Sortie**

| Champ                                         | Type       | Description                                 |
| --------------------------------------------- | ---------- | ------------------------------------------- |
| `code`                                        | `int`      | Code d'état                                 |
| `items`                                       | `[]object` | Vos éléments PoH avec soldes individuels    |
| `balance.total`                               | `float`    | Solde PoH total pour tous les éléments      |
| `balance.free_amount`                         | `float`    | Solde PoH non engagé dans des offres        |
| `balance.reward_amount`                       | `float`    | Solde éligible aux récompenses              |
| `balance.offers.rented_amount`                | `float`    | Montant loué à d'autres utilisateurs        |
| `balance.offers.rented_on_marketplace_amount` | `float`    | Montant mis en vente sur le PoH Marketplace |
| `balance.offers.leased_amount`                | `float`    | Montant loué auprès d'autres utilisateurs   |

**Entrée :**

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

**Sortie :**

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

**À propos**

Obtenez les données de configuration statiques de l'API. Aucune authentification requise

**Entrée :**

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

**À propos**

Obtenez les nœuds relais de transfert TCP pour votre pays détecté. Aucune authentification requise

**Sortie**

| Champ     | Type     | Description              |
| --------- | -------- | ------------------------ |
| `code`    | `int`    | Code d'état              |
| `country` | `chaîne` | Code du pays détecté     |
| `nodes`   | `objet`  | Nœuds relais disponibles |

**Entrée :**

```
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-fr/pour-les-hotes/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.
