Run the VPS connectivity doctor

GET /api/v2/vps/{id}/diagnostics/connectivity

Read-only reachability check of the VPS's own primary IP: TCP probes of common ports (default 22, 80, 443, 3389 — override with ?ports=22,443, max 6) from HostUp's diagnostics egress, synthesized into one verdict.

verdict is one of all_clear (every probed port responds), host_up_some_services_down (network path works; non-responding ports are stopped/blocked inside the guest), host_up_no_services (host answers with resets but no service accepted), network_unreachable (nothing answered — powered off, boot failure, or a guest firewall dropping everything), or no_public_ip.

Each ports[] row carries port, verdict (open/closed/no_response), a human label (for example "RDP (Windows remote desktop)"), and latencyMs for open ports.

Probes target only the VPS's own assigned addresses — the caller cannot supply a host.

Get {id} from GET /api/v2/vps data[].id.

VPS Services VM

Authentication

Required API scope: read:vm

Authenticate with an API key in the Authorization: Bearer <token> header.

Context

Path Parameters

id string required Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3

Public VPS ID. Get it from GET /api/v2/vps data[].id. Do not invent this value; use the exact ID returned by the referenced API response.

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 Connectivity verdict with per-port probe results.
verdict string · enum required · Example: host_up_some_services_down
all_clear
host_up_some_services_down
host_up_no_services
network_unreachable
no_public_ip
host string · nullable required · Example: 192.0.2.10

The VPS's own primary IP that was probed. null only for the no_public_ip verdict.

ports array<object> required
ports[].port integer required · Example: 22
ports[].verdict string · enum required · Example: open
open
closed
no_response
ports[].detail string · nullable required · Example: null

Short failure detail for non-open verdicts (for example timeout).

ports[].latencyMs number · nullable required · Example: 12

Connect latency for open ports; null otherwise.

ports[].label string · nullable required · Example: SSH

Human label for well-known ports (for example SSH); null for uncommon ports.

checkedAt string required · Example: 2026-08-02T15:04:05.000Z
400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 Forbidden. The caller lacks a required scope or does not own the resource.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
404 The VPS does not exist or is not owned by the authenticated account.

No response body

429 Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/vps/{id}/diagnostics/connectivity
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/diagnostics/connectivity" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "verdict": "host_up_some_services_down",
  "host": "192.0.2.10",
  "ports": [
    {
      "port": 3389,
      "verdict": "open",
      "detail": null,
      "latencyMs": 12,
      "label": "RDP (Windows remote desktop)"
    },
    {
      "port": 22,
      "verdict": "no_response",
      "detail": "timeout",
      "latencyMs": null,
      "label": "SSH"
    }
  ],
  "checkedAt": "2026-08-02T15:04:05.000Z"
}