curl --request POST \
--url https://my.server.express/api/v1/dedicated/{id}/reinstall \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"hostname": "web-01.example.com",
"profileId": 2,
"osId": "<string>",
"sshKeyIds": [
"<string>"
],
"sshKeys": [
"<string>"
],
"rootPassword": "<string>",
"diskLayoutId": 123
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
hostname: 'web-01.example.com',
profileId: 2,
osId: '<string>',
sshKeyIds: ['<string>'],
sshKeys: ['<string>'],
rootPassword: '<string>',
diskLayoutId: 123
})
};
fetch('https://my.server.express/api/v1/dedicated/{id}/reinstall', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/dedicated/{id}/reinstall"
payload = {
"hostname": "web-01.example.com",
"profileId": 2,
"osId": "<string>",
"sshKeyIds": ["<string>"],
"sshKeys": ["<string>"],
"rootPassword": "<string>",
"diskLayoutId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"taskId": "<string>",
"profileId": 123,
"osName": "<string>"
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>",
"data": {
"taskId": "<string>"
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Reinstall the operating system
Wipes the box and installs the chosen profile. Answers 202 with a task id; the install itself takes around twenty minutes. Every check (profile fits this box, disk layout offered, SSH keys yours or the owner’s, profile accepts keys) runs before TenantOS is asked, so a bad request is a 400, never a wiped disk. If the profile sets a root password and you didn’t pick one, we generate one you can later read from /credentials. Needs operate access and a manageable billing status. 409 while another job is running; 422 when there’s no TenantOS id.
curl --request POST \
--url https://my.server.express/api/v1/dedicated/{id}/reinstall \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"hostname": "web-01.example.com",
"profileId": 2,
"osId": "<string>",
"sshKeyIds": [
"<string>"
],
"sshKeys": [
"<string>"
],
"rootPassword": "<string>",
"diskLayoutId": 123
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
hostname: 'web-01.example.com',
profileId: 2,
osId: '<string>',
sshKeyIds: ['<string>'],
sshKeys: ['<string>'],
rootPassword: '<string>',
diskLayoutId: 123
})
};
fetch('https://my.server.express/api/v1/dedicated/{id}/reinstall', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/dedicated/{id}/reinstall"
payload = {
"hostname": "web-01.example.com",
"profileId": 2,
"osId": "<string>",
"sshKeyIds": ["<string>"],
"sshKeys": ["<string>"],
"rootPassword": "<string>",
"diskLayoutId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"taskId": "<string>",
"profileId": 123,
"osName": "<string>"
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>",
"data": {
"taskId": "<string>"
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Authorizations
Session access token (JWT) from POST /v1/auth/login or /v1/auth/refresh. A session satisfies every API scope.
Path Parameters
The dedicated server's service id.
Body
Send profileId (or the legacy osId). One of them is required.
Letters, digits, hyphens and dots. Trimmed and lowercased.
"web-01.example.com"
An install profile id from GET /profiles.
x >= 1Legacy alias for profileId.
Saved SSH key ids — yours or the server owner's.
OpenSSH public keys pasted directly.
Generated for you when omitted and the profile sets one.
8 - 72One of the profile's disk layouts. Defaults to the profile's default layout.