# API

> 💡 **Développeurs Python :** Utilisez le [SDK Python clore-ai officiel](/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 CLI](/clore.ai/clore.ai-eng-fr/developpeurs/cli-guide.md).

<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 API <a href="#api-responses" id="api-responses"></a>

Les réponses sont renvoyées au format JSON, peuvent avoir des champs différents

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`  | DÉPASSÉ la limite de 1 requête/seconde |
| `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**

Retourne les portefeuilles et 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**

Retourne vos serveurs que vous fournissez à [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 maximum de serveurs que vous pouvez posséder                |
| `serveurs`                    | `[]string` | Tableau de serveurs                                                |
| `servers[x].name`             | `chaîne`   | Nom du serveur choisi 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 la location sur le marché spot              |
| `servers[x].init_token`       | `chaîne`   | Jeton d'initialisation                                             |
| `servers[x].specs`            | `[]string` | Spécifications du serveur                                          |

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

**\*USD non implémenté pour l'instant**

#### 3. `configuration_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 choisi 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 la location 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 unique du serveur                                                 |
| `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é                        |

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

**\*USD non implémenté pour l'instant**

#### 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 d'identifiants de serveurs que vous fournissez à [clore.ai](http://clore.ai/) (ne peut pas être loué) |
| `serveurs`                   | `[]string` | Tableau de serveurs publics sur la place de marché                                                            |
| `servers[x].id`              | `int`      | ID unique du serveur                                                                                          |
| `servers[x].owner`           | `int`      | ID 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 du marché spot par jour                                                                          |
| `servers[x].rented`          | `bool`     | Le serveur est-il loué à la demande                                                                           |
| `servers[x].specs`           | `[]string` | Spécifications du serveur                                                                                     |

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

**À propos**

Obtenir 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         | Retourner les commandes terminées (expirées) |

**Sortie**

| Champ                    | Type       | Description                                            |
| ------------------------ | ---------- | ------------------------------------------------------ |
| `code`                   | `int`      | Code d'état                                            |
| `limite`                 | `int`      | Nombre maximum de commandes actives                    |
| `commandes`              | `[]string` | Tableau de commandes                                   |
| `orders[x].id`           | `int`      | ID unique de commande                                  |
| `orders[x].fee`          | `float`    | Frais (%) payés à [clore.ai](http://clore.ai/)         |
| `orders[x].creation_fee` | `float`    | Frais de création payé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é sur la commande                         |
| `orders[x].ct`           | `int`      | Heure de création (temps UNIX)                         |
| `orders[x].p`            | `int`      | Cluster proxy actuellement utilisé                     |
| `orders[x].specs`        | `[]string` | Spécifications du serveur                              |
| `orders[x].si`           | `int`      | ID unique du serveur                                   |
| `orders[x].pub_cluster`  | `[]string` | Points de terminaison publics avec ports transférés    |
| `orders[x].tcp_ports`    | `[]string` | Transfert de port TCP                                  |
| `orders[x].http_port`    | `chaîne`   | Port du conteneur transféré via le 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 unique du serveur |

**Sortie**

| Champ                       | Type      | Description                                                            |
| --------------------------- | --------- | ---------------------------------------------------------------------- |
| `code`                      | `int`     | Code d'état                                                            |
| `existe`                    | `bool`    | Vérification que le marché existe                                      |
| `marché`                    | `objet`   | Place de marché                                                        |
| `market.offers`             | `tableau` | Offres de location pour le serveur                                     |
| `market.offers[x].offer_id` | `int`     | ID unique de l'offre                                                   |
| `market.offers[x].bid`      | `float`   | Prix offert 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. `configurer_parametres_serveur` <a href="#id-7-set_server_settings" id="id-7-set_server_settings"></a>

**À propos**

Configurer les paramètres du serveur que vous fournissez 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 choisi 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     |

**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. `definir_prix_spot` <a href="#id-8-set_spot_price" id="id-8-set_spot_price"></a>

**À propos**

Définir le prix par jour sur votre 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                 |
| ------------- | ------- | ----------- | --------------------------- |
| `order_id`    | `int`   | Oui         | ID unique de l'offre        |
| `prix_desiré` | `float` | Oui         | Votre prix proposé par jour |

**Exemple**

Essayons de mettre à jour le prix du marché spot

**Entrée 1 (La baisse é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 baisse était trop importante) :**\
Vous pouvez baisser le prix de l'offre spot au maximum de 0.00000100 ₿

| Champ      | Type     | Description                                                              |
| ---------- | -------- | ------------------------------------------------------------------------ |
| `code`     | `int`    | Code d'état                                                              |
| `erreur`   | `chaîne` | Champ de description de l'erreur                                         |
| `max_step` | `float`  | Valeur la plus basse à 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 le prix après 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 le prix après 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 (sec) avant la prochaine possibilité de baisser le prix |

```
{
    "error":"can_lower_every_600_seconds",
    "time_to_lowering":513,
    "code":6
}
```

#### 9. `annuler_commande` <a href="#id-9-cancel_order" id="id-9-cancel_order"></a>

**À propos**

Définir le prix par jour sur votre 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                                                                                                                     |
| `problème` | `chaîne` | Non         | Si vous avez rencontré des problèmes avec le serveur, vous pouvez les signaler à [clore.ai](http://clore.ai/) l'équipe, maximum 2048 caractères |

**Sortie**

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

**Exemple**

Annuler commande/offre

**Entrée :**\
Dans cet exemple, nous signalons des problèmes avec le GPU n°1 ; si vous n'avez pas de problèmes, n'incluez pas le champ issue.\
Vous pouvez écrire n'importe quel message dans le champ texte et nous l'examinerons

```
curl -XPOST -H 'auth: b8qwqRAL5W7YDyDJeB4XANVvKndbrrPk' -H "Content-type: application/json" -d '{
    "id":39,
    "issue":"Le GPU n°1 surchauffait et était en limitation de fréquence"
}' 'https://api.clore.ai/v1/cancel_order'
```

**Sortie :**

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

#### 10. `creer_commande` <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 autorise également seulement 1 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                                                                                                                                                                       |
| -------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `devise`             | `chaîne` | Oui         | Nom de la devise                                                                                                                                                                  |
| `image`              | `chaîne` | Oui         | Image valide depuis dockerhub                                                                                                                                                     |
| `serveur_a_louer`    | `int`    | Oui         | ID du serveur que vous souhaitez louer                                                                                                                                            |
| `type`               | `chaîne` | Oui         | `à la demande` OU `spot`                                                                                                                                                          |
| `prix_spot`          | `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, maximum 5 enregistrements                                                                                                                    |
| `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, maximum 32 caractères \*                                                                                           |
| `ssh_key`            | `chaîne` | Non         | Clé SSH pour les images avec SSH, maximum 3072 caractères \*                                                                                                                      |
| `ssh_password`       | `chaîne` | Non         | Mot de passe SSH pour les images avec SSH, maximum 32 caractères \*                                                                                                               |
| `commande`           | `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 pour lequel vous souhaitez démarrer la commande ; si le propriétaire de la machine change le prix, alors la commande ne démarrera pas (à la demande uniquement) |
| `autossh_entrypoint` | `bool`   | Non         | Utiliser le point d'entrée clore.ai, qui déploie automatiquement le serveur SSH et personnalisé `/root/onstart.sh` script                                                         |

\* Pour les champs marqués d'une étoile, vous ne pouvez saisir que des caractères appartenant à 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":"à-la-demande",
    "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
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/clore.ai/clore.ai-eng-fr/pour-les-hotes/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
