Order a VPS
order_vpsOrder a VPS. product = plan slug from list_plans; os_id = an OS id from that plan's images. Optional hostname and ssh_key (public key — strongly recommended so you get key-based root login). Optional location: "de" (Germany) or "fi" (Finland) — omit it and we pick the location automatically; if the chosen country has no free capacity for that plan the call fails with 409 location_unavailable (nothing is charged) and available lists the countries that can take it. Optional period ("month" by default, or "year" for annual billing) or an explicit plan_id from list_plans plans[]; an active automatic offer (plans[].promo) is applied to the first invoice and the response then carries promo. Windows plans (windows-*) accept only the Windows Server 2022 image, ignore ssh_key, and are reached over RDP as Administrator (see get_vps_status → access); the licence is BYOL.
Branching on the response:
• paid_from_balance: true → the prepaid balance covered it; the server is provisioning. Poll get_vps_status until status is active and the VM is reachable.
• paid_from_balance: false → balance was insufficient; an unpaid invoice is returned. Call pay_invoice with invoice.id to get a crypto checkout_url, OR topup_balance then re-order. PROMO until 2026-10-31 23:59 Europe/Kyiv: -25% on ANNUAL billing, first year only, applied automatically (no code) to windows-medium ($171/yr), windows-small-ip ($252/yr) and windows-medium-ip ($324/yr); renewal at the regular annual price; windows-small not included — order with period="year". Requires: token + enough balance (else an unpaid invoice is returned). Typical errors: 409 location_unavailable (see available), 422 unknown product/os_id (see list_plans).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| os_id | Yes | ||
| period | No | ||
| plan_id | No | ||
| product | Yes | ||
| ssh_key | No | ||
| hostname | No | ||
| location | No | Optional server country: "de" (Germany) or "fi" (Finland). Omit for automatic placement. |