Sign up

Restore a backup

POST/api/v1/vps/{vps_uuid}/restore

Puts the whole disk back from a backup and starts the server.

Parameters

NameInDescription
vps_uuidpath, stringrequiredVPS id, from Create a VPS or List VPS

Request body

FieldTypeDescription
backup_idstring, optionalrequiredA backup id from GET /vps/{vps_uuid}/backups

Example request

curl -X POST "https://platform.serverscamp.com/api/v1/vps/$VPS_UUID/restore" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "backup_id": "bk-3f9a1c0d2e4b5a69"
  }'

Answer

Status 200 with this body.

FieldTypeDescription
vps_uuidstringrequired
statusstringrequiredWhat the server does now; poll Get a VPS to see it finish
{
  "vps_uuid": "12d46f8c-d66e-4163-99aa-1245d5b06e5b",
  "status": "restoring"
}

Wait until it is ready

The answer comes at once and the work runs in the background, usually for a minute or two. Get a VPS shows how far it got in its status field.

Check the status

Ask Get a VPS with the server's id:

curl "https://platform.serverscamp.com/api/v1/vps/$VPS_UUID" \
  -H "Authorization: Bearer $API_TOKEN"

The answer carries the whole server; the field to watch is status:

{
  "vps_uuid": "12d46f8c-d66e-4163-99aa-1245d5b06e5b",
  "name": "web-1",
  "status": "restoring",
  "ipv4": "185.236.9.61",
  "error": null
}
statusWhat it means
restoringThe disk is put back from the backup
runningReady, as it was when the backup was taken
errorSomething went wrong; the error field says what

Wait in a loop

Ask every few seconds until the status is the one you wait for, and stop on error.

# VPS_UUID: vps_uuid of the server, from the answer above
WANT=running
while true; do
  VPS=$(curl -s "https://platform.serverscamp.com/api/v1/vps/$VPS_UUID" -H "Authorization: Bearer $API_TOKEN")
  STATUS=$(echo "$VPS" | jq -r .status)
  echo "$STATUS"
  [ "$STATUS" = "$WANT" ] && break
  [ "$STATUS" = error ] && { echo "$VPS" | jq -r .error; exit 1; }
  sleep 5
done
curl -s "https://platform.serverscamp.com/api/v1/vps/$VPS_UUID" -H "Authorization: Bearer $API_TOKEN" | jq -r '"ssh root@" + .ipv4'

The bash version needs jq.

Errors

StatusWhen
401No token, or a token that is not valid
404No such backup of this VPS
409The server is busy with another task
422The body or a parameter is not what the operation takes

Every operation can also answer 401 without a valid token. All errors