Sign up

Reinstall

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

A fresh disk with the image you give. The addresses, names and backups stay.

Parameters

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

Request body

FieldTypeDescription
imagestringrequiredAn image id from GET /vps/images
ssh_key_idslist of integer
passwordstring, optionalRoot password

Example request

curl -X POST "https://platform.serverscamp.com/api/v1/vps/$VPS_UUID/reinstall" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "debian-13",
    "ssh_key_ids": [42]
  }'

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": "reinstalling"
}

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": "reinstalling",
  "ipv4": "185.236.9.61",
  "error": null
}
statusWhat it means
reinstallingThe old disk is removed
cloningA fresh copy of the image is made
configuringNetwork, keys and password are set
startingThe server boots
runningReady, with the new system
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
400An image or password that is not accepted
401No token, or a token that is not valid
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