Dedicated servers
The public dedicated catalog, orders and post-fulfillment actions.
/dedicatedPublic, unauthenticated: list published bare-metal dedicated server listings. Fully white-label — provider identity never appears here. Addon key/groupKey/requiresKey are opaque per-listing tokens; echo the exact key back, don't construct your own.
[
{
"id": "b3f1...-...-...-...",
"displayName": "12 Core Server - AMD Ryzen 5900X",
"locationLabel": "Miami, FL, USA",
"specs": { "cpuModel": "AMD Ryzen 5900X @ 3.7GHz", "cpuCores": 12, "cpuThreads": 24, "ramGb": 64, "disks": [{ "type": "nvme", "capacityGb": 1000, "count": 2 }], "bandwidthGbps": 1 },
"addons": [{ "key": "2ced763baa757a92174b", "label": "5TB Bandwidth @ 1 Gbps", "kind": "choice", "groupKey": "…", "providerPriceUsd": 0, "sellPriceUsd": 0 }],
"monthlyPriceUsd": 147.15,
"available": true
}
]/dedicated/ordersList or place dedicated server orders. Ordering charges the first monthly cycle from your wallet immediately; fulfillment is manual (admin-driven against the wholesale provider) and can take up to 48 hours. GET /dedicated/orders/{id} returns one order — status moves queued → active → past_due → suspended, or cancelled. Recurring billing charges the same wallet once per cycle; a failed charge gets a 7-day grace period before suspension.
{
"stockId": "b3f1...-...-...-...",
"addonKeys": ["2ced763baa757a92174b"]
}
→ { "id": "5bde...-...", "status": "queued", "price": { "monthly": 147.15 } }{
"id": "5bde...-...",
"status": "active",
"ip": "203.0.113.10",
"credentials": null,
"nextChargeAt": "2026-10-03T20:53:07Z",
"capabilities": { "restart": true, "rescue": true, "reinstall": true }
}Insufficient wallet balance → 402 insufficient_balance. Listing bought by someone else first → 409 no_longer_available. Bad or missing addon selection → 400 invalid_request.
/dedicated/orders/{id}/actionOnce an order is active and fulfilled (check capabilities), POST .../action with { "action": "restart" | "rescue" | "reinstall" } to power-cycle, enter rescue mode, or reinstall the OS. reinstall needs dist (an entry from GET .../reinstall-options' distOptions/osOptions) or, when its flow is os_and_partitioning, both operatingSystemId and partitioningSchemeId — fetch those first from GET .../reinstall-options and GET .../partitioning-schemes?operatingSystemId={id}.
{ "action": "reinstall", "dist": "ubuntu-24.04" }
→ { "ok": true }{ "flow": "os_only", "distOptions": ["ubuntu-24.04", "debian-12"] }Not active, not fulfilled yet, or unsupported by this listing's provider → 409 action_not_allowed.