Sauvegardes
Les sauvegardes de vos VPS : création, protection, restauration et planification.
Lister les sauvegardes
GET
/v1/compute/vps/{vps_id}/backupsPermission : vps:read
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
Réponse 200
| Champ | Type | Description |
|---|---|---|
data | liste de objet | |
data[].id | texte | Exemple : "bkp-27f1a0". |
data[].created_at | texte | Date de création. |
data[].size_bytes | entier | Exemple : 1503238553. |
data[].type | texte | Valeurs : full, incremental. |
data[].protected | booléen | |
data[].status | texte | Valeurs : creating, available, failed. |
quota | objet | |
quota.used | entier | Exemple : 3. |
quota.max | entier | Exemple : 7. |
Erreurs
not_foundRessource introuvable- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups" \
-H "Authorization: Bearer $CORCELINK_API_KEY"
import os, uuid, requests
r = requests.get(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}` },
});
console.log(res.status, await res.json());
Réponse 200
{
"data": [
{
"id": "bkp-1",
"created_at": "2026-10-27T03:12:00Z",
"size_bytes": 1503238553,
"type": "incremental",
"protected": true,
"status": "available"
},
{
"id": "bkp-2",
"created_at": "2026-10-26T03:11:00Z",
"size_bytes": 1488000000,
"type": "full",
"protected": false,
"status": "available"
}
],
"quota": {
"used": 2,
"max": 7
}
}
Essayer avec votre clé
Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.
Créer une sauvegarde
POST
/v1/compute/vps/{vps_id}/backupsPermission : vps:write
Le VPS reste en service pendant la sauvegarde.
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Réponse 202
| Champ | Type | Description |
|---|---|---|
id | texte | Identifiant de l’opération. Exemple : "op-01JB7X5R1M". |
type | texte | Nature de l’opération (vps.reboot…). Exemple : "vps.reinstall". |
status | texte | État. Valeurs : pending, running, succeeded, failed. |
resource | objet | Ressource concernée. |
resource.type | texte | Valeurs : vps, private_network, dedicated_server, web_hosting, email, domain, other, backup. |
resource.id | texte | Exemple : "vps-7c2e4a91". |
created_at | texte | Date de création. |
started_at | texte ou null | Date de création. |
completed_at | texte ou null | Date de création. |
error | objet ou null | Erreur au format RFC 9457. |
error.type | texte | Adresse de la page de documentation de l’erreur. Exemple : "https://docs.corcelink.fr/api/erreurs/#vps_not_found". |
error.title | texte | Résumé de l’erreur, dans la langue demandée. Exemple : "VPS introuvable". |
error.status | entier | Code HTTP. Exemple : 404. |
error.code | texte | Code stable, à utiliser dans vos programmes. Exemple : "vps_not_found". |
error.detail | texte | Explication et correction possible. Exemple : "Aucun VPS vps-7c2e4a91 sur ce compte.". |
error.request_id | texte | Identifiant de la requête, à citer au support. Exemple : "req-01JB7X4M2Q9KZ3". |
error.errors | liste de objet | Erreurs de validation, champ par champ. |
error.errors[].field | texte | Exemple : "rules[0].ports". |
error.errors[].code | texte | Exemple : "invalid_port". |
error.errors[].message | texte | Exemple : "Port invalide : utilisez 443, 80,443 ou 8000:8100.". |
result | objet | Résultat propre à certaines opérations ; absent sinon. |
result.password_url | texte | Lien à usage unique vers le nouveau mot de passe root (réinstallation). |
result.password_expires_at | texte | Date de création. |
Erreurs
feature_unavailableFonction non incluseoperation_in_progressOpération déjà en coursoperation_refusedOpération refuséeservice_not_activeService inactifresource_busyModification en cours- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X POST "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
import os, uuid, requests
r = requests.post(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID() },
});
console.log(res.status, await res.json());
Réponse 202
{
"id": "op-01M5Z52GZRTVSNG8",
"type": "backup.create",
"status": "running",
"resource": {
"type": "vps",
"id": "vps-7c2e4a91"
},
"created_at": "2026-10-27T17:03:37Z",
"started_at": "2026-10-27T17:03:37Z",
"completed_at": null,
"error": null
}
Protéger une sauvegarde
PATCH
/v1/compute/vps/{vps_id}/backups/{backup_id}Permission : vps:write
Une sauvegarde protégée n’est jamais supprimée par la rotation automatique.
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
backup_idobligatoire | texte | Exemple : "bkp-27f1a0". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
protectedobligatoire | booléen |
Réponse 200
| Champ | Type | Description |
|---|---|---|
id | texte | Exemple : "bkp-27f1a0". |
created_at | texte | Date de création. |
size_bytes | entier | Exemple : 1503238553. |
type | texte | Valeurs : full, incremental. |
protected | booléen | |
status | texte | Valeurs : creating, available, failed. |
Erreurs
not_foundRessource introuvablevalidation_failedDonnées invalidesfeature_unavailableFonction non incluseoperation_refusedOpération refusée- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X PATCH "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"protected": true}'
import os, uuid, requests
r = requests.patch(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={"protected": True},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31", {
method: "PATCH",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID(), "Content-Type": "application/json" },
body: JSON.stringify({"protected": true}),
});
console.log(res.status, await res.json());
Réponse 200
{
"id": "bkp-2",
"created_at": "2026-10-26T03:11:00Z",
"size_bytes": 1488000000,
"type": "full",
"protected": true,
"status": "available"
}
Supprimer une sauvegarde
DELETE
/v1/compute/vps/{vps_id}/backups/{backup_id}Permission : vps:write
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
backup_idobligatoire | texte | Exemple : "bkp-27f1a0". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Réponse 204
Aucun contenu : l’opération est faite.
Erreurs
not_foundRessource introuvablefeature_unavailableFonction non incluseoperation_refusedOpération refusée- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X DELETE "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
import os, uuid, requests
r = requests.delete(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
timeout=30,
)
r.raise_for_status()
print(r.status_code)
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31", {
method: "DELETE",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID() },
});
console.log(res.status, "");
Restaurer une sauvegarde
POST
/v1/compute/vps/{vps_id}/backups/{backup_id}/restorePermission : vps:write
Remplace tout le contenu du disque par celui de la sauvegarde.
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
backup_idobligatoire | texte | Exemple : "bkp-27f1a0". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
confirmobligatoire | booléen | Doit valoir true. |
Réponse 202
| Champ | Type | Description |
|---|---|---|
id | texte | Identifiant de l’opération. Exemple : "op-01JB7X5R1M". |
type | texte | Nature de l’opération (vps.reboot…). Exemple : "vps.reinstall". |
status | texte | État. Valeurs : pending, running, succeeded, failed. |
resource | objet | Ressource concernée. |
resource.type | texte | Valeurs : vps, private_network, dedicated_server, web_hosting, email, domain, other, backup. |
resource.id | texte | Exemple : "vps-7c2e4a91". |
created_at | texte | Date de création. |
started_at | texte ou null | Date de création. |
completed_at | texte ou null | Date de création. |
error | objet ou null | Erreur au format RFC 9457. |
error.type | texte | Adresse de la page de documentation de l’erreur. Exemple : "https://docs.corcelink.fr/api/erreurs/#vps_not_found". |
error.title | texte | Résumé de l’erreur, dans la langue demandée. Exemple : "VPS introuvable". |
error.status | entier | Code HTTP. Exemple : 404. |
error.code | texte | Code stable, à utiliser dans vos programmes. Exemple : "vps_not_found". |
error.detail | texte | Explication et correction possible. Exemple : "Aucun VPS vps-7c2e4a91 sur ce compte.". |
error.request_id | texte | Identifiant de la requête, à citer au support. Exemple : "req-01JB7X4M2Q9KZ3". |
error.errors | liste de objet | Erreurs de validation, champ par champ. |
error.errors[].field | texte | Exemple : "rules[0].ports". |
error.errors[].code | texte | Exemple : "invalid_port". |
error.errors[].message | texte | Exemple : "Port invalide : utilisez 443, 80,443 ou 8000:8100.". |
result | objet | Résultat propre à certaines opérations ; absent sinon. |
result.password_url | texte | Lien à usage unique vers le nouveau mot de passe root (réinstallation). |
result.password_expires_at | texte | Date de création. |
Erreurs
not_foundRessource introuvableconfirmation_requiredConfirmation requisefeature_unavailableFonction non incluseoperation_in_progressOpération déjà en coursoperation_refusedOpération refuséeresource_busyModification en cours- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X POST "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31/restore" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"confirm": true}'
import os, uuid, requests
r = requests.post(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31/restore",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={"confirm": True},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backups/bkp-31/restore", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID(), "Content-Type": "application/json" },
body: JSON.stringify({"confirm": true}),
});
console.log(res.status, await res.json());
Réponse 202
{
"id": "op-01M5Z52H0MBMF3C5",
"type": "backup.restore",
"status": "running",
"resource": {
"type": "vps",
"id": "vps-7c2e4a91"
},
"created_at": "2026-10-27T17:03:37Z",
"started_at": "2026-10-27T17:03:37Z",
"completed_at": null,
"error": null
}
Lire la planification
GET
/v1/compute/vps/{vps_id}/backup-schedulesPermission : vps:read
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
vps_idobligatoire | texte | Format : ^vps-[0-9a-f]{8}$. Exemple : "vps-7c2e4a91". |
Réponse 200
| Champ | Type | Description |
|---|---|---|
data | liste de objet | |
data[].id | texte | Exemple : "bks-04". |
data[].days | liste de texte | |
data[].time | texte | Exemple : "03:00". |
data[].mode | texte | Valeurs : live, suspend, stop. |
data[].compression | texte | Exemple : "zstd". |
data[].last_run_at | texte ou null | Date de création. |
Erreurs
not_foundRessource introuvable- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl "https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backup-schedules" \
-H "Authorization: Bearer $CORCELINK_API_KEY"
import os, uuid, requests
r = requests.get(
"https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backup-schedules",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/compute/vps/vps-7c2e4a91/backup-schedules", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}` },
});
console.log(res.status, await res.json());
Réponse 200
{
"data": [
{
"id": "bks-1",
"days": [
"mon",
"wed",
"fri"
],
"time": "03:00",
"mode": "live",
"compression": "zstd",
"last_run_at": "2026-10-27T03:12:00Z"
}
]
}
Essayer avec votre clé
Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.