/api/v2/vps/{id} Return one VPS in the same canonical inventory shape as GET /api/v2/vps, with optional overdue invoice context for pending or suspended services.
Get {id} from GET /api/v2/vps data[].id.
Inspect billing.isPayg: false is a regular fixed-cycle VPS, true is a pay-as-you-go Cloud VPS with billing.amount: null.
This detail response additionally includes hardware — facts about the physical host machine the VPS runs on: hardware.cpuModel is the host CPU model string (for example "AMD EPYC 7R13") and hardware.cpuVendor is one of amd, intel, or other.
Both hardware fields are nullable: they are null when the VPS is not provisioned yet (pending/terminated services) or when the placement lookup is temporarily unavailable — treat null as "unknown right now", not as an error.
The hardware field is present only on this detail endpoint, never on the GET /api/v2/vps list.
Use /api/v2/vps/{id}/status or richer detail/action endpoints when you need action gates.
read:services
Authenticate with an API key in the Authorization: Bearer <token> header.
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.
Authorization Bearer <token> Accept application/json id string
· Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3 name string
· Example: app-01 primaryIp string · nullable
· Example: 192.0.2.10 serviceStatus string · enum
· Example: active active suspended terminated pending cancelled expired fraud unknown powerState string · nullable · enum
· Example: running running stopped starting stopping paused provisioning error unknown operatingSystem object · nullable
· Example: {"displayName":"Ubuntu 24.04","family":"ubuntu","version":"24.04","variant":null} customerMetadata object Customer-owned display labels. These do not replace canonical name, hostname, or operatingSystem fields.
customerMetadata.displayName string · nullable required
· Example: Production DB Nullable: may be null when not applicable.
customerMetadata.operatingSystemName string · nullable required
· Example: Debian 13 Nullable: may be null when not applicable.
customerMetadata.operatingSystemSourceName string · nullable required
· Example: Debian 12 Nullable: may be null when not applicable.
customerMetadata.updatedAt string · nullable required
· Example: 2026-06-30T10:00:00.000Z Nullable: may be null when not applicable.
billing object billing.amount number · nullable required
· Example: 199 Recurring fixed-cycle amount in the resource currency. Null when no fixed recurring amount applies, such as PAYG Cloud VPS billing.
billing.currencyCode string required
· Example: SEK billing.billingCycle string · nullable · enum required
· Example: annually Canonical billing cycle. VPS services with isPayg: true still report monthly for summary display; use isPayg to distinguish PAYG Cloud VPS from fixed-cycle VPS.
monthly quarterly semiannually annually biennially triennially free billing.isPayg boolean required
· Example: false For VPS service/order billing, true means pay-as-you-go Cloud VPS and false means fixed-cycle/prepaid VPS. Non-VPS resources normally return false.
billing.periodYears integer · nullable
· Example: 1 Nullable: may be null when not applicable.
resources object resources.cpuCores number
· Example: 2 resources.memoryGb number
· Example: 4 resources.storageGb number
· Example: 80 bandwidth object bandwidth.usedGb number required
· Example: 12.5 bandwidth.limitGb number required
· Example: 1000 bandwidth.inboundGb number required
· Example: 4.2 bandwidth.outboundGb number required
· Example: 8.3 bandwidth.hasOverage boolean required
· Example: false availability object availability.available boolean required
· Example: true availability.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
tags array<string>
· Example: ["production"] pinned boolean
· Example: false createdAt string · nullable
· Example: 2026-04-27T12:00:00.000Z pendingMaintenance boolean
· Example: false Only present when the list route is called with include=pendingMaintenance.
pendingMaintenanceHasDeadline boolean
· Example: false Only present together with pendingMaintenance.
overdueInvoices array<object> Only present on single-detail routes when overdue invoices were queried.
diskThrottle object Disk throttle status for this VPS. active:false means the API checked local throttle state and found no active disk limit.
diskThrottle.active boolean required
· Example: true True when an active disk throttle exists for this VPS.
diskThrottle.limitedRead boolean required
· Example: false diskThrottle.limitedWrite boolean required
· Example: true diskThrottle.readDrpd number · nullable required
· Example: null Disk reads per disk per day, when reads triggered the throttle.
diskThrottle.writeDwpd number · nullable required
· Example: 10.06 Disk writes per disk per day, when writes triggered the throttle.
diskThrottle.diskSizeGb number · nullable required
· Example: 100 Nullable: may be null when not applicable.
diskThrottle.estimatedDailyReadGb number · nullable required
· Example: null Nullable: may be null when not applicable.
diskThrottle.estimatedDailyWriteGb number · nullable required
· Example: 1006 Nullable: may be null when not applicable.
diskThrottle.totalReadLast7DaysGb number · nullable required
· Example: null Nullable: may be null when not applicable.
diskThrottle.totalWriteLast7DaysGb number · nullable required
· Example: 7042 Nullable: may be null when not applicable.
diskThrottle.limitReadMbps number · nullable required
· Example: null Nullable: may be null when not applicable.
diskThrottle.limitWriteMbps number · nullable required
· Example: 1 Nullable: may be null when not applicable.
diskThrottle.throttledAt string · nullable required
· Example: 2026-06-17T14:00:09.000Z Nullable: may be null when not applicable.
diskThrottle.expiresAt string · nullable required
· Example: 2026-06-18T14:00:09.000Z Nullable: may be null when not applicable.
diskThrottle.escalationLevel integer · min: 0 required
· Example: 1 hardware object Host hardware info. Present on GET /api/v2/vps/{id} only (absent on the list read). Each field is null when the platform cannot resolve node placement right now (e.g. service pending) — null means "unknown", not an error.
hardware.cpuModel string · nullable Physical CPU model of the host node, e.g. "AMD EPYC 7R13".
hardware.cpuVendor string · nullable · enum CPU vendor family derived from the model.
amd intel other 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 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 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 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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 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 https://cloud.hostup.se/api/v2/vps/{id} curl -X GET "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"id": "vps_01hxa3b4c5d6e7f8g9h0j1k2m3",
"name": "app-01",
"primaryIp": "192.0.2.10",
"serviceStatus": "active",
"powerState": "running",
"operatingSystem": {
"displayName": "Ubuntu 24.04",
"family": "ubuntu",
"version": "24.04",
"variant": null
},
"customerMetadata": {
"displayName": "Production DB",
"operatingSystemName": "Debian 13",
"operatingSystemSourceName": "Debian 12",
"updatedAt": "2026-06-30T10:00:00.000Z"
},
"hardware": {
"cpuModel": "AMD EPYC 7R13",
"cpuVendor": "amd"
},
"resources": {
"cpuCores": 2,
"memoryGb": 4,
"storageGb": 80
},
"billing": {
"amount": 99,
"currencyCode": "SEK",
"billingCycle": "monthly",
"isPayg": false
},
"bandwidth": {
"usedGb": 12.5,
"limitGb": 1000,
"inboundGb": 4.2,
"outboundGb": 8.3,
"hasOverage": false
},
"availability": {
"available": true,
"reason": null
},
"tags": [
"production"
],
"pinned": false,
"createdAt": "2026-04-27T12:00:00.000Z",
"diskThrottle": {
"active": false,
"limitedRead": false,
"limitedWrite": false,
"readDrpd": null,
"writeDwpd": null,
"diskSizeGb": null,
"estimatedDailyReadGb": null,
"estimatedDailyWriteGb": null,
"totalReadLast7DaysGb": null,
"totalWriteLast7DaysGb": null,
"limitReadMbps": null,
"limitWriteMbps": null,
"throttledAt": null,
"expiresAt": null,
"escalationLevel": 0
}
}