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>Authorization: Api-Key <key>
Account
Solde du compte
Retourne le solde actuel du compte
/account/balanceRéponses
200application/jsonbalancenumber (double)RequiscurrencystringRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/balance"200{
"balance": 10,
"currency": "EUR"
}Informations
/account/infoRéponses
200application/jsonemailstring (email)max length: 254namestringRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/info"200{
"email": "example@fornex.com",
"name": "Example Account"
}Factures
Retourne le nombre et le montant total des factures impayées.
/account/invoicesRéponses
200application/jsonunpaid_invoices_countintegerRequisunpaid_invoices_amountnumber (double)RequiscurrencystringRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/invoices"200{
"unpaid_invoices_count": 1,
"unpaid_invoices_amount": 100,
"currency": "EUR"
}Plans
Sauvegardes
/plans/backupsRéponses
200application/jsonarray object[]BackupTariff[]spaceintegerRequispricenumber (double)Requisunitsstringread-onlyRequisdefault: GB
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/backups"200[
{
"price": 3,
"space": 100,
"units": "GB"
}
]Serveurs dédiés
/plans/dedicatedRéponses
200application/jsonarray object[]DedicatedTariff[]idintegerread-onlyRequisnamestringmax length: 128RequisLe 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-onlyRequiscpu_countintegermin: 0max: 65535ramstringRequisdiskstringRequisbandwidthstringRequispricenumber (double)Requislocationsarray array[]Requis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/dedicated"200[
{
"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
/plans/hostingRéponses
200application/jsonarray object[]VHTariff[]idintegerread-onlyRequisnamestringmax length: 128RequisLe 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: 65535nullablepricenumber (double)Requiscpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGo
available_locationsarray string[]read-onlyRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/hosting"200[
{
"id": 33,
"name": "VH-SSD-2",
"price": 1,
"sites": 2,
"cpu_cores": 1,
"hdd_space": 1,
"available_locations": [
"DE",
"RU"
]
}
]VPN
/plans/vpnRéponses
200application/jsonarray object[]VpnTariff[]idintegerread-onlyRequispricenumber (double)Requisvaleursshareddedicatedmulti-hop
available_locationsarray string[]read-onlyRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vpn"200[
{
"id": 1,
"type": "dedicated",
"price": 10,
"available_locations": [
"DE",
"NL",
"US",
"RU"
]
}
]VPS
/plans/vpsRéponses
200application/jsonarray object[]VpsTariff[]idintegerread-onlyRequisnamestringmax length: 128RequisLe 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_countintegerRequisramstringRequisdiskstringRequisbandwidthstringRequispricenumber (double)Requis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vps"200[
{
"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
/project/Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/"200{
"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
/project/Corps
Requisnamestringlength 1…40Requiscommentstringmax length: 256Réponses
201application/jsonidintegerread-onlyRequisnamestringmax length: 40Requiscommentstringmax length: 256logostring (uri)read-onlyRequis
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/"201{
"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
/project/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Réponses
200application/jsonidintegerread-onlyRequisnamestringmax length: 40Requiscommentstringmax length: 256logostring (uri)read-onlyRequis
ID='1'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/$ID/"200{
"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
/project/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Corps
namestringlength 1…40commentstringmax length: 256Réponses
200application/jsonidintegerread-onlyRequisnamestringmax length: 40Requiscommentstringmax length: 256logostring (uri)read-onlyRequis
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/"200{
"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
/project/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Réponses
204No response body
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.
/project/{id}/add_orders/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Corps
Requisordersarray string[]write-onlyRequisRéponses
200No response body
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.
/project/{id}/edit_logo/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Corps
multipart/form-datalogostring (binary)Chemin vers le fichier.
Réponses
200application/jsonlogostring (uri)Chemin vers le fichier.
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/"200{
"type": "object",
"properties": {
"logo": {
"type": "string",
"format": "uri",
"description": "Chemin vers le fichier."
}
}
}Supprimer la commande
Demande de suppression d'une commande du projet.
/project/{id}/remove_orders/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce project.
Corps
Requisordersarray string[]write-onlyRequisRéponses
200No response body
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.
/orders/Paramètres de requête
cancel_markbooleanFiltrer les commandes qui seront annulées.
orderingstringChamp utilisé pour trier les résultats.
default: idexpiredidpageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/"200{
"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.
/orders/{order_id}/Paramètres de chemin
order_idstringRequisID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.
Réponses
200application/jsonidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisvaleursunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequis
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/"200{
"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.
/orders/{order_id}/Paramètres de chemin
order_idstringRequisID 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.
projectintegernullableProjet de la commande. Définissez une chaîne vide si vous souhaitez supprimer le projet.
Réponses
200application/jsonnamestringmax length: 64default:Nom personnalisé de la commande.
tagsarray string[]RequisTags associés à la commande.
projectintegernullableRequisProjet de la commande.
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/"200{
"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.
/orders/{order_id}/cancel/Paramètres de chemin
order_idstringRequisID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.
Corps
whenstringwrite-onlydefault: expirednowexpired
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: trueCe paramètre indique si un snapshot du VPS doit être pris avant la suppression de la machine virtuelle.
Réponses
200application/jsonstatusstringread-onlyRequisvaleurscanceledcancel_pending
messagestringread-onlyRequis
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/"200{
"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.
/orders/{order_id}/cancel/Paramètres de chemin
order_idstringRequisID de commande au format NN-NNNNN. Le préfixe peut varier selon le type de commande.
Réponses
204No response body
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.
/orders/vps/Paramètres de requête
cancel_markbooleanFiltrer les commandes qui seront annulées.
orderingstringChamp utilisé pour trier les résultats.
default: idexpiredidpageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/"200{
"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.
/orders/vps/{order_id}/Paramètres de chemin
order_idstringRequisID de commande au format NN-NNNNN.
Réponses
200application/jsonidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisvaleursunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisconfigurationobjectread-onlyRequisConfiguration du serveur
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/"200{
"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) ouconfiguration(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) ousnapshot(pour restaurer le VPS depuis votre snapshot). - Pays : choisissez
locationparmi les options disponibles.
Pour annuler et supprimer un VPS via l'API, utilisez la méthode universelle Annuler la commande.
/orders/vps/Corps
Requistariffintegernullablewrite-onlyL'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-onlyLes 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-onlyL'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-onlyL'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-onlyL'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-onlyRequisLe code pays à deux lettres de la localisation de la commande.
Obtenez les options disponibles pour location depuis les localisations VPS.
termintegerwrite-onlydefault: 113612
Le nombre de mois pour lesquels la commande est renouvelée à la création (par exemple, 3).
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-onlyLes 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-onlyL'ID du projet. Les options disponibles pour project peuvent être obtenues
depuis la liste des projets.
disk_classintegernullablewrite-onlyL'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-onlyLimite de bande passante à définir pour la commande VPS. Le prix par unité est défini par la valeur bandwidth_tariff.
webhookobjectwrite-onlyLa 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: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyTags pour le VPS. Par défaut, aucun tag n'est défini pour le serveur.
Réponses
201application/jsonorder_idstringread-onlyRequis
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/"201{
"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.
/orders/vps/templates/Réponses
200application/jsonarray object[]Template[]idintegerread-onlyRequisIdentifiant du modèle.
namestringmax length: 64RequisNom du modèle.
osstringread-onlyRequispanelnullablePanneau d'administration utilisé dans le modèle, peut être absent.
Un parmiarchstringvaleursx86_64arm
Type d'architecture CPU requis pour ce modèle.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableEspace de stockage minimum requis pour ce modèle.
min_ram_volumeintegermin: 0max: 65535nullableVolume de RAM minimum requis pour ce modèle.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNombre minimum de cœurs CPU requis pour ce modèle.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/templates/"200[
{
"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.
/orders/vps/apps/Réponses
200application/jsonarray object[]AppTemplate[]idintegerread-onlyRequisIdentifiant de l'application.
namestringmax length: 64RequisNom de l'application.
osstringread-onlyRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/apps/"200{
"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.
/orders/vps/snapshots/Réponses
200application/jsonarray object[]Snapshot[]idintegerread-onlyRequisIdentifiant du snapshot.
namestringmax length: 64RequisNom du snapshot.
size_gbnumber (double)read-onlyRequisTaille du snapshot en Go.
created_atstring (date-time)Requis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/snapshots/"200{
"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.
/orders/vps/locations/Réponses
200application/jsonarray object[]VpsLocation[]valuestringRequislabelstringRequislocation_os_typesarray string[]Requisbandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/locations/"200[
{
"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.
/orders/vps/disks/Réponses
200application/jsonarray object[]VpsDiskClass[]idintegerread-onlyRequisnamestringmax length: 64Requislimit_total_mbytes_secintegermin: 0max: 65535RequisМb/sec
limit_read_iops_secintegermin: 0max: 65535RequisOp/sec
limit_write_iops_secintegermin: 0max: 65535RequisOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$RequisCoût par 1 GB
disk_typeDiskTypeEnumvaleurshddnvmessdsas
disk_type_displaystringRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/disks/"200[
{
"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.
/orders/vps/services/Réponses
200application/jsonarray object[]Service[]idintegerread-onlyRequisIdentifiant du service.
namestringmax length: 128RequisNom du service.
descriptionstringmax length: 255Description du service.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$RequisPrix du service.
billing_typestringRequisvaleurssingleperiodic
Paiement unique ou mensuel.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/services/"200{
"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.
/vps/{order_id}/reinstall/templates/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
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/"200{
"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.
/vps/{order_id}/reinstall/apps/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
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/"200{
"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.
/vps/{order_id}/reinstall/snapshots/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
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/"200{
"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.
/vps/{order_id}/reinstall/reinstall/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Corps
Public API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyRéponses
200application/jsonPublic API version: exposes
templateinstead ofostemplate.display_namestringread-onlyRequisstatusstringread-onlyRequisdatestring (date-time)read-onlyRequis
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/"200{
"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
/vps/{order_id}/status/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonstatusstringRequison | off | unknown
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/"200{
"status": "on"
}Démarrer le VPS
/vps/{order_id}/start/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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
/vps/{order_id}/stop/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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
/vps/{order_id}/restart/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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
/vps/{order_id}/rescue_mode/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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
/vps/{order_id}/stop_rescue_mode/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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.
/vps/{order_id}/hard_reset/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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
/vps/{order_id}/passwd_reset/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpasswdstringread-onlyRequisVotre nouveau mot de passe.
resp_idintegerread-onlyRequisID de l'opération pour vérifier son statut, pour plus de détails voir vps_log_details
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/"200{
"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
/vps/{order_id}/log_details/{log_id}/Paramètres de chemin
log_idintegerRequisID de l'enregistrement
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonpkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisvaleursreadyerrordone
job_actionstringread-onlyRequis
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/"200{
"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.
/vps/{order_id}/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Corps
private_network_enabledbooleanConnecter 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/jsonprivate_network_enabledbooleanRequisConnecter 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.
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/"200{
"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).
/vps/{order_id}/stats/{field}/Paramètres de chemin
fieldstringRequisChamp de statistiques
cpudiskiomemorytrafficorder_idstringRequisID de la commande (préfixe inclus 34-...)
Paramètres de requête
endstringFin de la période (par défaut -
now)startstringDébut de la période (par défaut -
-1h)
Réponses
200application/jsonsubtitlestringRequis
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/"200{
"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
/private-network/Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"200{
"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"
]
}
}
}
}curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"201{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
}
},
"required": [
"id"
]
}Localisations prises en charge
/private-network/locations/Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/locations/"200{
"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
/private-network/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce User VNI.
Réponses
204No response body
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.
/orders/ds/Paramètres de requête
cancel_markbooleanFiltrer les commandes qui seront annulées.
orderingstringChamp utilisé pour trier les résultats.
default: idexpiredidpageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/"200{
"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.
/orders/ds/{order_id}/Paramètres de chemin
order_idstringRequisID de commande au format NN-NNNNNNN.
Réponses
200application/jsonidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisvaleursunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisconfigurationobjectread-onlyRequisConfiguration du serveur
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/"200{
"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
/orders/ds/{order_id}/traffic/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Paramètres de requête
periodstringPériode d'affichage des statistiques
default: monthmonthyearportintegerNuméro de port séquentiel
default: 0
Réponses
200application/jsondataarrayRequisorderstringRequisperiodstringRequis
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/"200{
"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
/orders/ds/{order_id}/traffic_used/Paramètres de chemin
order_idintegerRequisUn unique integer value identifiant ce Commande DS.
Réponses
200application/jsonorderstringRequislimitintegerRequisrange_startstring (date)Requisrange_endstring (date)RequisusedintegerRequisused_ratenumber (double)Requis
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/"200{
"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
/dns/domain/Paramètres de requête
pageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10qstringrechercher par nom ou IP
tagstringfiltrer par tag
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/"200{
"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.
/dns/domain/Corps
Requisnamestringlength 1…128Requisipstring (ipv4)min length: 1write-onlyRequiscurl -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/"201{
"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
/dns/domain/{name}/Paramètres de chemin
namestringRequisNom de domaine
Réponses
204No response body
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
/dns/domain/{name}/zone_file/Paramètres de chemin
namestringRequisNom de domaine
Réponses
200text/plainZone file content (BIND format)
string
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/"200"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"Domain: Entry
Liste des enregistrements
/dns/domain/{name}/entry_set/Paramètres de chemin
namestringRequisNom de domaine
Paramètres de requête
qstringfiltre d'enregistrements
typestringAAAAACAACNAMEMXNSSRVTXTnull
Réponses
200application/jsonarray object[]Entry[]idintegerread-onlyRequishoststringmax length: 255default:Hostname de l'enregistrement :
@, *, subdomaintypestringRequisvaleursAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringmax length: 1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
Un parmi
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/"200[
{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}
]Ajouter un enregistrement
/dns/domain/{name}/entry_set/Paramètres de chemin
namestringRequisNom de domaine
Corps
Requishoststringmax length: 255default: Hostname de l'enregistrement : @, *, subdomain
typestringRequisAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringlength 1…1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
Réponses
201application/jsonidintegerread-onlyRequishoststringmax length: 255default:Hostname de l'enregistrement :
@, *, subdomaintypestringRequisvaleursAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringmax length: 1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
Un parmi
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/"201{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Mettre à jour l'enregistrement
/dns/domain/{name}/entry_set/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce Enregistrement DNS.
namestringRequisNom de domaine
Corps
Requishoststringmax length: 255default: Hostname de l'enregistrement : @, *, subdomain
typestringRequisAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringlength 1…1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
Réponses
200application/jsonidintegerread-onlyRequishoststringmax length: 255default:Hostname de l'enregistrement :
@, *, subdomaintypestringRequisvaleursAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringmax length: 1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
Un parmi
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/"200{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Supprimer l'enregistrement
/dns/domain/{name}/entry_set/{id}/Paramètres de chemin
idintegerRequisUn unique integer value identifiant ce Enregistrement DNS.
namestringRequisNom de domaine
Réponses
204No response body
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.
/dns/order/{order_id}/change_ns/Paramètres de chemin
order_idstringRequisnuméro de commande
Corps
Requisnssstringmin length: 1Requisliste de NS séparés par une virgule
Réponses
200application/jsonnssstringRequisliste de NS séparés par une virgule
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/"200{
"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
/ssh_keys/Réponses
200application/jsonarray object[]SshKey[]idintegerread-onlyRequisuserstringread-onlyRequiskeystringmax length: 16384RequisClé publique en texte brut.
titlestringmax length: 128Requisdatestring (date-time)read-onlyRequisdefaultboolean
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/ssh_keys/"200[
{
"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.
/ssh_keys/Corps
Requiskeystringlength 1…16384RequisClé publique en texte brut.
titlestringlength 1…128RequisdefaultbooleanRéponses
201application/jsonidintegerread-onlyRequisuserstringread-onlyRequiskeystringmax length: 16384RequisClé publique en texte brut.
titlestringmax length: 128Requisdatestring (date-time)read-onlyRequisdefaultboolean
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/"201{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}Supprimer la clé
/ssh_keys/{key_id}/Paramètres de chemin
key_idintegerRequisUn unique integer value identifiant ce user ssh key.
Réponses
204No response body
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
/vps/{order_id}/ssh_keys/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Réponses
200application/jsonarray object[]SshKey[]idintegerread-onlyRequisuserstringread-onlyRequiskeystringmax length: 16384RequisClé publique en texte brut.
titlestringmax length: 128Requisdatestring (date-time)read-onlyRequisdefaultboolean
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/"200[
{
"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
/vps/{order_id}/ssh_keys/add/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Corps
Requiskey_pkintegerwrite-onlyRequisRéponses
200No response body
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
/vps/{order_id}/ssh_keys/delete/Paramètres de chemin
order_idstringRequisID de la commande (préfixe inclus 34-...)
Corps
Requiskey_pkintegerwrite-onlyRequisRéponses
200No response body
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.
/orders/s3/Paramètres de requête
cancel_markbooleanFiltrer les commandes qui seront annulées.
orderingstringChamp utilisé pour trier les résultats.
default: idexpiredidpageintegerNuméro de page dans l'ensemble de résultats paginés.
default: 1page_sizeintegerNombre de résultats à retourner par page.
default: 10
Réponses
200application/jsoncountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/s3/"200{
"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.
/orders/s3/{order_id}/Paramètres de chemin
order_idstringRequisIdentifiant de commande au format NNN-NN.
Réponses
200application/jsonidstringread-onlyRequisnamestringread-onlyRequishostnamestringRequisaccess_keystringread-onlyRequissecret_keystringread-onlyRequisbucket_namestringread-onlyRequisspace_usedintegerRequiscost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequis
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/"200{
"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.
/orders/s3/{order_id}/notification_threshold/Paramètres de chemin
order_idintegerRequisUn unique integer value identifiant ce Commande S3.
Corps
Requisspace_warning_notify_gbintegermin: 0RequisRéponses
200application/jsonspace_warning_notify_gbintegermin: 0Requis
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/"200{
"type": "object",
"properties": {
"space_warning_notify_gb": {
"type": "integer",
"minimum": 0
}
},
"required": [
"space_warning_notify_gb"
]
}VPN
Configuration OpenVPN
/vpn/{order_id}/config-{proto}.ovpnParamètres de chemin
order_idstringRequisnuméro de commande
protostringRequisProtocole
tcpudp
Réponses
200text/plainOpenVPN profile
string
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"200{
"type": "string"
}Configuration IKEv2 pour MacOS/iOS
/vpn/{order_id}/config-ikev2.mobileconfigParamètres de chemin
order_idstringRequisnuméro de commande
Réponses
200text/plainIKEv2 mobileconfig
string
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"200{
"type": "string"
}Configuration IKEv2 pour Android
/vpn/{order_id}/config-ikev2.sswanParamètres de chemin
order_idstringRequisnuméro de commande
Réponses
200application/jsonIKEv2 sswan
string
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"200{
"type": "string"
}Configuration WireGuard
/vpn/{order_id}/config-wireguard.confParamètres de chemin
order_idstringRequisnuméro de commande
Réponses
200text/plainWireGuard config
string
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"200{
"type": "string"
}Configuration Outline VPN
/vpn/{order_id}/config_outlineParamètres de chemin
order_idstringRequisnuméro de commande
Réponses
200application/jsonaccess_urlstring (uri)Requis
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"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}Configuration Xray VPN
/vpn/{order_id}/config_xrayParamètres de chemin
order_idstringRequisnuméro de commande
Réponses
200application/jsonaccess_urlstring (uri)Requis
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"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}IP Addresses
Adresses IP assignées à vos services.
Liste des adresses IP
/network/ip-address/Paramètres de requête
orderingstringWhich field to use when ordering the results.
searchstringtypestring
Réponses
200application/jsonarray object[]PublicNetworkAddress[]idintegerread-onlyRequisipstringRequisrdnsstringRequisorderobjectnullableread-onlyRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/network/ip-address/"200{
"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.
/tickets/ticket/Corps
RequisСоздание тикета пользователем
subjectstringlength 1…64RequisL'idée principale de votre demande en bref.
messagestringlength 1…49152RequisUne description détaillée de votre problème et les autres détails de la demande.
priorityintegerdefault: 101234
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: 1nullableL'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-onlyRéponses
201application/jsonСоздание тикета пользователем
subjectstringmax length: 64RequisL'idée principale de votre demande en bref.
messagestringmax length: 49152RequisUne description détaillée de votre problème et les autres détails de la demande.
priorityintegerdefault: 1valeurs01234
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 urgentne 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.
orderstringnullableL'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-onlyRequisidstringread-onlyRequisstatusstringread-onlyRequis
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/"201{
"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
/tickets/webhook_info/Réponses
200application/jsonurlstring (uri)max length: 512URL de destination de la requête, laisser vide pour désactiver
last_error_datestring (date-time)nullableread-onlyRequislast_error_messagestringnullableread-onlyRequis
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/tickets/webhook_info/"200{
"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.
/tickets/webhook_set/Corps
urlstring (uri)max length: 512URL de destination de la requête, laisser vide pour désactiver
Réponses
201application/jsonurlstring (uri)max length: 512URL de destination de la requête, laisser vide pour désactiver
last_error_datestring (date-time)nullableread-onlyRequislast_error_messagestringnullableread-onlyRequis
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/"201{
"last_error_date": null,
"last_error_message": null,
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}Schémas
AccountBalancebalancenumber (double)RequiscurrencystringRequisAccountInfoemailstring (email)max length: 254namestringRequisAccountInvoicesunpaid_invoices_countintegerRequisunpaid_invoices_amountnumber (double)RequiscurrencystringRequisAppTemplateidintegerread-onlyRequisIdentifiant de l'application.
namestringmax length: 64RequisNom de l'application.
osstringread-onlyRequisBackupTariffspaceintegerRequispricenumber (double)Requisunitsstringread-onlyRequisdefault: GBBandwidthEnum1015202540
BillingTypeEnumsingleperiodic
BlankEnumCancelOrderstatusstringread-onlyRequiscanceledcancel_pending
messagestringread-onlyRequisCancelOrderRequestwhenstringwrite-onlydefault: expirednowexpired
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: trueCe paramètre indique si un snapshot du VPS doit être pris avant la suppression de la machine virtuelle.
CancelOrderStatusEnumcanceledcancel_pending
CpuArchEnumx86_64arm
DedicatedTariffidintegerread-onlyRequisnamestringmax length: 128RequisLe 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-onlyRequiscpu_countintegermin: 0max: 65535ramstringRequisdiskstringRequisbandwidthstringRequispricenumber (double)Requislocationsarray array[]RequisDiskTypeEnumhddnvmessdsas
DnsOrderNameserversnssstringRequisliste de NS séparés par une virgule
DnsOrderNameserversRequestnssstringmin length: 1Requisliste de NS séparés par une virgule
Domainnamestringmax length: 128Requiscreatedstring (date-time)read-onlyRequisupdatedstring (date-time)read-onlyRequistagsarray string[]read-onlyRequisDomainRequestnamestringlength 1…128Requisipstring (ipv4)min length: 1write-onlyRequisDomainTagstagsarray string[]RequisDomainTagsRequesttagsarray string[]RequisDSConfigurationcpu_countintegermin: 0max: 65535cpustringRequismotherboardstringRequischassisstringRequisraid_controllerstringRequisnetwork_adapterstringRequisbandwidthnullablememoryinteger (int64)min: 0max: 4294967295Requisdisksstringread-onlyRequisDSOrderidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisconfigurationobjectread-onlyRequisConfiguration du serveur
DSTrafficdataarrayRequisorderstringRequisperiodstringRequisDSTrafficUsedorderstringRequislimitintegerRequisrange_startstring (date)Requisrange_endstring (date)RequisusedintegerRequisused_ratenumber (double)RequisEntryidintegerread-onlyRequishoststringmax length: 255default: Hostname de l'enregistrement : @, *, subdomain
typestringRequisAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringmax length: 1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
EntryRequesthoststringmax length: 255default: Hostname de l'enregistrement : @, *, subdomain
typestringRequisAAAAATXTCNAMENSMXSRVCAA
Type d'enregistrement
priointeger (int64)min: 0max: 4294967295nullablePriorité, utilisée uniquement pour SRV et MX
valuestringlength 1…1024RequisValeur de l'enregistrement selon le type, par exemple l'IP pour les enregistrements A
ttlnullableTTL de l'enregistrement (facultatif, par défaut : 3600 sec.)
EntryTypeEnumAAAAATXTCNAMENSMXSRVCAA
JobStateEnumreadyerrordone
LocationChoicevaluestringRequislabelstringRequisiconstringRequisNetworkOrderidintegerRequisnamestringRequistypestringRequislinkstringread-onlyRequisunique_numberstringRequisNullEnumnull
Orderidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisOrderCredentialsusernamestringpasswordstringcommentstringOrderCredentialsRequestusernamestringmin length: 1passwordstringmin length: 1commentstringmin length: 1OrderServiceCreateserviceintegerRequisL'ID du service supplémentaire.
countintegermin: 1default: 1La quantité de ce service supplémentaire.
OrderServiceCreateRequestserviceintegerRequisL'ID du service supplémentaire.
countintegermin: 1default: 1La quantité de ce service supplémentaire.
OrderSSHKeyAddRequestkey_pkintegerwrite-onlyRequisOrderSSHKeyRemoveRequestkey_pkintegerwrite-onlyRequisOrderStatusunpaidpendingactiveexpireddisabledcanceledblockednoprolong
OrderUpdatenamestringmax length: 64default: Nom personnalisé de la commande.
tagsarray string[]RequisTags associés à la commande.
projectintegernullableRequisProjet de la commande.
PaginatedAppTemplateListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDomainListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDSOrderListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedOrderListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkLocationListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedProjectListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedS3OrderListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedSnapshotListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedTemplateListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedVPSOrderListcountintegerRequisexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PanelEnumvestahestiaaapanelbrainycpcloudpanelcyberpanelbeadminopenpanel
PatchedOrderUpdateRequestnamestringlength 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.
projectintegernullableProjet de la commande. Définissez une chaîne vide si vous souhaitez supprimer le projet.
PatchedProjectRequestnamestringlength 1…40commentstringmax length: 256PatchedVpsUpdateRequestprivate_network_enabledbooleanConnecter 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.
PlacementPolicyEnumSTRICTOPTIONAL
PriorityEnum01234
PrivateNetworkidintegerread-onlyRequisPrivateNetworkLocationidintegerread-onlyRequisProjectidintegerread-onlyRequisnamestringmax length: 40Requiscommentstringmax length: 256logostring (uri)read-onlyRequisProjectAddOrdersRequestordersarray string[]write-onlyRequisProjectLogologostring (uri)Chemin vers le fichier.
ProjectLogoRequestlogostring (binary)Chemin vers le fichier.
ProjectRemoveOrdersRequestordersarray string[]write-onlyRequisProjectRequestnamestringlength 1…40Requiscommentstringmax length: 256PublicChartsubtitlestringRequisPublicChartSeriesnamestringRequisdataarrayRequistypestringcolorstringPublicNetworkAddressidintegerread-onlyRequisipstringRequisrdnsstringRequisorderobjectnullableread-onlyRequisPublicReinstallRequestPublic API version: exposes template instead of ostemplate.
display_namestringread-onlyRequisstatusstringread-onlyRequisdatestring (date-time)read-onlyRequisPublicReinstallRequestRequestPublic API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyPublicTicketСоздание тикета пользователем
subjectstringmax length: 64RequisL'idée principale de votre demande en bref.
messagestringmax length: 49152RequisUne description détaillée de votre problème et les autres détails de la demande.
priorityintegerdefault: 101234
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.
orderstringnullableL'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-onlyRequisidstringread-onlyRequisstatusstringread-onlyRequisPublicTicketRequestСоздание тикета пользователем
subjectstringlength 1…64RequisL'idée principale de votre demande en bref.
messagestringlength 1…49152RequisUne description détaillée de votre problème et les autres détails de la demande.
priorityintegerdefault: 101234
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: 1nullableL'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-onlyS3NotificationThresholdspace_warning_notify_gbintegermin: 0RequisS3NotificationThresholdRequestspace_warning_notify_gbintegermin: 0RequisS3Orderidstringread-onlyRequisnamestringread-onlyRequishostnamestringRequisaccess_keystringread-onlyRequissecret_keystringread-onlyRequisbucket_namestringread-onlyRequisspace_usedintegerRequiscost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisServerBandwidthTariffmin_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requismax_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Requisstepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$RequisIncrément entre deux valeurs de bande passante consécutives
pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$RequisunitUnitEnumgbpsmbps
Serviceidintegerread-onlyRequisIdentifiant du service.
namestringmax length: 128RequisNom du service.
descriptionstringmax length: 255Description du service.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$RequisPrix du service.
billing_typestringRequissingleperiodic
Paiement unique ou mensuel.
Snapshotidintegerread-onlyRequisIdentifiant du snapshot.
namestringmax length: 64RequisNom du snapshot.
size_gbnumber (double)read-onlyRequisTaille du snapshot en Go.
created_atstring (date-time)RequisSshKeyidintegerread-onlyRequisuserstringread-onlyRequiskeystringmax length: 16384RequisClé publique en texte brut.
titlestringmax length: 128Requisdatestring (date-time)read-onlyRequisdefaultbooleanSshKeyRequestkeystringlength 1…16384RequisClé publique en texte brut.
titlestringlength 1…128RequisdefaultbooleanTemplateidintegerread-onlyRequisIdentifiant du modèle.
namestringmax length: 64RequisNom du modèle.
osstringread-onlyRequispanelnullablePanneau d'administration utilisé dans le modèle, peut être absent.
archstringx86_64arm
Type d'architecture CPU requis pour ce modèle.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableEspace de stockage minimum requis pour ce modèle.
min_ram_volumeintegermin: 0max: 65535nullableVolume de RAM minimum requis pour ce modèle.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNombre minimum de cœurs CPU requis pour ce modèle.
TermEnum13612
TicketsWebhookurlstring (uri)max length: 512URL de destination de la requête, laisser vide pour désactiver
last_error_datestring (date-time)nullableread-onlyRequislast_error_messagestringnullableread-onlyRequisTicketsWebhookRequesturlstring (uri)max length: 512URL de destination de la requête, laisser vide pour désactiver
TtlEnum1203006009001800
UnitEnumgbpsmbps
VHTariffidintegerread-onlyRequisnamestringmax length: 128RequisLe 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: 65535nullablepricenumber (double)Requiscpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGo
available_locationsarray string[]read-onlyRequisVpnConfigaccess_urlstring (uri)RequisVpnTariffidintegerread-onlyRequispricenumber (double)Requisshareddedicatedmulti-hop
available_locationsarray string[]read-onlyRequisVpnTariffTypeEnumshareddedicatedmulti-hop
VpsConfigurationcpu_countintegermin: 1max: 16Le nombre de cœurs.
ram_sizeintegermin: 2max: 32Le volume de RAM en gigaoctets (Go).
disk_classintegernullableClasse du disque.
disk_sizeintegermin: 20max: 300La capacité de stockage en gigaoctets (Go).
cpu_archstringx86_64arm
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).
VpsConfigurationRequestcpu_countintegermin: 1max: 16Le nombre de cœurs.
ram_sizeintegermin: 2max: 32Le volume de RAM en gigaoctets (Go).
disk_classintegernullableClasse du disque.
disk_sizeintegermin: 20max: 300La capacité de stockage en gigaoctets (Go).
cpu_archstringx86_64arm
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).
VpsDiskClassidintegerread-onlyRequisnamestringmax length: 64Requislimit_total_mbytes_secintegermin: 0max: 65535RequisМb/sec
limit_read_iops_secintegermin: 0max: 65535RequisOp/sec
limit_write_iops_secintegermin: 0max: 65535RequisOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$RequisCoût par 1 GB
disk_typeDiskTypeEnumhddnvmessdsas
disk_type_displaystringRequisVpsLocationvaluestringRequislabelstringRequislocation_os_typesarray string[]Requisbandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectRequisVpsLogEntrypkintegerread-onlyRequisactionstringread-onlyRequisnotestringread-onlyRequisuserstringread-onlyRequistimestring (date-time)read-onlyRequiscompletedbooleanread-onlyRequisjob_statestringread-onlyRequisreadyerrordone
job_actionstringread-onlyRequisVPSOrderidstringread-onlyRequisnamestringmax length: 64tariffstringread-onlyRequistariff_pricenumber (double)nullableread-onlyRequistypestringread-onlyRequishostnamestringnullableread-onlyRequisipaddress_setarray string[]nullableread-onlyRequisstatusstringread-onlyRequisunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyRequisexpiration_datestring (date-time)read-onlyRequistagsarray string[]Requiscancel_markbooleanread-onlyRequisIndicateur signalant que la commande sera annulée.
projectobjectnullableread-onlyRequisconfigurationobjectread-onlyRequisConfiguration du serveur
VpsOrderCreateorder_idstringread-onlyRequisVpsOrderCreateRequesttariffintegernullablewrite-onlyL'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-onlyLes 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-onlyL'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-onlyL'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-onlyL'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-onlyRequisLe code pays à deux lettres de la localisation de la commande.
Obtenez les options disponibles pour location depuis les localisations VPS.
termintegerwrite-onlydefault: 113612
Le nombre de mois pour lesquels la commande est renouvelée à la création (par exemple, 3).
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-onlyLes 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-onlyL'ID du projet. Les options disponibles pour project peuvent être obtenues
depuis la liste des projets.
disk_classintegernullablewrite-onlyL'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-onlyLimite de bande passante à définir pour la commande VPS. Le prix par unité est défini par la valeur bandwidth_tariff.
webhookobjectwrite-onlyLa 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: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyTags pour le VPS. Par défaut, aucun tag n'est défini pour le serveur.
VpsOrderCreateWebhookurlstring (uri)max length: 512RequisURL à 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: 64RequisPhrase 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()
VpsOrderCreateWebhookRequesturlstring (uri)length 1…512RequisURL à 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…64RequisPhrase 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()
VpsResetPasswordpasswdstringread-onlyRequisVotre nouveau mot de passe.
resp_idintegerread-onlyRequisID de l'opération pour vérifier son statut, pour plus de détails voir vps_log_details
VpsStatusstatusstringRequison | off | unknown
VpsTariffidintegerread-onlyRequisnamestringmax length: 128RequisLe 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_countintegerRequisramstringRequisdiskstringRequisbandwidthstringRequispricenumber (double)RequisVpsUpdateprivate_network_enabledbooleanRequisConnecter 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.
WhenEnumnowexpired