Base URL: https://ds.powervps.xyz/api/v1/personal

Scope: servers.restart

Authentication

Authorization: Bearer <token>
Accept: application/json

The request source IP must be included in the token allowlist.

Restart a server

POST /servers/{serverId}/restart

Path parameters

Parameter Type Description
serverId integer Internal DSmanager server ID from the ID column. The provider/external server ID is not accepted.

Headers

Header Required Description
Authorization Yes Bearer <token>
Accept Recommended application/json
Idempotency-Key No 16–128 Latin letters, numbers, _, or -. Reuse the same key only when retrying the same request.

Request body: none.

Example

curl --request POST \
  "https://ds.powervps.xyz/api/v1/personal/servers/2733/restart" \
  --header "Authorization: Bearer PERSONAL_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: restart-2733-20260901-0001"

202 Accepted

A new restart task was created.

{
  "outcome": "queued",
  "server": {
    "id": 2733
  },
  "task": {
    "id": 67890,
    "status": "queued",
    "terminal": false,
    "status_url": "https://ds.powervps.xyz/api/v1/personal/servers/2733/restart/tasks/67890",
    "created": "2026-09-01T10:15:30+00:00",
    "started": null,
    "completed": null
  }
}

200 OK

The idempotent request already exists. The response has the same structure, with:

{
  "outcome": "existing"
}

Get restart task status

GET /servers/{serverId}/restart/tasks/{taskId}

Path parameters

Parameter Type Description
serverId integer Internal DSmanager server ID.
taskId integer Task ID returned by the restart request.

Example

curl \
  "https://ds.powervps.xyz/api/v1/personal/servers/2733/restart/tasks/67890" \
  --header "Authorization: Bearer PERSONAL_API_TOKEN" \
  --header "Accept: application/json"

200 OK

{
  "server": {
    "id": 2733
  },
  "task": {
    "id": 67890,
    "status": "running",
    "terminal": false,
    "status_url": "https://ds.powervps.xyz/api/v1/personal/servers/2733/restart/tasks/67890",
    "created": "2026-09-01T10:15:30+00:00",
    "started": "2026-09-01T10:15:32+00:00",
    "completed": null
  }
}

Task statuses

Status Terminal
queued No
running No
waiting No
success Yes
failed Yes
cancelled Yes

Errors

{
  "error": {
    "code": "operation_in_progress",
    "message": "Another operation is already active for this server."
  }
}
HTTP Code Description
401 unauthorized Invalid, disabled, revoked, wrong-type token, or source IP is not allowed.
403 intervention_mode_active Restart is blocked by Intervention mode.
404 restart_task_not_found Restart task was not found or is not accessible to the token owner.
404 — Server was not found, is in Stock, or is not assigned to the token owner.
409 operation_in_progress Another operation is active for the server.
422 restart_unsupported Hardware restart is not supported.
422 invalid_idempotency_key Invalid Idempotency-Key.
423 network_disabled Server network access is disabled.
429 — Rate limit exceeded.

Rate limit: 120 requests per minute per source IP.

API responses use:

Cache-Control: no-store, private