Return detailed VPS state including resources, billing, bandwidth, IPs, power state, SSH keys, login metadata, action gates, and overdue invoice context. Use this when an API agent needs operational context beyond the lightweight GET /api/v2/vps/{id} summary. Inspect billing.isPayg before choosing a change flow: fixed-cycle VPS instances use plan upgrade/billing-cycle endpoints when the relevant action gate allows it; PAYG Cloud VPS instances scale through configurable resource changes instead.
read:vm
Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.
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.
Accept Example Content-Type Example id string required
· Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3 productName stringnull required
· Example: VPS XS hostname stringnull required
· Example: web-01.example.com serviceStatus string · enum required
· Example: active active pending suspended terminated cancelled unknown createdAt stringnull required
· Example: 2026-04-27T12:00:00.000Z nextDueAt stringnull required
· Example: 2026-05-27T00:00:00.000Z billing object required billing.amount number required
· Example: 99 billing.currencyCode string required
· Example: SEK billing.billingCycle string · enum required
· Example: monthly monthly quarterly semiannually annually biennially triennially free billing.isPayg boolean required
· Example: false cpuCores number required
· Example: 2 memoryGb number required
· Example: 4 storageGb number required
· Example: 80 backupsIncluded integer required
· Example: 2 bandwidth object required 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.usagePercent number required
· Example: 1.25 bandwidth.hasOverage boolean required
· Example: false bandwidthUsage object required bandwidthUsage.dataReceivedGb number required
· Example: 4.2 bandwidthUsage.dataSentGb number required
· Example: 8.3 usageLog array<object> required usageLog[].recordedAt string required
· Example: 2026-04-27T00:00:00.000Z usageLog[].dataReceivedGb number required
· Example: 0.5 usageLog[].dataSentGb number required
· Example: 1 usageLog[].totalGb number required
· Example: 1.5 ipAddresses array<string> required ipv4 stringnull required
· Example: 203.0.113.10 ipv6 stringnull required
· Example: 2001:db8::10 operatingSystem objectnull required powerState stringnull · enum required
· Example: running running stopped paused unknown operationState object required operationState.locked boolean required
· Example: false sshKeys array<string> required access object required access.username stringnull required
· Example: root access.rootPassword stringnull required
· Example: initial-password-from-panel pricing objectnull required Deprecated migration-only pricing breakdown. Prefer the canonical `billing` object for amount, currency, and cycle.
pinned boolean required
· Example: false availability object required availability.available boolean required
· Example: true availability.reason stringnull required
· Example: null actions object required actions.canRebuild object required actions.canRebuild.allowed boolean required
· Example: true actions.canRebuild.reason stringnull required
· Example: null actions.canRebuild.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canResetPassword object required actions.canResetPassword.allowed boolean required
· Example: true actions.canResetPassword.reason stringnull required
· Example: null actions.canResetPassword.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canResetSshKeys object required actions.canResetSshKeys.allowed boolean required
· Example: true actions.canResetSshKeys.reason stringnull required
· Example: null actions.canResetSshKeys.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canResizeDisk object required actions.canResizeDisk.allowed boolean required
· Example: true actions.canResizeDisk.reason stringnull required
· Example: null actions.canResizeDisk.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canAddDisk object required actions.canAddDisk.allowed boolean required
· Example: true actions.canAddDisk.reason stringnull required
· Example: null actions.canAddDisk.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canSnapshot object required actions.canSnapshot.allowed boolean required
· Example: true actions.canSnapshot.reason stringnull required
· Example: null actions.canSnapshot.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canBackup object required actions.canBackup.allowed boolean required
· Example: true actions.canBackup.reason stringnull required
· Example: null actions.canBackup.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canChangeBillingCycle object required actions.canChangeBillingCycle.allowed boolean required
· Example: true actions.canChangeBillingCycle.reason stringnull required
· Example: null actions.canChangeBillingCycle.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canUpgrade object required actions.canUpgrade.allowed boolean required
· Example: true actions.canUpgrade.reason stringnull required
· Example: null actions.canUpgrade.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canResize object required actions.canResize.allowed boolean required
· Example: true actions.canResize.reason stringnull required
· Example: null actions.canResize.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canDetachIsos object required actions.canDetachIsos.allowed boolean required
· Example: true actions.canDetachIsos.reason stringnull required
· Example: null actions.canDetachIsos.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canConvertToCloud object required actions.canConvertToCloud.allowed boolean required
· Example: true actions.canConvertToCloud.reason stringnull required
· Example: null actions.canConvertToCloud.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canStart object required actions.canStart.allowed boolean required
· Example: true actions.canStart.reason stringnull required
· Example: null actions.canStart.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canStop object required actions.canStop.allowed boolean required
· Example: true actions.canStop.reason stringnull required
· Example: null actions.canStop.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canRestart object required actions.canRestart.allowed boolean required
· Example: true actions.canRestart.reason stringnull required
· Example: null actions.canRestart.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canShutdown object required actions.canShutdown.allowed boolean required
· Example: true actions.canShutdown.reason stringnull required
· Example: null actions.canShutdown.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canReset object required actions.canReset.allowed boolean required
· Example: true actions.canReset.reason stringnull required
· Example: null actions.canReset.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canCancel object required actions.canCancel.allowed boolean required
· Example: true actions.canCancel.reason stringnull required
· Example: null actions.canCancel.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canToggleAutorenew object required actions.canToggleAutorenew.allowed boolean required
· Example: true actions.canToggleAutorenew.reason stringnull required
· Example: null actions.canToggleAutorenew.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canExtendMaintenance object required actions.canExtendMaintenance.allowed boolean required
· Example: true actions.canExtendMaintenance.reason stringnull required
· Example: null actions.canExtendMaintenance.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canCancelJob object required actions.canCancelJob.allowed boolean required
· Example: true actions.canCancelJob.reason stringnull required
· Example: null actions.canCancelJob.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
overdueInvoices array<object> required overdueInvoices[].id string required
· Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3 overdueInvoices[].number stringnull required
· Example: 10001 overdueInvoices[].amount number required
· Example: 99 overdueInvoices[].currencyCode string required
· Example: SEK overdueInvoices[].dueAt stringnull required
· Example: 2026-05-27T00:00:00.000Z overdueInvoices[].status string · enum required
· Example: unpaid unpaid paid cancelled refunded collections unknown overdueInvoices[].paymentUrl stringnull required
· Example: /billing?invoice=10001 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 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}/details curl -X GET "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/details" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"id": "vps_01hxa3b4c5d6e7f8g9h0j1k2m3",
"productName": "VPS XS",
"hostname": "web-01.example.com",
"serviceStatus": "active",
"createdAt": "2026-04-27T12:00:00.000Z",
"nextDueAt": "2026-05-27T00:00:00.000Z",
"billing": {
"amount": 99,
"currencyCode": "SEK",
"billingCycle": "monthly",
"isPayg": false
},
"cpuCores": 2,
"memoryGb": 4,
"storageGb": 80,
"backupsIncluded": 2,
"bandwidth": {
"usedGb": 12.5,
"limitGb": 1000,
"inboundGb": 4.2,
"outboundGb": 8.3,
"usagePercent": 1.25,
"hasOverage": false
},
"bandwidthUsage": {
"dataReceivedGb": 4.2,
"dataSentGb": 8.3
},
"usageLog": [
{
"recordedAt": "2026-04-27T00:00:00.000Z",
"dataReceivedGb": 0.5,
"dataSentGb": 1,
"totalGb": 1.5
}
],
"ipAddresses": [
"203.0.113.10"
],
"ipv4": "203.0.113.10",
"ipv6": "2001:db8::10",
"operatingSystem": {
"displayName": "Ubuntu 24.04",
"family": "ubuntu",
"version": "24.04",
"variant": null
},
"powerState": "running",
"operationState": {
"locked": false
},
"sshKeys": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIexample [email protected]"
],
"access": {
"username": "root",
"rootPassword": "initial-password-from-panel"
},
"pricing": {
"currency": "SEK",
"currencyCode": "SEK",
"billingCycle": {
"id": "monthly",
"months": 1,
"isFree": false
},
"pricePerCycle": 39,
"baseMonthlyCost": 39,
"baseAnnualCost": 468,
"addonsMonthlyCost": 1.5,
"addonsAnnualCost": 18,
"totalMonthlyCost": 40.5,
"totalAnnualCost": 486,
"addons": [
{
"id": "storage-addon",
"name": "Attachable Block Storage",
"category": "storage",
"unit": "GB",
"included": 50,
"quantity": 100,
"unitPriceMonthly": 0.03,
"monthlyCost": 1.5,
"annualCost": 18,
"currencyCode": "SEK"
}
]
},
"pinned": false,
"actions": {
"canRebuild": {
"allowed": true,
"reason": null
},
"canResetPassword": {
"allowed": true,
"reason": null
},
"canResetSshKeys": {
"allowed": true,
"reason": null
},
"canResizeDisk": {
"allowed": true,
"reason": null
},
"canAddDisk": {
"allowed": true,
"reason": null
},
"canSnapshot": {
"allowed": false,
"reason": "Snapshot availability could not be confirmed."
},
"canBackup": {
"allowed": false,
"reason": "Backup availability could not be confirmed."
},
"canChangeBillingCycle": {
"allowed": true,
"reason": null
},
"canUpgrade": {
"allowed": true,
"reason": null
},
"canResize": {
"allowed": false,
"reason": "Resize is a PAYG-only action. Use upgrade for fixed plans."
},
"canDetachIsos": {
"allowed": false,
"reason": "No ISOs attached."
},
"canConvertToCloud": {
"allowed": false,
"reason": "Account verification is required before converting to Cloud VM."
},
"canStart": {
"allowed": false,
"reason": "VPS is already running."
},
"canStop": {
"allowed": true,
"reason": null
},
"canRestart": {
"allowed": true,
"reason": null
},
"canShutdown": {
"allowed": true,
"reason": null
},
"canReset": {
"allowed": true,
"reason": null
},
"canCancel": {
"allowed": true,
"reason": null
},
"canToggleAutorenew": {
"allowed": true,
"reason": null
},
"canExtendMaintenance": {
"allowed": false,
"reason": "No pending maintenance to extend."
},
"canCancelJob": {
"allowed": false,
"reason": "No active jobs to cancel."
}
},
"availability": {
"available": true,
"reason": null
},
"overdueInvoices": []
}