v2.3.23OpenAPI 3.0.3

Fornex Public API

Authentification

L'accès à l'API nécessite une clé API. Transmettez-la dans l'en-tête HTTP de chaque requête.

Authorization: Api-Key <key>

Créer une clé API dans l'espace client

Account

#

Solde du compte

Retourne le solde actuel du compte

get/account/balance

Réponses

  • 200application/json
    balancenumber (double)Requis
    currencystringRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/balance"
Réponse200
{
  "balance": 10,
  "currency": "EUR"
}
#

Informations

get/account/info

Réponses

  • 200application/json
    emailstring (email)max length: 254
    namestringRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/info"
Réponse200
{
  "email": "example@fornex.com",
  "name": "Example Account"
}
#

Factures

Retourne le nombre et le montant total des factures impayées.

get/account/invoices

Réponses

  • 200application/json
    unpaid_invoices_countintegerRequis
    unpaid_invoices_amountnumber (double)Requis
    currencystringRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/invoices"
Réponse200
{
  "unpaid_invoices_count": 1,
  "unpaid_invoices_amount": 100,
  "currency": "EUR"
}

Plans

#

Sauvegardes

get/plans/backups

Réponses

  • 200application/json
    array object[]BackupTariff[]
    spaceintegerRequis
    pricenumber (double)Requis
    unitsstringread-onlyRequisdefault: GB
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/backups"
Réponse200
[
  {
    "price": 3,
    "space": 100,
    "units": "GB"
  }
]
#

Serveurs dédiés

get/plans/dedicated

Réponses

  • 200application/json
    array object[]DedicatedTariff[]
    idintegerread-onlyRequis
    namestringmax length: 128Requis

    Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

    cpu_modelstringread-onlyRequis
    cpu_countintegermin: 0max: 65535
    ramstringRequis
    diskstringRequis
    bandwidthstringRequis
    pricenumber (double)Requis
    locationsarray array[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/dedicated"
Réponse200
[
  {
    "id": 101,
    "name": "DS XeonSAS",
    "price": 198,
    "bandwidth": "1 Gbit/s",
    "cpu_model": "Intel Xeon E3-1270 (4×3.4Ghz)",
    "cpu_count": 1,
    "disk": "4 × 300 GB SAS 15k",
    "ram": "16 GB",
    "locations": [
      [
        "DE",
        "Германия"
      ]
    ]
  }
]
#

Hébergement web

get/plans/hosting

Réponses

  • 200application/json
    array object[]VHTariff[]
    idintegerread-onlyRequis
    namestringmax length: 128Requis

    Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

    sitesintegermin: 0max: 65535nullable
    pricenumber (double)Requis
    cpu_coresintegermin: 0max: 65535nullable
    hdd_spaceinteger (int64)min: 0max: 4294967295nullable

    Go

    available_locationsarray string[]read-onlyRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/hosting"
Réponse200
[
  {
    "id": 33,
    "name": "VH-SSD-2",
    "price": 1,
    "sites": 2,
    "cpu_cores": 1,
    "hdd_space": 1,
    "available_locations": [
      "DE",
      "RU"
    ]
  }
]
#

VPN

get/plans/vpn

Réponses

  • 200application/json
    array object[]VpnTariff[]
    idintegerread-onlyRequis
    pricenumber (double)Requis
    valeurs
    • shared
    • dedicated
    • multi-hop
    available_locationsarray string[]read-onlyRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vpn"
Réponse200
[
  {
    "id": 1,
    "type": "dedicated",
    "price": 10,
    "available_locations": [
      "DE",
      "NL",
      "US",
      "RU"
    ]
  }
]
#

VPS

get/plans/vps

Réponses

  • 200application/json
    array object[]VpsTariff[]
    idintegerread-onlyRequis
    namestringmax length: 128Requis

    Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

    cpu_countintegerRequis
    ramstringRequis
    diskstringRequis
    bandwidthstringRequis
    pricenumber (double)Requis
    disk_classVpsDiskClassRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vps"
Réponse200
[
  {
    "id": 433,
    "name": "SSD Cloud 1GB",
    "cpu_count": 1,
    "ram": "1 Go",
    "bandwidth": "100 Mbit/s",
    "disk": "10 Go",
    "price": 5,
    "disk_class": null
  }
]

Projects

#

Liste des projets

get/project/

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Project[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/"
Réponse200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 40
          },
          "comment": {
            "type": "string",
            "maxLength": 256
          },
          "logo": {
            "type": "string",
            "format": "uri",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "logo",
          "name"
        ]
      }
    }
  }
}
#

Créer un projet

post/project/

Corps

Requis
namestringlength 1…40Requis
commentstringmax length: 256

Réponses

  • 201application/json
    idintegerread-onlyRequis
    namestringmax length: 40Requis
    commentstringmax length: 256
    logostring (uri)read-onlyRequis
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/"
Réponse201
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Détails du projet

get/project/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Réponses

  • 200application/json
    idintegerread-onlyRequis
    namestringmax length: 40Requis
    commentstringmax length: 256
    logostring (uri)read-onlyRequis
Fornex API Key
ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
Réponse200
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Modifier le projet

patch/project/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Corps

namestringlength 1…40
commentstringmax length: 256

Réponses

  • 200application/json
    idintegerread-onlyRequis
    namestringmax length: 40Requis
    commentstringmax length: 256
    logostring (uri)read-onlyRequis
Fornex API Key
ID='1'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/$ID/"
Réponse200
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Supprimer le projet

delete/project/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Réponses

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
#

Ajouter une commande

Demande d'ajout d'une commande au projet.

post/project/{id}/add_orders/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Corps

Requis
ordersarray string[]write-onlyRequis

Réponses

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/add_orders/"
#

Modifier le logo

Demande de modification du logo du projet.

put/project/{id}/edit_logo/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Corps

multipart/form-data
logostring (binary)

Chemin vers le fichier.

Réponses

  • 200application/json
    logostring (uri)

    Chemin vers le fichier.

Fornex API Key
ID='1'

curl -X PUT \
  -H "Content-Type: multipart/form-data" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  -F "logo=@\"path/to/file\"" \
  "https://fornex.com/api/project/$ID/edit_logo/"
Réponse200
{
  "type": "object",
  "properties": {
    "logo": {
      "type": "string",
      "format": "uri",
      "description": "Chemin vers le fichier."
    }
  }
}
#

Supprimer la commande

Demande de suppression d'une commande du projet.

post/project/{id}/remove_orders/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce project.

Corps

Requis
ordersarray string[]write-onlyRequis

Réponses

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/remove_orders/"

Orders

Une commande est une entité interne de notre système, créée en même temps qu'un service et contenant la liste de ses propriétés (ex. : coût, localisation, etc.). Par exemple, un VPS est le service lui-même (machine virtuelle), tandis qu'une commande VPS est la liste des propriétés qui lui sont associées. Pour créer une commande, effectuez une requête de création de service dans la section API correspondante, par ex. Créer un VPS. Pour toute opération ultérieure sur une commande, utilisez les méthodes de cette section.

Ci-dessous figurent les requêtes API permettant de gérer les commandes de tout type : consulter les détails d'une commande, la modifier ou l'annuler.

#

Liste des commandes

Lister toutes les commandes disponibles. Les informations sur les paramètres de chaque commande seront également incluses dans la réponse.

get/orders/

Paramètres de requête

  • cancel_markboolean

    Filtrer les commandes qui seront annulées.

  • orderingstring

    Champ utilisé pour trier les résultats.

    default: id
    expiredid
  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Order[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ]
    }
  ]
}
#

Détails de la commande

Récupérer toutes les données disponibles sur la commande par son ID.

get/orders/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.

Réponses

  • 200application/json
    idstringread-onlyRequis
    namestringmax length: 64
    tariffstringread-onlyRequis
    tariff_pricenumber (double)nullableread-onlyRequis
    typestringread-onlyRequis
    hostnamestringnullableread-onlyRequis
    ipaddress_setarray string[]nullableread-onlyRequis
    statusstringread-onlyRequis
    valeurs
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyRequis
    expiration_datestring (date-time)read-onlyRequis
    tagsarray string[]Requis
    cancel_markbooleanread-onlyRequis

    Indicateur signalant que la commande sera annulée.

    projectobjectnullableread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/$ORDER_ID/"
Réponse200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ]
}
#

Modifier la commande

Modifier certains paramètres d'une commande spécifique (recherche par ID) disponibles à l'édition.

patch/orders/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.

Corps

namestringlength 1…64default:

Nom personnalisé de la commande. Définissez une chaîne vide si vous souhaitez supprimer le nom.

tagsarray string[]

Tags associés à la commande. Les nouveaux tags remplaceront entièrement les tags existants, le cas échéant. Définissez une liste vide si vous souhaitez supprimer tous les tags.

projectintegernullable

Projet de la commande. Définissez une chaîne vide si vous souhaitez supprimer le projet.

Réponses

  • 200application/json
    namestringmax length: 64default:

    Nom personnalisé de la commande.

    tagsarray string[]Requis

    Tags associés à la commande.

    projectintegernullableRequis

    Projet de la commande.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "DB Host"}' \
  "https://fornex.com/api/orders/$ORDER_ID/"
Réponse200
{
  "name": "DB Host",
  "tags": [
    "Database"
  ],
  "project": 1
}
#

Annuler la commande

Annuler une commande et supprimer le service associé. Selon le paramètre when, deux options sont possibles :

  • expired - la commande sera marquée pour annulation et sera annulée à l'expiration de la période payée. Cela bloque en pratique le renouvellement automatique. C'est le comportement par défaut. Vous pouvez retirer la marque si vous changez d'avis.
  • now - la demande d'annulation sera immédiatement transmise au traitement, et la commande sera annulée dès que possible. L'annulation instantanée n'est pas encore prise en charge.

Si la commande n'a pas encore été payée, elle sera annulée immédiatement quel que soit le paramètre when choisi.

post/orders/{order_id}/cancel/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.

Corps

whenstringwrite-onlydefault: expired
valeurs
  • now
  • expired

Ce paramètre indique quand la commande doit être annulée — immédiatement ou à l'expiration de la période payée.

save_backupbooleanwrite-onlydefault: true

Ce paramètre indique si un snapshot du VPS doit être pris avant la suppression de la machine virtuelle.

Réponses

  • 200application/json
    statusstringread-onlyRequis
    valeurs
    • canceled
    • cancel_pending
    messagestringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"when": "expired", "save_backup": true}' \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"
Réponse200
{
  "status": "cancel_pending",
  "message": "Order will be canceled after expiration."
}
#

Retirer la marque d'annulation

Retirer la marque d'annulation d'une commande spécifique (recherche par ID). La marque est également retirée automatiquement si vous forcez le renouvellement de la commande.

delete/orders/{order_id}/cancel/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.

Réponses

  • 204

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"

VPS: Orders

Un VPS (Virtual Private Server) est également connu sous le nom de serveur dédié virtuel. Cette section présente les principaux endpoints API et les endpoints auxiliaires utilisés pour gérer les commandes VPS chez Fornex.

#

Liste des commandes VPS

Lister toutes les commandes VPS disponibles. Les informations sur les paramètres de chaque commande seront également incluses dans la réponse.

get/orders/vps/

Paramètres de requête

  • cancel_markboolean

    Filtrer les commandes qui seront annulées.

  • orderingstring

    Champ utilisé pour trier les résultats.

    default: id
    expiredid
  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]VPSOrder[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "configuration": {
        "cpu_count": 1,
        "ram_size": 2,
        "disk_size": 10,
        "cpu_arch": "x86_64",
        "min_cpu_freq": 3
      }
    }
  ]
}
#

Détails de la commande VPS

Récupérer toutes les données disponibles sur la commande VPS par son ID.

get/orders/vps/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNN.

Réponses

  • 200application/json
    idstringread-onlyRequis
    namestringmax length: 64
    tariffstringread-onlyRequis
    tariff_pricenumber (double)nullableread-onlyRequis
    typestringread-onlyRequis
    hostnamestringnullableread-onlyRequis
    ipaddress_setarray string[]nullableread-onlyRequis
    statusstringread-onlyRequis
    valeurs
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyRequis
    expiration_datestring (date-time)read-onlyRequis
    tagsarray string[]Requis
    cancel_markbooleanread-onlyRequis

    Indicateur signalant que la commande sera annulée.

    projectobjectnullableread-onlyRequis
    configurationobjectread-onlyRequis

    Configuration du serveur

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/$ORDER_ID/"
Réponse200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "configuration": {
    "cpu_count": 1,
    "ram_size": 2,
    "disk_size": 10,
    "cpu_arch": "x86_64",
    "min_cpu_freq": 3
  }
}

VPS: Create

Un VPS (Virtual Private Server) est également connu sous le nom de serveur dédié virtuel. Cette section présente les principaux endpoints API et les endpoints auxiliaires utilisés pour créer un nouveau VPS chez Fornex.

#

Créer un VPS

Cette requête n'est pas disponible par défaut, contactez le support technique pour y accéder.

Pour l'instant, la création d'un VPS via l'API nécessite un paiement depuis le solde du compte. Si les fonds sont insuffisants, la requête retournera une erreur et la commande ne sera pas créée.

Pour créer un VPS, vous devez définir trois paramètres obligatoires — la configuration du VPS (cœurs, RAM, stockage), le logiciel pré-installé et la localisation :

  • Configuration : choisissez tariff (forfait prédéfini) ou configuration (ensemble flexible de paramètres depuis le configurateur). Vous pouvez explorer les configurations disponibles sur la page VPS.
  • Logiciel : choisissez template (pour installer un système d'exploitation et, optionnellement, un panneau de contrôle d'hébergement), app (pour installer une application) ou snapshot (pour restaurer le VPS depuis votre snapshot).
  • Pays : choisissez location parmi les options disponibles.

Pour annuler et supprimer un VPS via l'API, utilisez la méthode universelle Annuler la commande.

post/orders/vps/

Corps

Requis
tariffintegernullablewrite-only

L'ID du forfait prédéfini. Obtenez les options disponibles pour tariff depuis les forfaits VPS.

Pour créer une configuration personnalisée, utilisez le paramètre configuration. N'utilisez pas les deux paramètres simultanément.

configurationobjectnullablewrite-only

Les paramètres de configuration personnalisée sous forme d'objet (ouvrez la section dépliable pour plus de détails). Utilisez le configurateur VPS pour obtenir une combinaison de paramètres adaptée aux contraintes dynamiques.

À la place d'une configuration personnalisée, vous pouvez choisir un forfait prédéfini, généralement moins cher. Pour cela, utilisez le paramètre tariff. N'utilisez pas les deux paramètres simultanément.

templateintegerwrite-only

L'ID du modèle pour installer un système d'exploitation et, optionnellement, un panneau de contrôle d'hébergement. Obtenez les options disponibles pour template depuis les modèles VPS.

À la place d'un système d'exploitation, vous pouvez installer une application (paramètre app) ou restaurer le VPS depuis un snapshot (paramètre snapshot). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

appintegerwrite-only

L'ID de l'application à installer. Obtenez les options disponibles pour app depuis les applications VPS.

À la place d'une application, vous pouvez installer un système d'exploitation (paramètre template) ou restaurer le VPS depuis un snapshot (paramètre snapshot). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

snapshotintegerwrite-only

L'ID du snapshot depuis lequel vous souhaitez restaurer le VPS. Obtenez les options disponibles pour snapshot depuis les snapshots VPS.

Vous pouvez créer un snapshot depuis n'importe quel VPS existant dans votre espace client, sur la page de la commande, et l'utiliser pour une restauration (comme sauvegarde) ou pour créer des copies de la commande (comme modèle).

À la place d'une restauration depuis un snapshot, vous pouvez installer un système d'exploitation (paramètre template) ou une application (paramètre app). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

locationstringmin length: 1write-onlyRequis

Le code pays à deux lettres de la localisation de la commande. Obtenez les options disponibles pour location depuis les localisations VPS.

termintegerwrite-onlydefault: 1
valeurs
  • 1
  • 3
  • 6
  • 12

Le nombre de mois pour lesquels la commande est renouvelée à la création (par exemple, 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

Les services supplémentaires et leur quantité sous forme de liste (ouvrez la section dépliable pour plus de détails). Obtenez les options disponibles pour services depuis les services supplémentaires VPS.

ssh_keysarray integer[]write-only

Les ID des clés SSH sous forme de liste, ajoutées au serveur lors de l'installation. Obtenez les options disponibles pour ssh_keys depuis les clés SSH. Passez la liste des clés explicitement. Par défaut, une liste vide est transmise, même si des clés sont marquées comme « ajouter par défaut » dans votre espace client.

namestringlength 1…25write-onlydefault:

Nom personnalisé pour le VPS. Par défaut, aucun nom n'est défini pour le serveur.

projectintegernullablewrite-only

L'ID du projet. Les options disponibles pour project peuvent être obtenues depuis la liste des projets.

disk_classintegernullablewrite-only

L'ID de la classe de disque VPS. Obtenez les options disponibles pour tariff depuis les disques VPS.

Lorsque vous utilisez une configuration personnalisée, utilisez l'attribut dans le paramètre configuration. N'utilisez pas les deux paramètres simultanément.

bandwidthintegernullablewrite-only

Limite de bande passante à définir pour la commande VPS. Le prix par unité est défini par la valeur bandwidth_tariff.

webhookobjectwrite-only

La configuration du webhook sous forme d'objet (ouvrez la section dépliable pour plus de détails). Elle est nécessaire pour recevoir une requête POST avec les détails de la commande et les identifiants d'accès une fois le VPS créé.

placement_policystringwrite-onlydefault: OPTIONAL
valeurs
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tags pour le VPS. Par défaut, aucun tag n'est défini pour le serveur.

Réponses

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tariff": 1, "template": 1, "location": "DE", "term": 3, "services": [{"service": 1, "count": 1}], "ssh_keys": [1, 3]}' \
  "https://fornex.com/api/orders/vps/"
Réponse201
{
  "order_id": "34-1"
}
#

Templates VPS

Lister tous les templates disponibles pour créer un VPS. Les informations sur les paramètres VPS requis seront également incluses pour chaque template.

get/orders/vps/templates/

Réponses

  • 200application/json
    array object[]Template[]
    idintegerread-onlyRequis

    Identifiant du modèle.

    namestringmax length: 64Requis

    Nom du modèle.

    osstringread-onlyRequis
    panelnullable

    Panneau d'administration utilisé dans le modèle, peut être absent.

    Un parmi
    archstring
    valeurs
    • x86_64
    • arm

    Type d'architecture CPU requis pour ce modèle.

    min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

    Espace de stockage minimum requis pour ce modèle.

    min_ram_volumeintegermin: 0max: 65535nullable

    Volume de RAM minimum requis pour ce modèle.

    min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

    Nombre minimum de cœurs CPU requis pour ce modèle.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/templates/"
Réponse200
[
  {
    "id": 49,
    "name": "Ubuntu 20.04 & Hestia",
    "os": "Ubuntu 20.04 LTS",
    "panel": "hestia",
    "min_storage_space": 5,
    "min_ram_volume": 2,
    "min_cpu_cores": 1,
    "arch": "x86-64"
  }
]
#

Applications VPS

Lister toutes les combinaisons disponibles « application + système d'exploitation » pouvant être installées lors de la création d'un VPS.

get/orders/vps/apps/

Réponses

  • 200application/json
    array object[]AppTemplate[]
    idintegerread-onlyRequis

    Identifiant de l'application.

    namestringmax length: 64Requis

    Nom de l'application.

    osstringread-onlyRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/apps/"
Réponse200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "Identifiant de l'application."
      },
      "name": {
        "type": "string",
        "description": " Nom de l'application.",
        "maxLength": 64
      },
      "os": {
        "type": "string",
        "readOnly": true
      }
    },
    "required": [
      "id",
      "name",
      "os"
    ]
  }
}
#

Snapshots VPS

Lister tous les snapshots disponibles sur votre compte pouvant être utilisés pour créer un VPS.

get/orders/vps/snapshots/

Réponses

  • 200application/json
    array object[]Snapshot[]
    idintegerread-onlyRequis

    Identifiant du snapshot.

    namestringmax length: 64Requis

    Nom du snapshot.

    size_gbnumber (double)read-onlyRequis

    Taille du snapshot en Go.

    created_atstring (date-time)Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/snapshots/"
Réponse200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "Identifiant du snapshot."
      },
      "name": {
        "type": "string",
        "description": " Nom du snapshot.",
        "maxLength": 64
      },
      "size_gb": {
        "type": "number",
        "format": "double",
        "readOnly": true,
        "description": "Taille du snapshot en Go."
      },
      "created_at": {
        "type": "string",
        "format": "date-time"
      }
    },
    "required": [
      "created_at",
      "id",
      "name",
      "size_gb"
    ]
  }
}
#

Localisations VPS

Lister tous les data centers où les services VPS sont disponibles.

get/orders/vps/locations/

Réponses

  • 200application/json
    array object[]VpsLocation[]
    valuestringRequis
    labelstringRequis
    location_os_typesarray string[]Requis
    bandwidth_tariffobjectnullable
    disabled_by_slotsbooleandefault: true
    disabled_by_cpu_freqbooleandefault: true
    disabled_by_osbooleandefault: false
    disabled_by_cpu_typebooleandefault: false
    available_frequenciesobjectRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/locations/"
Réponse200
[
  {
    "value": "DE",
    "label": "Germany",
    "location_os_types": [
      "linux",
      "windows-trial"
    ],
    "available_frequencies": {
      "x86_64": [
        "2.1",
        "3.8"
      ],
      "arm": [
        "1"
      ]
    }
  }
]
#

Disques VPS

Lister toutes les options de disque disponibles pour un VPS.

get/orders/vps/disks/

Réponses

  • 200application/json
    array object[]VpsDiskClass[]
    idintegerread-onlyRequis
    namestringmax length: 64Requis
    limit_total_mbytes_secintegermin: 0max: 65535Requis

    Мb/sec

    limit_read_iops_secintegermin: 0max: 65535Requis

    Op/sec

    limit_write_iops_secintegermin: 0max: 65535Requis

    Op/sec

    price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Requis

    Coût par 1 GB

    disk_typeDiskTypeEnum
    valeurs
    • hdd
    • nvme
    • ssd
    • sas
    disk_type_displaystringRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/disks/"
Réponse200
[
  {
    "id": 1,
    "name": "Optimal",
    "limit_total_mbytes_sec": 250,
    "limit_read_iops_sec": 9000,
    "limit_write_iops_sec": 7000,
    "price_per_gb": "0.0300",
    "disk_type": "ssd",
    "disk_type_display": "SSD"
  }
]
#

Services supplémentaires VPS

Lister tous les services supplémentaires disponibles pour un VPS.

get/orders/vps/services/

Réponses

  • 200application/json
    array object[]Service[]
    idintegerread-onlyRequis

    Identifiant du service.

    namestringmax length: 128Requis

    Nom du service.

    descriptionstringmax length: 255

    Description du service.

    pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Requis

    Prix du service.

    billing_typestringRequis
    valeurs
    • single
    • periodic

    Paiement unique ou mensuel.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/services/"
Réponse200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "Identifiant du service."
      },
      "name": {
        "type": "string",
        "title": "Nom",
        "description": " Nom du service.",
        "maxLength": 128
      },
      "description": {
        "type": "string",
        "description": "Description du service.",
        "maxLength": 255
      },
      "price": {
        "type": "string",
        "format": "decimal",
        "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
        "description": "Prix du service."
      },
      "billing_type": {
        "allOf": [
          {
            "enum": [
              "single",
              "periodic"
            ],
            "type": "string"
          }
        ],
        "description": "Paiement unique ou mensuel."
      }
    },
    "required": [
      "billing_type",
      "id",
      "name",
      "price"
    ]
  }
}

VPS: Reinstall

Réinstallez le système d'exploitation sur votre VPS tout en conservant la commande et la configuration existantes. Cette section présente les endpoints API permettant de récupérer les cibles d'installation disponibles — telles que des templates d'OS vierges, des applications préconfigurées ou des snapshots existants — et de déclencher le processus de réinstallation.

#

Templates de réinstallation VPS

Liste de tous les templates disponibles pour réinstaller le VPS. Les informations sur les paramètres VPS requis seront également incluses pour chaque template.

get/vps/{order_id}/reinstall/templates/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Template[]Requis
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/templates/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": 49,
      "name": "Ubuntu 20.04 & Hestia",
      "os": "Ubuntu 20.04 LTS",
      "panel": "hestia",
      "min_storage_space": 5,
      "min_ram_volume": 2,
      "min_cpu_cores": 1,
      "arch": "x86-64"
    }
  ]
}
#

Applications de réinstallation VPS

Liste de toutes les combinaisons disponibles « application + système d'exploitation » pouvant être installées lors de la réinstallation du VPS.

get/vps/{order_id}/reinstall/apps/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]AppTemplate[]Requis
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/apps/"
Réponse200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "Identifiant de l'application."
          },
          "name": {
            "type": "string",
            "description": " Nom de l'application.",
            "maxLength": 64
          },
          "os": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name",
          "os"
        ]
      }
    }
  }
}
#

Snapshots de réinstallation VPS

Liste de tous les snapshots disponibles sur votre compte pouvant être utilisés pour réinstaller le VPS.

get/vps/{order_id}/reinstall/snapshots/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Snapshot[]Requis
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/snapshots/"
Réponse200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "Identifiant du snapshot."
          },
          "name": {
            "type": "string",
            "description": " Nom du snapshot.",
            "maxLength": 64
          },
          "size_gb": {
            "type": "number",
            "format": "double",
            "readOnly": true,
            "description": "Taille du snapshot en Go."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "created_at",
          "id",
          "name",
          "size_gb"
        ]
      }
    }
  }
}
#

Réinstaller le VPS

Lance le processus de réinstallation du VPS. Vous devez fournir soit l'ID d'un template VPS ou l'ID d'une application pour une installation propre, soit l'ID d'un snapshot pour restaurer le serveur à un état antérieur.

Attention : cette action est destructrice. Toutes les données actuelles du serveur seront définitivement supprimées et remplacées par l'image sélectionnée.

post/vps/{order_id}/reinstall/reinstall/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Corps

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only

Réponses

  • 200application/json

    Public API version: exposes template instead of ostemplate.

    display_namestringread-onlyRequis
    statusstringread-onlyRequis
    datestring (date-time)read-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"template":0}' \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/reinstall/"
Réponse200
{
  "type": "object",
  "description": "Public API version: exposes ``template`` instead of ``ostemplate``.",
  "properties": {
    "display_name": {
      "type": "string",
      "readOnly": true
    },
    "status": {
      "type": "string",
      "readOnly": true
    },
    "date": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    }
  },
  "required": [
    "date",
    "display_name",
    "status"
  ]
}

VPS: Controls

Un VPS chez Fornex prend en charge les requêtes de contrôle à distance. Cette section présente les endpoints API permettant de démarrer, arrêter ou redémarrer votre VPS chez Fornex, ainsi que d'autres options.

#

État du VPS

get/vps/{order_id}/status/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    statusstringRequis

    on | off | unknown

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/status/"
Réponse200
{
  "status": "on"
}
#

Démarrer le VPS

post/vps/{order_id}/start/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/start/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Arrêter le VPS

post/vps/{order_id}/stop/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Redémarrer le VPS

post/vps/{order_id}/restart/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/restart/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Démarrer le Rescue Mode

post/vps/{order_id}/rescue_mode/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/rescue_mode/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Arrêter le Rescue Mode

post/vps/{order_id}/stop_rescue_mode/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop_rescue_mode/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Redémarrage forcé du VPS

Vous pouvez effectuer un redémarrage forcé (hard reset) pour restaurer le bon fonctionnement du VPS.

Un signal de réinitialisation sera envoyé à la machine virtuelle, ce qui la redémarrera sans passer par la procédure d'arrêt normal.

Notez que la plupart des systèmes de fichiers utilisant l'écriture différée peuvent se retrouver dans un état « sale » après un redémarrage forcé. Une vérification automatique du système de fichiers est généralement lancée ensuite, après quoi la machine virtuelle pourra fonctionner normalement, mais certaines données peuvent néanmoins être perdues.

post/vps/{order_id}/hard_reset/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/hard_reset/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Réinitialiser le mot de passe root

post/vps/{order_id}/passwd_reset/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    passwdstringread-onlyRequis

    Votre nouveau mot de passe.

    resp_idintegerread-onlyRequis

    ID de l'opération pour vérifier son statut, pour plus de détails voir vps_log_details

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/passwd_reset/"
Réponse200
{
  "type": "object",
  "properties": {
    "passwd": {
      "type": "string",
      "readOnly": true,
      "description": "Votre nouveau mot de passe."
    },
    "resp_id": {
      "type": "integer",
      "readOnly": true,
      "description": "ID de l'opération pour vérifier son statut, pour plus de détails voir [vps_log_details](#operation/vps_log_details_retrieve)"
    }
  },
  "required": [
    "passwd",
    "resp_id"
  ]
}
#

Statut de la requête

get/vps/{order_id}/log_details/{log_id}/

Paramètres de chemin

  • log_idintegerRequis

    ID de l'enregistrement

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    pkintegerread-onlyRequis
    actionstringread-onlyRequis
    notestringread-onlyRequis
    userstringread-onlyRequis
    timestring (date-time)read-onlyRequis
    completedbooleanread-onlyRequis
    job_statestringread-onlyRequis
    valeurs
    • ready
    • error
    • done
    job_actionstringread-onlyRequis
Fornex API Key
LOG_ID='1'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/log_details/$LOG_ID/"
Réponse200
{
  "pk": 1,
  "action": "Démarrage",
  "note": "Démarrage du serveur en cours",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}

VPS: Settings

Vous pouvez modifier à distance les paramètres d'un serveur virtuel Fornex. Cette section regroupe les requêtes API permettant d'effectuer ces modifications.

#

Modifier les paramètres du VPS

Modifiez différents paramètres du VPS.

patch/vps/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Corps

private_network_enabledboolean

Connecter la commande à un réseau privé. Cela permettra un échange de données direct avec les autres commandes du même réseau, améliorant ainsi la vitesse et la sécurité. Pour le moment, un seul réseau privé est créé par compte.

Réponses

  • 200application/json
    private_network_enabledbooleanRequis

    Connecter la commande à un réseau privé. Cela permettra un échange de données direct avec les autres commandes du même réseau, améliorant ainsi la vitesse et la sécurité. Pour le moment, un seul réseau privé est créé par compte.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"private_network_enabled":false}' \
  "https://fornex.com/api/vps/$ORDER_ID/"
Réponse200
{
  "type": "object",
  "properties": {
    "private_network_enabled": {
      "type": "boolean",
      "description": "Connecter la commande à un réseau privé. Cela permettra un échange de données direct avec les autres commandes du même réseau, améliorant ainsi la vitesse et la sécurité. Pour le moment, un seul réseau privé est créé par compte."
    }
  },
  "required": [
    "private_network_enabled"
  ]
}

VPS: Statistics

Chez Fornex, nous collectons des statistiques sur les performances et l'utilisation des ressources de votre VPS. Cette section présente l'endpoint API permettant de récupérer ces statistiques.

#

Statistiques VPS

Le champ series contient une liste de paires de valeurs (timestamp * 1000, float value).

get/vps/{order_id}/stats/{field}/

Paramètres de chemin

  • fieldstringRequis

    Champ de statistiques

    cpudiskiomemorytraffic
  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Paramètres de requête

  • endstring

    Fin de la période (par défaut - now)

  • startstring

    Début de la période (par défaut - -1h)

Réponses

Fornex API Key
FIELD='traffic'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stats/$FIELD/"
Réponse200
{
  "series": [
    {
      "color": "#60B5FF",
      "data": [
        [
          1677628800000,
          0.09553581192531
        ],
        [
          1677629088000,
          0.09553581192531
        ],
        [
          1677629376000,
          0.09916645151423
        ]
      ],
      "name": "Entrant"
    },
    {
      "color": "#61D561",
      "data": [
        [
          1677628800000,
          4585.9263464
        ],
        [
          1677629088000,
          4575.14841552
        ],
        [
          1677629376000,
          4636.41519648
        ]
      ],
      "name": "Sortant",
      "type": "areaspline"
    }
  ],
  "subtitle": "16 novembre 2015, 17:18 - 17 novembre 2015, 17:18 (Europe / Moscow)"
}

VPS: Private Network

Gestion du réseau privé pour VPS.

#

Liste des réseaux

get/private-network/

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetwork[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Réponse200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          }
        },
        "required": [
          "id"
        ]
      }
    }
  }
}
#

Créer un réseau

post/private-network/

Réponses

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Réponse201
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    }
  },
  "required": [
    "id"
  ]
}
#

Localisations prises en charge

get/private-network/locations/

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetworkLocation[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/locations/"
Réponse200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "location": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "icon": {
                "type": "string"
              }
            },
            "required": [
              "icon",
              "label",
              "value"
            ]
          }
        },
        "required": [
          "id",
          "location"
        ]
      }
    }
  }
}
#

Supprimer le réseau

delete/private-network/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce User VNI.

Réponses

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/$ID/"

Dedicated Order

#

Liste des commandes DS

Lister toutes les commandes DS disponibles. Les informations sur les paramètres de chaque commande seront également incluses dans la réponse.

get/orders/ds/

Paramètres de requête

  • cancel_markboolean

    Filtrer les commandes qui seront annulées.

  • orderingstring

    Champ utilisé pour trier les résultats.

    default: id
    expiredid
  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]DSOrder[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "configuration": {
        "cpu_count": 1,
        "cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
        "motherboard": "Supermicro X9SCM-F",
        "chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
        "bandwidth": 1024,
        "memory": 16
      }
    }
  ]
}
#

Détails de la commande DS

Récupérer toutes les données disponibles sur la commande par son ID.

get/orders/ds/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    ID de commande au format NN-NNNNNNN.

Réponses

  • 200application/json
    idstringread-onlyRequis
    namestringmax length: 64
    tariffstringread-onlyRequis
    tariff_pricenumber (double)nullableread-onlyRequis
    typestringread-onlyRequis
    hostnamestringnullableread-onlyRequis
    ipaddress_setarray string[]nullableread-onlyRequis
    statusstringread-onlyRequis
    valeurs
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyRequis
    expiration_datestring (date-time)read-onlyRequis
    tagsarray string[]Requis
    cancel_markbooleanread-onlyRequis

    Indicateur signalant que la commande sera annulée.

    projectobjectnullableread-onlyRequis
    configurationobjectread-onlyRequis

    Configuration du serveur

Fornex API Key
ORDER_ID='34-123456'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/"
Réponse200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "configuration": {
    "cpu_count": 1,
    "cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
    "motherboard": "Supermicro X9SCM-F",
    "chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
    "bandwidth": 1024,
    "memory": 16
  }
}
#

Trafic

Récupérer les données de trafic pour la commande

get/orders/ds/{order_id}/traffic/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Paramètres de requête

  • periodstring

    Période d'affichage des statistiques

    default: month
    monthyear
  • portinteger

    Numéro de port séquentiel

    default: 0

Réponses

  • 200application/json
    dataarrayRequis
    orderstringRequis
    periodstringRequis
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic/"
Réponse200
{
  "data": [
    [
      "2015-11-11",
      {
        "input": 41348840999.42331,
        "output": 969929788001.3163
      }
    ],
    [
      "2015-11-12",
      {
        "input": 44384423647.10196,
        "output": 1019910108491.1565
      }
    ]
  ],
  "order": "34-1234 DS HyperXeon (example.net)",
  "period": "month"
}
#

Limites de trafic

get/orders/ds/{order_id}/traffic_used/

Paramètres de chemin

  • order_idintegerRequis

    Un unique integer value identifiant ce Commande DS.

Réponses

  • 200application/json
    orderstringRequis
    limitintegerRequis
    range_startstring (date)Requis
    range_endstring (date)Requis
    usedintegerRequis
    used_ratenumber (double)Requis
Fornex API Key
ORDER_ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic_used/"
Réponse200
{
  "limit": 14293651161088,
  "order": "34-1234 DS XeonNeon (example.net)",
  "range_end": "2015-11-21",
  "range_start": "2015-10-21",
  "used": 3508146044885.079,
  "used_rate": 0.24543386468220252
}

Domain

#

Liste de domaines

get/dns/domain/

Paramètres de requête

  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10
  • qstring

    rechercher par nom ou IP

  • tagstring

    filtrer par tag

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Domain[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "name": "example.com",
      "created": "2024-02-05T21:41:25",
      "updated": "2024-02-05T21:41:25",
      "entry_set": [
        {
          "host": "",
          "id": 366182,
          "type": "A",
          "ttl": null,
          "value": "192.0.2.1"
        }
      ],
      "tags": []
    }
  ]
}
#

Ajouter un domaine

La possibilité d'ajouter des domaines via l'API est désactivée par défaut pour des raisons de sécurité du compte. Si vous souhaitez utiliser cette fonctionnalité — contactez le support.

post/dns/domain/

Corps

Requis
namestringlength 1…128Requis
ipstring (ipv4)min length: 1write-onlyRequis

Réponses

  • 201application/json
    namestringmax length: 128Requis
    createdstring (date-time)read-onlyRequis
    updatedstring (date-time)read-onlyRequis
    tagsarray string[]read-onlyRequis
    entry_setarray object[]Entry[]read-onlyRequis
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "example.com", "ip": "192.0.2.1"}' \
  "https://fornex.com/api/dns/domain/"
Réponse201
{
  "name": "example.com",
  "created": "2024-02-05T21:41:25",
  "updated": "2024-02-05T21:41:25",
  "entry_set": [
    {
      "host": "",
      "id": 366182,
      "type": "A",
      "ttl": null,
      "value": "192.0.2.1"
    }
  ],
  "tags": []
}
#

Supprimer le domaine

delete/dns/domain/{name}/

Paramètres de chemin

  • namestringRequis

    Nom de domaine

Réponses

  • 204

    No response body

Fornex API Key
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/"
#

Fichier de zone

get/dns/domain/{name}/zone_file/

Paramètres de chemin

  • namestringRequis

    Nom de domaine

Réponses

  • 200text/plain

    Zone file content (BIND format)

    string
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/zone_file/"
Réponse200
"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"
#

Mettre à jour les tags

put/dns/domain/{name}/tags/

Paramètres de chemin

  • namestringRequis

    Nom de domaine

Corps

Requis
tagsarray string[]Requis

Réponses

  • 200application/json
    tagsarray string[]Requis
Fornex API Key
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tags": ["example"]}' \
  "https://fornex.com/api/dns/domain/$NAME/tags/"
Réponse200
{
  "tags": [
    "example"
  ]
}

Domain: Entry

#

Liste des enregistrements

get/dns/domain/{name}/entry_set/

Paramètres de chemin

  • namestringRequis

    Nom de domaine

Paramètres de requête

  • qstring

    filtre d'enregistrements

  • typestring
    AAAAACAACNAMEMXNSSRVTXTnull

Réponses

  • 200application/json
    array object[]Entry[]
    idintegerread-onlyRequis
    hoststringmax length: 255default:

    Hostname de l'enregistrement : @, *, subdomain

    typestringRequis
    valeurs
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Type d'enregistrement

    priointeger (int64)min: 0max: 4294967295nullable

    Priorité, utilisée uniquement pour SRV et MX

    valuestringmax length: 1024Requis

    Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

    ttlnullable

    TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

    Un parmi
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Réponse200
[
  {
    "id": 1,
    "host": "www",
    "type": "A",
    "ttl": null,
    "value": "10.10.10.18"
  }
]
#

Ajouter un enregistrement

post/dns/domain/{name}/entry_set/

Paramètres de chemin

  • namestringRequis

    Nom de domaine

Corps

Requis
hoststringmax length: 255default:

Hostname de l'enregistrement : @, *, subdomain

typestringRequis
valeurs
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Type d'enregistrement

priointeger (int64)min: 0max: 4294967295nullable

Priorité, utilisée uniquement pour SRV et MX

valuestringlength 1…1024Requis

Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

ttlnullable

TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

Un parmi

Réponses

  • 201application/json
    idintegerread-onlyRequis
    hoststringmax length: 255default:

    Hostname de l'enregistrement : @, *, subdomain

    typestringRequis
    valeurs
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Type d'enregistrement

    priointeger (int64)min: 0max: 4294967295nullable

    Priorité, utilisée uniquement pour SRV et MX

    valuestringmax length: 1024Requis

    Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

    ttlnullable

    TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

    Un parmi
Fornex API Key
NAME='example.com'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Réponse201
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Mettre à jour l'enregistrement

put/dns/domain/{name}/entry_set/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce Enregistrement DNS.

  • namestringRequis

    Nom de domaine

Corps

Requis
hoststringmax length: 255default:

Hostname de l'enregistrement : @, *, subdomain

typestringRequis
valeurs
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Type d'enregistrement

priointeger (int64)min: 0max: 4294967295nullable

Priorité, utilisée uniquement pour SRV et MX

valuestringlength 1…1024Requis

Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

ttlnullable

TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

Un parmi

Réponses

  • 200application/json
    idintegerread-onlyRequis
    hoststringmax length: 255default:

    Hostname de l'enregistrement : @, *, subdomain

    typestringRequis
    valeurs
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Type d'enregistrement

    priointeger (int64)min: 0max: 4294967295nullable

    Priorité, utilisée uniquement pour SRV et MX

    valuestringmax length: 1024Requis

    Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

    ttlnullable

    TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

    Un parmi
Fornex API Key
ID='1'
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"
Réponse200
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Supprimer l'enregistrement

delete/dns/domain/{name}/entry_set/{id}/

Paramètres de chemin

  • idintegerRequis

    Un unique integer value identifiant ce Enregistrement DNS.

  • namestringRequis

    Nom de domaine

Réponses

  • 204

    No response body

Fornex API Key
ID='1'
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"

Domain Order

#

Modifier les NS

Demande de modification des Nameservers pour la commande de domaine.

post/dns/order/{order_id}/change_ns/

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Corps

Requis
nssstringmin length: 1Requis

liste de NS séparés par une virgule

Réponses

Fornex API Key
ORDER_ID='375-13'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"nss": "ns1.examle.com,ns2.example.com"}' \
  "https://fornex.com/api/dns/order/$ORDER_ID/change_ns/"
Réponse200
{
  "type": "object",
  "properties": {
    "nss": {
      "type": "string",
      "title": "Nameservers",
      "description": "liste de NS séparés par une virgule"
    }
  },
  "required": [
    "nss"
  ]
}

SSH Keys

#

Liste des clés

get/ssh_keys/

Réponses

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyRequis
    userstringread-onlyRequis
    keystringmax length: 16384Requis

    Clé publique en texte brut.

    titlestringmax length: 128Requis
    datestring (date-time)read-onlyRequis
    defaultboolean
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/"
Réponse200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Ajouter une clé

Lors de l'ajout d'une nouvelle clé, elle sera automatiquement associée à tous vos VPS. La clé n'est ajoutée directement au VPS qu'à la création ou à la réinstallation.

post/ssh_keys/

Corps

Requis
keystringlength 1…16384Requis

Clé publique en texte brut.

titlestringlength 1…128Requis
defaultboolean

Réponses

  • 201application/json
    idintegerread-onlyRequis
    userstringread-onlyRequis
    keystringmax length: 16384Requis

    Clé publique en texte brut.

    titlestringmax length: 128Requis
    datestring (date-time)read-onlyRequis
    defaultboolean
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test", "title": "Dev Laptop", "default": true}' \
  "https://fornex.com/api/ssh_keys/"
Réponse201
{
  "id": 1,
  "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
  "title": "Dev Laptop",
  "date": "2019-08-24T14:15:22Z",
  "default": true
}
#

Supprimer la clé

delete/ssh_keys/{key_id}/

Paramètres de chemin

  • key_idintegerRequis

    Un unique integer value identifiant ce user ssh key.

Réponses

  • 204

    No response body

Fornex API Key
KEY_ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/$KEY_ID/"

VPS SSH Keys

#

Liste des clés de la commande

get/vps/{order_id}/ssh_keys/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Réponses

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyRequis
    userstringread-onlyRequis
    keystringmax length: 16384Requis

    Clé publique en texte brut.

    titlestringmax length: 128Requis
    datestring (date-time)read-onlyRequis
    defaultboolean
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/"
Réponse200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Ajouter une clé à la commande

post/vps/{order_id}/ssh_keys/add/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Corps

Requis
key_pkintegerwrite-onlyRequis

Réponses

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/add/"
#

Supprimer la clé de la commande

post/vps/{order_id}/ssh_keys/delete/

Paramètres de chemin

  • order_idstringRequis

    ID de la commande (préfixe inclus 34-...)

Corps

Requis
key_pkintegerwrite-onlyRequis

Réponses

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/delete/"

S3 Storage

#

Liste des commandes S3

Liste toutes les commandes S3 disponibles. Les informations sur les paramètres de chaque commande seront également incluses dans la réponse.

get/orders/s3/

Paramètres de requête

  • cancel_markboolean

    Filtrer les commandes qui seront annulées.

  • orderingstring

    Champ utilisé pour trier les résultats.

    default: id
    expiredid
  • pageinteger

    Numéro de page dans l'ensemble de résultats paginés.

    default: 1
  • page_sizeinteger

    Nombre de résultats à retourner par page.

    default: 10

Réponses

  • 200application/json
    countintegerRequisexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]S3Order[]Requis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/s3/"
Réponse200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "hostname": "srv-123.fornex.org",
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "access_key": "user.8cab052ag4",
      "secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
      "bucket_name": "user.8cab052ag4.main",
      "space_used": "18"
    }
  ]
}
#

Détail de la commande S3

Récupérer toutes les données disponibles sur la commande par son ID.

get/orders/s3/{order_id}/

Paramètres de chemin

  • order_idstringRequis

    Identifiant de commande au format NNN-NN.

Réponses

  • 200application/json
    idstringread-onlyRequis
    namestringread-onlyRequis
    hostnamestringRequis
    access_keystringread-onlyRequis
    secret_keystringread-onlyRequis
    bucket_namestringread-onlyRequis
    space_usedintegerRequis
    cost_monthnumber (double)read-onlyRequis
    expiration_datestring (date-time)read-onlyRequis
    tagsarray string[]Requis
    cancel_markbooleanread-onlyRequis

    Indicateur signalant que la commande sera annulée.

    projectobjectnullableread-onlyRequis
Fornex API Key
ORDER_ID='664-7'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/s3/$ORDER_ID/"
Réponse200
{
  "id": "34-1234",
  "name": "DB Host",
  "hostname": "srv-123.fornex.org",
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "access_key": "user.8cab052ag4",
  "secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
  "bucket_name": "user.8cab052ag4.main",
  "space_used": "18"
}
#

Seuil de notification d'espace faible (S3)

Définissez le seuil d'espace libre à partir duquel une alerte est envoyée. Passez 0 pour désactiver la notification.

put/orders/s3/{order_id}/notification_threshold/

Paramètres de chemin

  • order_idintegerRequis

    Un unique integer value identifiant ce Commande S3.

Corps

Requis
space_warning_notify_gbintegermin: 0Requis

Réponses

Fornex API Key
ORDER_ID='1'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"space_warning_notify_gb":0}' \
  "https://fornex.com/api/orders/s3/$ORDER_ID/notification_threshold/"
Réponse200
{
  "type": "object",
  "properties": {
    "space_warning_notify_gb": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "space_warning_notify_gb"
  ]
}

VPN

#

Configuration OpenVPN

get/vpn/{order_id}/config-{proto}.ovpn

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

  • protostringRequis

    Protocole

    tcpudp

Réponses

  • 200text/plain

    OpenVPN profile

    string
Fornex API Key
ORDER_ID='301-12312'
PROTO='udp'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-$PROTO.ovpn"
Réponse200
{
  "type": "string"
}
#

Configuration IKEv2 pour MacOS/iOS

get/vpn/{order_id}/config-ikev2.mobileconfig

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Réponses

  • 200text/plain

    IKEv2 mobileconfig

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.mobileconfig"
Réponse200
{
  "type": "string"
}
#

Configuration IKEv2 pour Android

get/vpn/{order_id}/config-ikev2.sswan

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Réponses

  • 200application/json

    IKEv2 sswan

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.sswan"
Réponse200
{
  "type": "string"
}
#

Configuration WireGuard

get/vpn/{order_id}/config-wireguard.conf

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Réponses

  • 200text/plain

    WireGuard config

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-wireguard.conf"
Réponse200
{
  "type": "string"
}
#

Configuration Outline VPN

get/vpn/{order_id}/config_outline

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Réponses

  • 200application/json
    access_urlstring (uri)Requis
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_outline"
Réponse200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}
#

Configuration Xray VPN

get/vpn/{order_id}/config_xray

Paramètres de chemin

  • order_idstringRequis

    numéro de commande

Réponses

  • 200application/json
    access_urlstring (uri)Requis
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_xray"
Réponse200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}

IP Addresses

Adresses IP assignées à vos services.

#

Liste des adresses IP

get/network/ip-address/

Paramètres de requête

  • orderingstring

    Which field to use when ordering the results.

  • searchstring
  • typestring

Réponses

  • 200application/json
    idintegerread-onlyRequis
    ipstringRequis
    locationLocationChoiceRequis
    rdnsstringRequis
    orderobjectnullableread-onlyRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/network/ip-address/"
Réponse200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true
      },
      "ip": {
        "type": "string",
        "title": "IP Address"
      },
      "location": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          }
        },
        "required": [
          "icon",
          "label",
          "value"
        ]
      },
      "rdns": {
        "type": "string"
      },
      "order": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "link": {
                "type": "string",
                "readOnly": true
              },
              "unique_number": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "link",
              "name",
              "type",
              "unique_number"
            ]
          }
        ],
        "nullable": true,
        "readOnly": true
      }
    },
    "required": [
      "id",
      "ip",
      "location",
      "order",
      "rdns"
    ]
  }
}

Tickets

Cette section décrit les requêtes API permettant de configurer l'accès à distance à notre système de tickets. Elle présente les principaux endpoints API et les endpoints auxiliaires utilisés pour gérer cet accès.

#

Créer un ticket

Pour créer un ticket, soumettez l'objet et le contenu de votre demande. Vous pouvez également définir la priorité de votre demande ainsi que la commande à laquelle elle se rapporte.

post/tickets/ticket/

Corps

Requis

Создание тикета пользователем

subjectstringlength 1…64Requis

L'idée principale de votre demande en bref.

messagestringlength 1…49152Requis

Une description détaillée de votre problème et les autres détails de la demande.

priorityintegerdefault: 1
valeurs
  • 0
  • 1
  • 2
  • 3
  • 4

L'une des options reflétant la priorité de votre demande :

  • 0 - Non urgent (jusqu'à 24 heures)
  • 1 - Normal (jusqu'à 8 heures)
  • 2 - Important (jusqu'à 6 heures)
  • 3 - Urgent (sous 1 heure)
  • 4 - Très urgent (dès que possible)

Par défaut, un ticket est créé avec une priorité normale.

La priorité très urgent ne peut être définie que pour les commandes avec un service de gestion étendu.

Merci de ne pas définir la priorité "très urgent" pour des demandes sans lien avec des problèmes techniques de vos commandes ou un incident. De même, merci de ne pas augmenter intentionnellement la priorité d'un ticket si ce n'est pas nécessaire, cela ne fait que compliquer le traitement de vos demandes.

orderstringmin length: 1nullable

L'ID de la commande au format "34-NNNN" concernée par votre demande. Pour l'instant, un ticket ne peut être associé qu'à une seule commande. Par défaut, un ticket est créé sans commande associée.

credentialsobjectwrite-only

Réponses

  • 201application/json

    Создание тикета пользователем

    subjectstringmax length: 64Requis

    L'idée principale de votre demande en bref.

    messagestringmax length: 49152Requis

    Une description détaillée de votre problème et les autres détails de la demande.

    priorityintegerdefault: 1
    valeurs
    • 0
    • 1
    • 2
    • 3
    • 4

    L'une des options reflétant la priorité de votre demande :

    • 0 - Non urgent (jusqu'à 24 heures)
    • 1 - Normal (jusqu'à 8 heures)
    • 2 - Important (jusqu'à 6 heures)
    • 3 - Urgent (sous 1 heure)
    • 4 - Très urgent (dès que possible)

    Par défaut, un ticket est créé avec une priorité normale.

    La priorité très urgent ne peut être définie que pour les commandes avec un service de gestion étendu.

    Merci de ne pas définir la priorité "très urgent" pour des demandes sans lien avec des problèmes techniques de vos commandes ou un incident. De même, merci de ne pas augmenter intentionnellement la priorité d'un ticket si ce n'est pas nécessaire, cela ne fait que compliquer le traitement de vos demandes.

    orderstringnullable

    L'ID de la commande au format "34-NNNN" concernée par votre demande. Pour l'instant, un ticket ne peut être associé qu'à une seule commande. Par défaut, un ticket est créé sans commande associée.

    urlstringread-onlyRequis
    idstringread-onlyRequis
    statusstringread-onlyRequis
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"subject": "Hello, we need some help", "message": "We need some help with updating software..."}' \
  "https://fornex.com/api/tickets/ticket/"
Réponse201
{
  "subject": "Hello, we need some help",
  "message": "We need some help with updating software...",
  "priority": 1,
  "order": null,
  "url": "https://fornex.com/my/tickets/66a8968a01027a2c2f241e6c/",
  "id": "66a8968a01027a2c2f241e6c",
  "status": "new"
}
#

Statut du webhook

get/tickets/webhook_info/

Réponses

  • 200application/json
    urlstring (uri)max length: 512

    URL de destination de la requête, laisser vide pour désactiver

    last_error_datestring (date-time)nullableread-onlyRequis
    last_error_messagestringnullableread-onlyRequis
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/tickets/webhook_info/"
Réponse200
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}
#

Configurer le webhook

Une requête POST

ContentType: 'application/json'

{"text": 'New comment added to the ticket...'}

sera envoyée à l'URL indiquée. Par défaut, elle fonctionne avec Slack, mais vous pouvez spécifier votre propre webhook et traiter la notification vous-même.

post/tickets/webhook_set/

Corps

urlstring (uri)max length: 512

URL de destination de la requête, laisser vide pour désactiver

Réponses

  • 201application/json
    urlstring (uri)max length: 512

    URL de destination de la requête, laisser vide pour désactiver

    last_error_datestring (date-time)nullableread-onlyRequis
    last_error_messagestringnullableread-onlyRequis
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"last_error_date": null, "last_error_message": null, "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}' \
  "https://fornex.com/api/tickets/webhook_set/"
Réponse201
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}

Schémas

#AccountBalance
object
balancenumber (double)Requis
currencystringRequis
#AccountInfo
object
emailstring (email)max length: 254
namestringRequis
#AccountInvoices
object
unpaid_invoices_countintegerRequis
unpaid_invoices_amountnumber (double)Requis
currencystringRequis
#AppTemplate
object
idintegerread-onlyRequis

Identifiant de l'application.

namestringmax length: 64Requis

Nom de l'application.

osstringread-onlyRequis
#BackupTariff
object
spaceintegerRequis
pricenumber (double)Requis
unitsstringread-onlyRequisdefault: GB
#BandwidthEnum
valeurs
  • 10
  • 15
  • 20
  • 25
  • 40
#BillingTypeEnum
string
valeurs
  • single
  • periodic
#BlankEnum
valeurs
#CancelOrder
object
statusstringread-onlyRequis
valeurs
  • canceled
  • cancel_pending
messagestringread-onlyRequis
#CancelOrderRequest
object
whenstringwrite-onlydefault: expired
valeurs
  • now
  • expired

Ce paramètre indique quand la commande doit être annulée — immédiatement ou à l'expiration de la période payée.

save_backupbooleanwrite-onlydefault: true

Ce paramètre indique si un snapshot du VPS doit être pris avant la suppression de la machine virtuelle.

#CancelOrderStatusEnum
string
valeurs
  • canceled
  • cancel_pending
#CpuArchEnum
string
valeurs
  • x86_64
  • arm
#DedicatedTariff
object
idintegerread-onlyRequis
namestringmax length: 128Requis

Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

cpu_modelstringread-onlyRequis
cpu_countintegermin: 0max: 65535
ramstringRequis
diskstringRequis
bandwidthstringRequis
pricenumber (double)Requis
locationsarray array[]Requis
#DiskTypeEnum
string
valeurs
  • hdd
  • nvme
  • ssd
  • sas
#DnsOrderNameservers
object
nssstringRequis

liste de NS séparés par une virgule

#DnsOrderNameserversRequest
object
nssstringmin length: 1Requis

liste de NS séparés par une virgule

#Domain
object
namestringmax length: 128Requis
createdstring (date-time)read-onlyRequis
updatedstring (date-time)read-onlyRequis
tagsarray string[]read-onlyRequis
entry_setarray object[]Entry[]read-onlyRequis
#DomainRequest
object
namestringlength 1…128Requis
ipstring (ipv4)min length: 1write-onlyRequis
#DomainTags
object
tagsarray string[]Requis
#DomainTagsRequest
object
tagsarray string[]Requis
#DSConfiguration
object
cpu_countintegermin: 0max: 65535
cpustringRequis
motherboardstringRequis
chassisstringRequis
raid_controllerstringRequis
network_adapterstringRequis
bandwidthnullable
Un parmi
memoryinteger (int64)min: 0max: 4294967295Requis
disksstringread-onlyRequis
#DSOrder
object
idstringread-onlyRequis
namestringmax length: 64
tariffstringread-onlyRequis
tariff_pricenumber (double)nullableread-onlyRequis
typestringread-onlyRequis
hostnamestringnullableread-onlyRequis
ipaddress_setarray string[]nullableread-onlyRequis
statusstringread-onlyRequis
valeurs
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyRequis
expiration_datestring (date-time)read-onlyRequis
tagsarray string[]Requis
cancel_markbooleanread-onlyRequis

Indicateur signalant que la commande sera annulée.

projectobjectnullableread-onlyRequis
configurationobjectread-onlyRequis

Configuration du serveur

#DSTraffic
object
dataarrayRequis
orderstringRequis
periodstringRequis
#DSTrafficUsed
object
orderstringRequis
limitintegerRequis
range_startstring (date)Requis
range_endstring (date)Requis
usedintegerRequis
used_ratenumber (double)Requis
#Entry
object
idintegerread-onlyRequis
hoststringmax length: 255default:

Hostname de l'enregistrement : @, *, subdomain

typestringRequis
valeurs
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Type d'enregistrement

priointeger (int64)min: 0max: 4294967295nullable

Priorité, utilisée uniquement pour SRV et MX

valuestringmax length: 1024Requis

Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

ttlnullable

TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

Un parmi
#EntryRequest
object
hoststringmax length: 255default:

Hostname de l'enregistrement : @, *, subdomain

typestringRequis
valeurs
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Type d'enregistrement

priointeger (int64)min: 0max: 4294967295nullable

Priorité, utilisée uniquement pour SRV et MX

valuestringlength 1…1024Requis

Valeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A

ttlnullable

TTL de l'enregistrement (facultatif, par défaut : 3600 sec.)

Un parmi
#EntryTypeEnum
string
valeurs
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA
#JobStateEnum
string
valeurs
  • ready
  • error
  • done
#LocationChoice
object
valuestringRequis
labelstringRequis
iconstringRequis
#NetworkOrder
object
idintegerRequis
namestringRequis
typestringRequis
linkstringread-onlyRequis
unique_numberstringRequis
#NullEnum
valeurs
  • null
#Order
object
idstringread-onlyRequis
namestringmax length: 64
tariffstringread-onlyRequis
tariff_pricenumber (double)nullableread-onlyRequis
typestringread-onlyRequis
hostnamestringnullableread-onlyRequis
ipaddress_setarray string[]nullableread-onlyRequis
statusstringread-onlyRequis
valeurs
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyRequis
expiration_datestring (date-time)read-onlyRequis
tagsarray string[]Requis
cancel_markbooleanread-onlyRequis

Indicateur signalant que la commande sera annulée.

projectobjectnullableread-onlyRequis
#OrderCredentials
object
usernamestring
passwordstring
commentstring
#OrderCredentialsRequest
object
usernamestringmin length: 1
passwordstringmin length: 1
commentstringmin length: 1
#OrderServiceCreate
object
serviceintegerRequis

L'ID du service supplémentaire.

countintegermin: 1default: 1

La quantité de ce service supplémentaire.

#OrderServiceCreateRequest
object
serviceintegerRequis

L'ID du service supplémentaire.

countintegermin: 1default: 1

La quantité de ce service supplémentaire.

#OrderSSHKeyAddRequest
object
key_pkintegerwrite-onlyRequis
#OrderSSHKeyRemoveRequest
object
key_pkintegerwrite-onlyRequis
#OrderStatus
string
valeurs
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
#OrderUpdate
object
namestringmax length: 64default:

Nom personnalisé de la commande.

tagsarray string[]Requis

Tags associés à la commande.

projectintegernullableRequis

Projet de la commande.

#PaginatedAppTemplateList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]AppTemplate[]Requis
#PaginatedDomainList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Domain[]Requis
#PaginatedDSOrderList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]DSOrder[]Requis
#PaginatedOrderList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Order[]Requis
#PaginatedPrivateNetworkList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetwork[]Requis
#PaginatedPrivateNetworkLocationList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetworkLocation[]Requis
#PaginatedProjectList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Project[]Requis
#PaginatedS3OrderList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]S3Order[]Requis
#PaginatedSnapshotList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Snapshot[]Requis
#PaginatedTemplateList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Template[]Requis
#PaginatedVPSOrderList
object
countintegerRequisexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]VPSOrder[]Requis
#PanelEnum
valeurs
  • vesta
  • hestia
  • aapanel
  • brainycp
  • cloudpanel
  • cyberpanel
  • beadmin
  • openpanel
#PatchedOrderUpdateRequest
object
namestringlength 1…64default:

Nom personnalisé de la commande. Définissez une chaîne vide si vous souhaitez supprimer le nom.

tagsarray string[]

Tags associés à la commande. Les nouveaux tags remplaceront entièrement les tags existants, le cas échéant. Définissez une liste vide si vous souhaitez supprimer tous les tags.

projectintegernullable

Projet de la commande. Définissez une chaîne vide si vous souhaitez supprimer le projet.

#PatchedProjectRequest
object
namestringlength 1…40
commentstringmax length: 256
#PatchedVpsUpdateRequest
object
private_network_enabledboolean

Connecter la commande à un réseau privé. Cela permettra un échange de données direct avec les autres commandes du même réseau, améliorant ainsi la vitesse et la sécurité. Pour le moment, un seul réseau privé est créé par compte.

#PlacementPolicyEnum
string
valeurs
  • STRICT
  • OPTIONAL
#PriorityEnum
integer
valeurs
  • 0
  • 1
  • 2
  • 3
  • 4
#PrivateNetwork
object
idintegerread-onlyRequis
#PrivateNetworkLocation
object
idintegerread-onlyRequis
locationLocationChoiceRequis
#Project
object
idintegerread-onlyRequis
namestringmax length: 40Requis
commentstringmax length: 256
logostring (uri)read-onlyRequis
#ProjectAddOrdersRequest
object
ordersarray string[]write-onlyRequis
#ProjectLogoRequest
object
logostring (binary)

Chemin vers le fichier.

#ProjectRemoveOrdersRequest
object
ordersarray string[]write-onlyRequis
#ProjectRequest
object
namestringlength 1…40Requis
commentstringmax length: 256
#PublicChart
object
seriesarray object[]PublicChartSeries[]Requis
subtitlestringRequis
#PublicChartSeries
object
namestringRequis
dataarrayRequis
typestring
colorstring
#PublicNetworkAddress
object
idintegerread-onlyRequis
ipstringRequis
locationLocationChoiceRequis
rdnsstringRequis
orderobjectnullableread-onlyRequis
#PublicReinstallRequest
object

Public API version: exposes template instead of ostemplate.

display_namestringread-onlyRequis
statusstringread-onlyRequis
datestring (date-time)read-onlyRequis
#PublicReinstallRequestRequest
object

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only
#PublicTicket
object

Создание тикета пользователем

subjectstringmax length: 64Requis

L'idée principale de votre demande en bref.

messagestringmax length: 49152Requis

Une description détaillée de votre problème et les autres détails de la demande.

priorityintegerdefault: 1
valeurs
  • 0
  • 1
  • 2
  • 3
  • 4

L'une des options reflétant la priorité de votre demande :

  • 0 - Non urgent (jusqu'à 24 heures)
  • 1 - Normal (jusqu'à 8 heures)
  • 2 - Important (jusqu'à 6 heures)
  • 3 - Urgent (sous 1 heure)
  • 4 - Très urgent (dès que possible)

Par défaut, un ticket est créé avec une priorité normale.

La priorité très urgent ne peut être définie que pour les commandes avec un service de gestion étendu.

Merci de ne pas définir la priorité "très urgent" pour des demandes sans lien avec des problèmes techniques de vos commandes ou un incident. De même, merci de ne pas augmenter intentionnellement la priorité d'un ticket si ce n'est pas nécessaire, cela ne fait que compliquer le traitement de vos demandes.

orderstringnullable

L'ID de la commande au format "34-NNNN" concernée par votre demande. Pour l'instant, un ticket ne peut être associé qu'à une seule commande. Par défaut, un ticket est créé sans commande associée.

urlstringread-onlyRequis
idstringread-onlyRequis
statusstringread-onlyRequis
#PublicTicketRequest
object

Создание тикета пользователем

subjectstringlength 1…64Requis

L'idée principale de votre demande en bref.

messagestringlength 1…49152Requis

Une description détaillée de votre problème et les autres détails de la demande.

priorityintegerdefault: 1
valeurs
  • 0
  • 1
  • 2
  • 3
  • 4

L'une des options reflétant la priorité de votre demande :

  • 0 - Non urgent (jusqu'à 24 heures)
  • 1 - Normal (jusqu'à 8 heures)
  • 2 - Important (jusqu'à 6 heures)
  • 3 - Urgent (sous 1 heure)
  • 4 - Très urgent (dès que possible)

Par défaut, un ticket est créé avec une priorité normale.

La priorité très urgent ne peut être définie que pour les commandes avec un service de gestion étendu.

Merci de ne pas définir la priorité "très urgent" pour des demandes sans lien avec des problèmes techniques de vos commandes ou un incident. De même, merci de ne pas augmenter intentionnellement la priorité d'un ticket si ce n'est pas nécessaire, cela ne fait que compliquer le traitement de vos demandes.

orderstringmin length: 1nullable

L'ID de la commande au format "34-NNNN" concernée par votre demande. Pour l'instant, un ticket ne peut être associé qu'à une seule commande. Par défaut, un ticket est créé sans commande associée.

credentialsobjectwrite-only
#S3NotificationThreshold
object
space_warning_notify_gbintegermin: 0Requis
#S3NotificationThresholdRequest
object
space_warning_notify_gbintegermin: 0Requis
#S3Order
object
idstringread-onlyRequis
namestringread-onlyRequis
hostnamestringRequis
access_keystringread-onlyRequis
secret_keystringread-onlyRequis
bucket_namestringread-onlyRequis
space_usedintegerRequis
cost_monthnumber (double)read-onlyRequis
expiration_datestring (date-time)read-onlyRequis
tagsarray string[]Requis
cancel_markbooleanread-onlyRequis

Indicateur signalant que la commande sera annulée.

projectobjectnullableread-onlyRequis
#ServerBandwidthTariff
object
min_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requis
max_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requis
stepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requis

Incrément entre deux valeurs de bande passante consécutives

pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requis
valeurs
  • gbps
  • mbps
#Service
object
idintegerread-onlyRequis

Identifiant du service.

namestringmax length: 128Requis

Nom du service.

descriptionstringmax length: 255

Description du service.

pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Requis

Prix du service.

billing_typestringRequis
valeurs
  • single
  • periodic

Paiement unique ou mensuel.

#Snapshot
object
idintegerread-onlyRequis

Identifiant du snapshot.

namestringmax length: 64Requis

Nom du snapshot.

size_gbnumber (double)read-onlyRequis

Taille du snapshot en Go.

created_atstring (date-time)Requis
#SshKey
object
idintegerread-onlyRequis
userstringread-onlyRequis
keystringmax length: 16384Requis

Clé publique en texte brut.

titlestringmax length: 128Requis
datestring (date-time)read-onlyRequis
defaultboolean
#SshKeyRequest
object
keystringlength 1…16384Requis

Clé publique en texte brut.

titlestringlength 1…128Requis
defaultboolean
#Template
object
idintegerread-onlyRequis

Identifiant du modèle.

namestringmax length: 64Requis

Nom du modèle.

osstringread-onlyRequis
panelnullable

Panneau d'administration utilisé dans le modèle, peut être absent.

Un parmi
archstring
valeurs
  • x86_64
  • arm

Type d'architecture CPU requis pour ce modèle.

min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

Espace de stockage minimum requis pour ce modèle.

min_ram_volumeintegermin: 0max: 65535nullable

Volume de RAM minimum requis pour ce modèle.

min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

Nombre minimum de cœurs CPU requis pour ce modèle.

#TermEnum
integer
valeurs
  • 1
  • 3
  • 6
  • 12
#TicketsWebhook
object
urlstring (uri)max length: 512

URL de destination de la requête, laisser vide pour désactiver

last_error_datestring (date-time)nullableread-onlyRequis
last_error_messagestringnullableread-onlyRequis
#TicketsWebhookRequest
object
urlstring (uri)max length: 512

URL de destination de la requête, laisser vide pour désactiver

#TtlEnum
valeurs
  • 120
  • 300
  • 600
  • 900
  • 1800
#UnitEnum
string
valeurs
  • gbps
  • mbps
#VHTariff
object
idintegerread-onlyRequis
namestringmax length: 128Requis

Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

sitesintegermin: 0max: 65535nullable
pricenumber (double)Requis
cpu_coresintegermin: 0max: 65535nullable
hdd_spaceinteger (int64)min: 0max: 4294967295nullable

Go

available_locationsarray string[]read-onlyRequis
#VpnConfig
object
access_urlstring (uri)Requis
#VpnTariff
object
idintegerread-onlyRequis
pricenumber (double)Requis
valeurs
  • shared
  • dedicated
  • multi-hop
available_locationsarray string[]read-onlyRequis
#VpnTariffTypeEnum
string
valeurs
  • shared
  • dedicated
  • multi-hop
#VpsConfiguration
object
cpu_countintegermin: 1max: 16

Le nombre de cœurs.

ram_sizeintegermin: 2max: 32

Le volume de RAM en gigaoctets (Go).

disk_classintegernullable

Classe du disque.

disk_sizeintegermin: 20max: 300

La capacité de stockage en gigaoctets (Go).

cpu_archstring
valeurs
  • x86_64
  • arm

Architecture du processeur.

min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$

Fréquence minimale du cœur CPU en gigahertz (GHz). Elle influence le coût de la commande (fréquence plus élevée = prix plus élevé) et le choix de l'hyperviseur lors de la création d'un VPS. Nous recommandons d'indiquer la valeur exacte issue du configurateur VPS, car en cas de non-correspondance, le forfait immédiatement supérieur sera appliqué (par exemple, une commande à 2,4 GHz sera traitée comme 3,0 GHz).

#VpsConfigurationRequest
object
cpu_countintegermin: 1max: 16

Le nombre de cœurs.

ram_sizeintegermin: 2max: 32

Le volume de RAM en gigaoctets (Go).

disk_classintegernullable

Classe du disque.

disk_sizeintegermin: 20max: 300

La capacité de stockage en gigaoctets (Go).

cpu_archstring
valeurs
  • x86_64
  • arm

Architecture du processeur.

min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$

Fréquence minimale du cœur CPU en gigahertz (GHz). Elle influence le coût de la commande (fréquence plus élevée = prix plus élevé) et le choix de l'hyperviseur lors de la création d'un VPS. Nous recommandons d'indiquer la valeur exacte issue du configurateur VPS, car en cas de non-correspondance, le forfait immédiatement supérieur sera appliqué (par exemple, une commande à 2,4 GHz sera traitée comme 3,0 GHz).

#VpsDiskClass
object
idintegerread-onlyRequis
namestringmax length: 64Requis
limit_total_mbytes_secintegermin: 0max: 65535Requis

Мb/sec

limit_read_iops_secintegermin: 0max: 65535Requis

Op/sec

limit_write_iops_secintegermin: 0max: 65535Requis

Op/sec

price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Requis

Coût par 1 GB

disk_typeDiskTypeEnum
valeurs
  • hdd
  • nvme
  • ssd
  • sas
disk_type_displaystringRequis
#VpsLocation
object
valuestringRequis
labelstringRequis
location_os_typesarray string[]Requis
bandwidth_tariffobjectnullable
disabled_by_slotsbooleandefault: true
disabled_by_cpu_freqbooleandefault: true
disabled_by_osbooleandefault: false
disabled_by_cpu_typebooleandefault: false
available_frequenciesobjectRequis
#VpsLogEntry
object
pkintegerread-onlyRequis
actionstringread-onlyRequis
notestringread-onlyRequis
userstringread-onlyRequis
timestring (date-time)read-onlyRequis
completedbooleanread-onlyRequis
job_statestringread-onlyRequis
valeurs
  • ready
  • error
  • done
job_actionstringread-onlyRequis
#VPSOrder
object
idstringread-onlyRequis
namestringmax length: 64
tariffstringread-onlyRequis
tariff_pricenumber (double)nullableread-onlyRequis
typestringread-onlyRequis
hostnamestringnullableread-onlyRequis
ipaddress_setarray string[]nullableread-onlyRequis
statusstringread-onlyRequis
valeurs
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyRequis
expiration_datestring (date-time)read-onlyRequis
tagsarray string[]Requis
cancel_markbooleanread-onlyRequis

Indicateur signalant que la commande sera annulée.

projectobjectnullableread-onlyRequis
configurationobjectread-onlyRequis

Configuration du serveur

#VpsOrderCreate
object
order_idstringread-onlyRequis
#VpsOrderCreateRequest
object
tariffintegernullablewrite-only

L'ID du forfait prédéfini. Obtenez les options disponibles pour tariff depuis les forfaits VPS.

Pour créer une configuration personnalisée, utilisez le paramètre configuration. N'utilisez pas les deux paramètres simultanément.

configurationobjectnullablewrite-only

Les paramètres de configuration personnalisée sous forme d'objet (ouvrez la section dépliable pour plus de détails). Utilisez le configurateur VPS pour obtenir une combinaison de paramètres adaptée aux contraintes dynamiques.

À la place d'une configuration personnalisée, vous pouvez choisir un forfait prédéfini, généralement moins cher. Pour cela, utilisez le paramètre tariff. N'utilisez pas les deux paramètres simultanément.

templateintegerwrite-only

L'ID du modèle pour installer un système d'exploitation et, optionnellement, un panneau de contrôle d'hébergement. Obtenez les options disponibles pour template depuis les modèles VPS.

À la place d'un système d'exploitation, vous pouvez installer une application (paramètre app) ou restaurer le VPS depuis un snapshot (paramètre snapshot). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

appintegerwrite-only

L'ID de l'application à installer. Obtenez les options disponibles pour app depuis les applications VPS.

À la place d'une application, vous pouvez installer un système d'exploitation (paramètre template) ou restaurer le VPS depuis un snapshot (paramètre snapshot). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

snapshotintegerwrite-only

L'ID du snapshot depuis lequel vous souhaitez restaurer le VPS. Obtenez les options disponibles pour snapshot depuis les snapshots VPS.

Vous pouvez créer un snapshot depuis n'importe quel VPS existant dans votre espace client, sur la page de la commande, et l'utiliser pour une restauration (comme sauvegarde) ou pour créer des copies de la commande (comme modèle).

À la place d'une restauration depuis un snapshot, vous pouvez installer un système d'exploitation (paramètre template) ou une application (paramètre app). Pour cela, utilisez le paramètre correspondant. N'utilisez qu'un seul paramètre par commande.

locationstringmin length: 1write-onlyRequis

Le code pays à deux lettres de la localisation de la commande. Obtenez les options disponibles pour location depuis les localisations VPS.

termintegerwrite-onlydefault: 1
valeurs
  • 1
  • 3
  • 6
  • 12

Le nombre de mois pour lesquels la commande est renouvelée à la création (par exemple, 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

Les services supplémentaires et leur quantité sous forme de liste (ouvrez la section dépliable pour plus de détails). Obtenez les options disponibles pour services depuis les services supplémentaires VPS.

ssh_keysarray integer[]write-only

Les ID des clés SSH sous forme de liste, ajoutées au serveur lors de l'installation. Obtenez les options disponibles pour ssh_keys depuis les clés SSH. Passez la liste des clés explicitement. Par défaut, une liste vide est transmise, même si des clés sont marquées comme « ajouter par défaut » dans votre espace client.

namestringlength 1…25write-onlydefault:

Nom personnalisé pour le VPS. Par défaut, aucun nom n'est défini pour le serveur.

projectintegernullablewrite-only

L'ID du projet. Les options disponibles pour project peuvent être obtenues depuis la liste des projets.

disk_classintegernullablewrite-only

L'ID de la classe de disque VPS. Obtenez les options disponibles pour tariff depuis les disques VPS.

Lorsque vous utilisez une configuration personnalisée, utilisez l'attribut dans le paramètre configuration. N'utilisez pas les deux paramètres simultanément.

bandwidthintegernullablewrite-only

Limite de bande passante à définir pour la commande VPS. Le prix par unité est défini par la valeur bandwidth_tariff.

webhookobjectwrite-only

La configuration du webhook sous forme d'objet (ouvrez la section dépliable pour plus de détails). Elle est nécessaire pour recevoir une requête POST avec les détails de la commande et les identifiants d'accès une fois le VPS créé.

placement_policystringwrite-onlydefault: OPTIONAL
valeurs
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tags pour le VPS. Par défaut, aucun tag n'est défini pour le serveur.

#VpsOrderCreateWebhook
object
urlstring (uri)max length: 512Requis

URL à laquelle la requête POST est envoyée.

L'ensemble des détails de la commande est transmis (comme dans la méthode Détails de la commande), avec un champ supplémentaire credentials :

{
  "credentials": {
    "ip_address": "127.0.0.1",
    "username": "root",
    "password": "root_pass"
  }
}
secretstringmax length: 64Requis

Phrase secrète utilisée pour la signature.

Lors du traitement d'une requête webhook, utilisez l'en-tête "Fornex-Signature" pour la validation.

Exemple en python :

import hmac
from hashlib import sha256
import json

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse

@csrf_exempt
def webhook_handler(request: HttpRequest):
    signature = request.headers["Fornex-Signature"]
    secret = "secret"
    expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
    if signature != expected_signature:
        raise ValueError("Invalid signature.")
    print(json.loads(request.body.decode()))
    return HttpResponse()
#VpsOrderCreateWebhookRequest
object
urlstring (uri)length 1…512Requis

URL à laquelle la requête POST est envoyée.

L'ensemble des détails de la commande est transmis (comme dans la méthode Détails de la commande), avec un champ supplémentaire credentials :

{
  "credentials": {
    "ip_address": "127.0.0.1",
    "username": "root",
    "password": "root_pass"
  }
}
secretstringlength 1…64Requis

Phrase secrète utilisée pour la signature.

Lors du traitement d'une requête webhook, utilisez l'en-tête "Fornex-Signature" pour la validation.

Exemple en python :

import hmac
from hashlib import sha256
import json

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse

@csrf_exempt
def webhook_handler(request: HttpRequest):
    signature = request.headers["Fornex-Signature"]
    secret = "secret"
    expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
    if signature != expected_signature:
        raise ValueError("Invalid signature.")
    print(json.loads(request.body.decode()))
    return HttpResponse()
#VpsResetPassword
object
passwdstringread-onlyRequis

Votre nouveau mot de passe.

resp_idintegerread-onlyRequis

ID de l'opération pour vérifier son statut, pour plus de détails voir vps_log_details

#VpsStatus
object
statusstringRequis

on | off | unknown

#VpsTariff
object
idintegerread-onlyRequis
namestringmax length: 128Requis

Le nom du forfait apparaît sur les factures, il doit donc être court et écrit en caractères latins — par exemple, Cloud NVMe 1.

cpu_countintegerRequis
ramstringRequis
diskstringRequis
bandwidthstringRequis
pricenumber (double)Requis
disk_classVpsDiskClassRequis
#VpsUpdate
object
private_network_enabledbooleanRequis

Connecter la commande à un réseau privé. Cela permettra un échange de données direct avec les autres commandes du même réseau, améliorant ainsi la vitesse et la sécurité. Pour le moment, un seul réseau privé est créé par compte.

#WhenEnum
string
valeurs
  • now
  • expired