/api/v2/vps/{id}/actions/convert-to-cloud Check whether a regular fixed-cycle VPS can be scheduled to convert to pay-as-you-go Cloud VPS at the end of its current paid period.
The response is a preflight gate: use available and actions.canConvertToCloud.allowed directly, and show reason or blockerReasons when conversion is blocked.
Conversion is blocked when another service change is scheduled or when current VPS resources would exceed the account Cloud VPS limits; for example storage_limit_exceeded means the VPS disk allocation is larger than the caller's current Cloud VPS storage limit.
Cancel an open conversion through DELETE /api/v2/vps/{id}/actions/upgrade.
If currentBillingModel is payg, the service is already Cloud VPS and should be managed through Cloud VPS/PAYG operations instead of conversion.
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 vpsId string required
· Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3 Public VPS ID from GET /api/v2/vps.
available boolean required
· Example: false True when the caller may submit POST /api/v2/vps/{id}/actions/convert-to-cloud.
reason string · nullable required
· Example: Account verification is required before converting to Cloud VM. Human-readable blocker reason when available is false.
currentBillingModel string · enum required
· Example: fixed fixed means regular VPS billing; payg means it is already a Cloud VPS.
fixed payg requiresVerification boolean required
· Example: true True when account verification or Cloud VPS access must be completed first.
actions object required actions.canConvertToCloud object required actions.canConvertToCloud.allowed boolean required
· Example: false actions.canConvertToCloud.reason string · nullable required
· Example: Account verification is required before converting to Cloud VM. Nullable: may be null when not applicable.
blockerReasons array<string> required
· Example: ["not_verified","no_cloud_access"] Machine-readable blockers. Empty when conversion is available.
currentProductName string · nullable required
· Example: VPS XS scheduledChange null required prepaidWarning object · nullable required Present when a fixed paid period remains. Conversion is scheduled for the period boundary and does not refund or remove the remaining prepaid time.
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}/actions/convert-to-cloud curl -X GET "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/convert-to-cloud" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"vpsId": "vps_01hxa3b4c5d6e7f8g9h0j1k2m3",
"available": false,
"reason": "Account verification is required before converting to Cloud VM.",
"currentBillingModel": "fixed",
"requiresVerification": true,
"actions": {
"canConvertToCloud": {
"allowed": false,
"reason": "Account verification is required before converting to Cloud VM."
}
},
"blockerReasons": [
"not_verified",
"no_cloud_access"
],
"currentProductName": "VPS XS",
"scheduledChange": null,
"prepaidWarning": {
"nextDueAt": "2026-05-27",
"billingCycle": "monthly",
"daysRemaining": 18
}
}