VPS KVM canadien à Montréal dès 8,50 CAD/mois

API

Référence des points d'entrée

Les vingt-huit points d'entrée de l'API v1, générés depuis le contrat OpenAPI.

Cette page est générée depuis le contrat OpenAPI. Si elle contredit l'API, c'est le contrat qui a raison — signalez-le nous.

Adresse de base https://api.ffxf.net/v1
Contrat OpenAPI openapi.v1.json — Le fichier que cette référence rend, tel qu'il est publié.

Sommaire

Catalog

get /regions Sans clé

List regions — Where machines can run. A plan or an image may not be offered everywhere.

Paramètres

Aucun paramètre.

Réponses

HTTPDescription
200OK
get /plans Sans clé

List plans

Paramètres

NomType RequisDescription
regionquerystringnonKeep only the plans offered in this region.

Réponses

HTTPDescription
200OK
get /plans/{plan} Sans clé

Get a plan

Paramètres

NomType RequisDescription
planpathstringoui

Réponses

HTTPDescription
200OK
404No such resource, or it does not belong to this account.
get /images Sans clé

List images — The image referential. `slug` is the stable identifier to pass at

Paramètres

NomType RequisDescription
regionquerystringnonKeep only the images available in this region.
planquerystringnonKeep only the images that fit this plan.
categoryquerylinux | windows | bsd | app | …non

Réponses

HTTPDescription
200OK
get /images/{image} Sans clé

Get an image

Paramètres

NomType RequisDescription
imagepathstringoui

Réponses

HTTPDescription
200OK
404No such resource, or it does not belong to this account.

Machines

get /vms

List machines

Paramètres

NomType RequisDescription
cursorquerystringnonThe `next_cursor` from the previous page.
limitqueryintegernon
statusqueryVmStatusnon
regionquerystringnon
billingqueryhourly | monthlynon

Réponses

HTTPDescription
200OK
401Missing, unknown, disabled or expired key.
post /vms

Create a machine — Runs the same checks as the console, in this order: account standing,

Paramètres

NomType RequisDescription
Idempotency-KeyheaderstringouiUnique per order, your own value. Kept 24 hours.

Corps de la requête

NomTypeRequis Description
planstringoui
regionstringoui
imagestringoui
hostnameHostnameoui
billinghourly | monthlyoui
paymentcredit | manualnonMonthly only. `credit` settles the invoice from the balance when it
ssh_keysstring[]nonFingerprints or ids of keys on the account. Ignored by images without cloud-init key support.
password_deliveryemail | nonenon`email` generates a password and mails it. `none` requires at least
optionsobjectnonPaid options declared by the plan, by name. Unknown keys are refused.
dry_runbooleannonRun every check and price the order without creating anything.

Réponses

HTTPDescription
202Order accepted. `action` follows the provisioning; it is null when
200Estimate returned (`dry_run: true`). Nothing was created.
400Malformed request.
402Not enough credit, or a budget cap reached. An hourly order needs the
403Key out of scope, IP not allowed, e-mail unverified or account suspended.
409The resource is not in a state that allows this: machine suspended,
422The request is well formed but the catalogue refuses it: image below the
429Too many requests.
get /vms/{vm}

Get a machine

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Réponses

HTTPDescription
200OK
404No such resource, or it does not belong to this account.
patch /vms/{vm}

Update a machine — Only the hostname is editable. It is applied inside the guest and to the

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Corps de la requête

NomTypeRequis Description
hostnameHostnamenon

Réponses

HTTPDescription
200OK
409The resource is not in a state that allows this: machine suspended,
delete /vms/{vm}

Destroy a machine — Destroys the machine and its disk. There is no undo and no backup is

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
confirmquerystringouiThe machine's exact hostname.
whenqueryperiod_end | nownonMonthly machines only.

Réponses

HTTPDescription
202Accepted
400Malformed request.
404No such resource, or it does not belong to this account.
409The resource is not in a state that allows this: machine suspended,
get /vms/{vm}/metrics

Get machine metrics — CPU, memory, disk and network, as sampled by the hypervisor.

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
timeframequeryhour | day | week | month | …non

Réponses

HTTPDescription
200OK
503The hypervisor did not answer. Nothing was changed; retry.
post /vms/{vm}/console

Open a console session — Returns a single-use URL to the VNC console, valid for a few minutes.

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Réponses

HTTPDescription
201Created
409The resource is not in a state that allows this: machine suspended,

Actions

get /vms/{vm}/actions

List a machine's actions

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
cursorquerystringnonThe `next_cursor` from the previous page.
limitqueryintegernon

Réponses

HTTPDescription
200OK
post /vms/{vm}/actions

Act on a machine — `start`, `shutdown`, `reboot` ask the guest politely. `stop` cuts the

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
Idempotency-Keyheaderstringnon

Corps de la requête

NomTypeRequis Description
typestart | shutdown | reboot | stopoui

Réponses

HTTPDescription
202Accepted
403Key out of scope, IP not allowed, e-mail unverified or account suspended.
409The resource is not in a state that allows this: machine suspended,
422The request is well formed but the catalogue refuses it: image below the
503The hypervisor did not answer. Nothing was changed; retry.
get /actions

List actions

Paramètres

NomType RequisDescription
cursorquerystringnonThe `next_cursor` from the previous page.
limitqueryintegernon
statusqueryActionStatusnon

Réponses

HTTPDescription
200OK
get /actions/{action}

Get an action — Poll this until `status` leaves `running`. A completed action is kept 30 days.

Paramètres

NomType RequisDescription
actionpathintegeroui

Réponses

HTTPDescription
200OK
404No such resource, or it does not belong to this account.

Networking

get /vms/{vm}/network

Get a machine's addresses

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Réponses

HTTPDescription
200OK
post /vms/{vm}/network/ipv6

Add an address from the machine's IPv6 prefix — Each machine carries a routed /64. An address taken here is registered

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Corps de la requête

NomTypeRequis Description
addressstringouiFull address inside the machine's prefix.

Réponses

HTTPDescription
201Created
409The resource is not in a state that allows this: machine suspended,
422The request is well formed but the catalogue refuses it: image below the
delete /vms/{vm}/network/ipv6/{address}

Release an IPv6 address

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
addresspathstringoui

Réponses

HTTPDescription
204Released
404No such resource, or it does not belong to this account.
put /vms/{vm}/network/rdns

Set reverse DNS on an address

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Corps de la requête

NomTypeRequis Description
addressstringoui
hostnamestringnonNull clears the record and restores the default.

Réponses

HTTPDescription
200OK
422The request is well formed but the catalogue refuses it: image below the

Backups

get /vms/{vm}/backups

List backups

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists

Réponses

HTTPDescription
200OK
post /vms/{vm}/backups/{backup}/restore

Restore a backup — Overwrites the current disk. The machine is stopped for the duration.

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
backuppathstringoui

Réponses

HTTPDescription
202Accepted
409The resource is not in a state that allows this: machine suspended,
delete /vms/{vm}/backups/{backup}

Delete a backup

Paramètres

NomType RequisDescription
vmpathintegerouiThe machine id. A machine is identified by its service: the id exists
backuppathstringoui

Réponses

HTTPDescription
204Deleted
404No such resource, or it does not belong to this account.

Account

get /account

Get account standing — Everything an automated fleet needs to decide on its own: balance, what

Paramètres

Aucun paramètre.

Réponses

HTTPDescription
200OK
get /usage

List hourly usage — One record per hour charged, per machine. This is the ledger the

Paramètres

NomType RequisDescription
fromquerystringnon
toquerystringnon
vm_idqueryintegernon
group_byqueryhour | vmnonReturn one line per machine instead of one per hour.
cursorquerystringnonThe `next_cursor` from the previous page.
limitqueryintegernon

Réponses

HTTPDescription
200OK

SSH keys

get /ssh-keys

List SSH keys

Paramètres

Aucun paramètre.

Réponses

HTTPDescription
200OK
post /ssh-keys

Add an SSH key — Up to 20 keys per account. Re-adding a known fingerprint returns the existing key.

Paramètres

Aucun paramètre.

Corps de la requête

NomTypeRequis Description
namestringoui
public_keystringoui

Réponses

HTTPDescription
201Created
422The request is well formed but the catalogue refuses it: image below the
delete /ssh-keys/{key}

Delete an SSH key — Machines already deployed with this key keep it; only future deployments change.

Paramètres

NomType RequisDescription
keypathintegeroui

Réponses

HTTPDescription
204Deleted
404No such resource, or it does not belong to this account.

Support & discussions

Questions techniques, retours d'incidents ou discussions d'infrastructure, l'équipe est présente sur Discord, Telegram, X et IRC.