List fixed-cycle VPS products that can be ordered through POST /api/v2/orders. This catalog intentionally excludes the pay-as-you-go Cloud VPS tier; use GET /api/v2/vps/payg/deployments for PAYG deployment options. Use data[].slug as items[].productSlug when ordering a regular VPS, and only order products where available is true. billing.billingCycle and billingCycles[] describe fixed billing cycles; this endpoint does not emit isPayg because every listed product is non-PAYG.
No authentication required.
limit integer · min: 1 · max: 100
· Example: 20 Maximum VPS products to return in this page. Defaults to 20 and is capped at 100.
cursor string Opaque cursor returned as `nextCursor` from the previous page.
locale string · enum
· Example: en Optional label locale. Supported values are `en` and `sv`; unsupported values fall back to English.
en sv Accept Example Content-Type Example data array<object> required data[].id string required
· Example: vpsprod_01hxa3b4c5d6e7f8g9h0j1k2m3 Public VPS product ID. Use `slug` for orders; keep `id` for product detail lookups.
data[].slug string required
· Example: vps-xs Canonical value to send as `items[].productSlug` in `POST /api/v2/orders`.
data[].tier string required
· Example: xs Short product tier used for display and sorting.
data[].name string required
· Example: VPS XS data[].resources object required data[].resources.cpuCores numbernull required
· Example: 2 Included CPU cores for the base plan.
data[].resources.memoryGb numbernull required
· Example: 4 Included memory in GiB for the base plan.
data[].resources.storageGb numbernull required
· Example: 80 Included storage in GiB for the base plan.
data[].bandwidth object required data[].bandwidth.limitGb numbernull required
· Example: 1024 Included transfer allowance in GB.
data[].billing object required data[].billing.amount number required
· Example: 99 Amount for the primary/default billing cycle.
data[].billing.currencyCode string required
· Example: SEK data[].billing.billingCycle string · enum required
· Example: monthly monthly quarterly semiannually annually biennially triennially free data[].billingCycles array<object> required Enabled fixed billing cycles. Use one of these `billingCycle` values in the order item.
data[].billingCycles[].billingCycle string · enum required
· Example: monthly monthly quarterly semiannually annually biennially triennially free data[].billingCycles[].amount number required
· Example: 99 data[].billingCycles[].currencyCode string required
· Example: SEK data[].billingCycles[].setupAmount numbernull required
· Example: null data[].billingCycles[].isPrimary boolean required
· Example: true data[].availabilityStatus string · enum required
· Example: available `available` is orderable; `out_of_stock` or `hidden` means do not create an order.
available out_of_stock hidden data[].available boolean required
· Example: true data[].reason stringnull required
· Example: null Customer-facing reason when `available` is false.
data[].configurableOptions array<object> required Optional order-time configuration. Send option values under the order item's `configurableOptions` object using these `key` values. For operating system selection, either send top-level `os` or `configurableOptions.operatingSystem` with the selected choice `value`.
data[].configurableOptions[].key string required
· Example: operatingSystem Canonical option key such as `operatingSystem`, `bandwidthGb`, `additionalStorageGb`, `backupSlots`, `snapshotSlots`, or `ipv6`.
data[].configurableOptions[].label string required
· Example: Operating system data[].configurableOptions[].type string · enum required
· Example: select slider quantity toggle input select data[].configurableOptions[].default string | number | boolean | null
· Example: ubuntu-24-04 Default value for the option. Type depends on `type`.
data[].configurableOptions[].choices array<object> Present for select options.
data[].configurableOptions[].choices[].value string required
· Example: ubuntu-24-04 data[].configurableOptions[].choices[].label string required
· Example: Ubuntu 24.04 data[].configurableOptions[].choices[].osTemplateId string
· Example: os_01hxa3b4c5d6e7f8g9h0j1k2m3 Present for operating-system choices; accepted anywhere an OS template public ID is documented.
data[].configurableOptions[].min number
· Example: 1024 Minimum value for slider or quantity options.
data[].configurableOptions[].max number
· Example: 10240 Maximum value for slider or quantity options.
data[].configurableOptions[].step number
· Example: 1024 Increment for slider or quantity options.
data[].configurableOptions[].includedAtBase number
· Example: 1024 Quantity included in the base plan before option pricing applies.
data[].configurableOptions[].unit stringnull
· Example: GB data[].configurableOptions[].pricing array<object> Per-cycle option pricing. For sliders/quantity options this is price per unit above `includedAtBase`; for toggles it is the flat enabled price.
data[].configurableOptions[].pricing[].billingCycle string required
· Example: monthly data[].configurableOptions[].pricing[].amount number required
· Example: 0.02 data[].configurableOptions[].pricing[].currencyCode string required
· Example: SEK data[].configurableOptions[].required boolean
· Example: false Present for input options.
hasMore boolean required
· Example: false nextCursor stringnull required
· Example: null 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/products/vps curl -X GET "https://cloud.hostup.se/api/v2/products/vps" \
-H "Accept: application/json" {
"data": [
{
"id": "vpsprod_01hxa3b4c5d6e7f8g9h0j1k2m3",
"slug": "vps-xs",
"tier": "xs",
"name": "VPS XS",
"resources": {
"cpuCores": 2,
"memoryGb": 4,
"storageGb": 80
},
"bandwidth": {
"limitGb": 1024
},
"billing": {
"amount": 99,
"currencyCode": "SEK",
"billingCycle": "monthly"
},
"billingCycles": [
{
"billingCycle": "monthly",
"amount": 99,
"currencyCode": "SEK",
"setupAmount": null,
"isPrimary": true
},
{
"billingCycle": "annually",
"amount": 990,
"currencyCode": "SEK",
"setupAmount": null,
"isPrimary": false
}
],
"availabilityStatus": "available",
"available": true,
"reason": null,
"configurableOptions": [
{
"key": "operatingSystem",
"label": "Operating system",
"type": "select",
"default": "ubuntu-24-04",
"choices": [
{
"value": "ubuntu-24-04",
"label": "Ubuntu 24.04",
"osTemplateId": "os_01hxa3b4c5d6e7f8g9h0j1k2m3"
}
]
},
{
"key": "bandwidthGb",
"label": "Bandwidth",
"type": "slider",
"min": 1024,
"max": 10240,
"step": 1024,
"default": 1024,
"includedAtBase": 1024,
"unit": "GB",
"pricing": [
{
"billingCycle": "monthly",
"amount": 0.02,
"currencyCode": "SEK"
}
]
}
]
}
],
"hasMore": false,
"nextCursor": null
}