Base URL: https://dc.powervps.xyz/api/v1/personal
Scope: servers.restart
Authentication
Create a token in Settings → Personal API and add your API client’s public IP address to its allowlist.
Include these headers in every request:
Authorization: Bearer <token>
Accept: application/json
Restart a server
POST /servers/{serverId}/restart
This operation performs a hardware reset. Unsaved data may be lost.
Path parameters
| Parameter | Type | Description |
|---|---|---|
serverId |
integer | Internal DCmanager server ID from the ID column. The provider’s External ID and server IP address are not accepted. |
Headers
| Header | Required | Description |
|---|---|---|
Authorization |
Yes | Bearer <token> |
Accept |
Recommended | application/json |
Idempotency-Key |
No | 16–128 Latin letters, digits, underscores or hyphens. Use the same key when retrying the same operation. |
Request body: none.
Example
curl --request POST \
"https://dc.powervps.xyz/api/v1/personal/servers/123/restart" \
--header "Authorization: Bearer PERSONAL_API_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: restart-123-20261021-0001"
202 Accepted
A restart task has been queued. This does not mean the restart has finished.
{
"outcome": "queued",
"server": {
"id": 123
},
"task": {
"id": 67890,
"status": "queued",
"terminal": false,
"status_url": "https://dc.powervps.xyz/api/v1/personal/servers/123/restart/tasks/67890",
"created": "2026-10-21T12:00:00+00:00",
"started": null,
"completed": null
}
}
200 OK
If a task already exists for the supplied idempotency key, the API returns that task instead of creating another one. The response has the same structure, with outcome set to "existing".
Use a new key for each intended restart. After a network timeout, retry with the same key, token and server ID.
Get restart task status
GET /servers/{serverId}/restart/tasks/{taskId}
Use the same token that created the task.
Path parameters
| Parameter | Type | Description |
|---|---|---|
serverId |
integer | Internal DCmanager server ID. |
taskId |
integer | The task.id returned by the restart request. |
Example
curl \
"https://dc.powervps.xyz/api/v1/personal/servers/123/restart/tasks/67890" \
--header "Authorization: Bearer PERSONAL_API_TOKEN" \
--header "Accept: application/json"
200 OK
{
"server": {
"id": 123
},
"task": {
"id": 67890,
"status": "running",
"terminal": false,
"status_url": "https://dc.powervps.xyz/api/v1/personal/servers/123/restart/tasks/67890",
"created": "2026-10-21T12:00:00+00:00",
"started": "2026-10-21T12:00:02+00:00",
"completed": null
}
}
Task statuses
| Status | Description | Terminal |
|---|---|---|
queued |
Awaiting processing | No |
running |
Being processed | No |
waiting |
Awaiting further processing | No |
success |
Completed successfully | Yes |
failed |
Completed with an error | Yes |
cancelled |
Cancelled | Yes |
Poll every 5–10 seconds until terminal becomes true. Only success indicates successful completion.
Errors
Application errors can contain an error object:
{
"error": {
"code": "operation_in_progress",
"message": "Another operation is already active for this server."
}
}
| HTTP | Code | Description |
|---|---|---|
401 |
unauthorized |
The token is invalid, disabled, revoked, of the wrong type, or the source IP is not allowed. |
403 |
intervention_mode_active |
Intervention mode prevents the user from restarting this server. |
403 |
— | The account or token does not have the required access. |
404 |
— | The server does not exist, is in Stock, or is not assigned to the token owner. |
404 |
restart_task_not_found |
The task is unavailable for the specified server and token. |
409 |
operation_in_progress |
A conflicting operation is already active. |
422 |
restart_unsupported |
The server does not support hardware reset. |
422 |
invalid_idempotency_key |
The idempotency key has an invalid format or length. |
423 |
network_disabled |
Disable network is enabled for the server. |
429 |
— | The request rate limit has been exceeded. |
Check the HTTP status before parsing the body. Framework or proxy errors may use a different response format.
Rate limit: 120 requests per minute per source IP, including task-status requests. Respect the Retry-After header when provided.
Restart and task-status responses use:
Cache-Control: no-store, private