Create a new order
Creates a new order and pays from account credit balance. The balance must cover the whole price, configurable options included; otherwise 409 INSUFFICIENT_BALANCE returns what is required, what is available and the top-up needed. Nothing is ordered or charged on any error.
The VPS is one configurable product. Choose its location, os, cpu_cores, memory_gb and disk_gb from GET /products/vps and leave product_id out; price the same body first with GET /products/vps/quote if you like. Every choice is checked against the product: an unknown or hidden location or OS, a size outside its range or not a whole number, a cycle the product does not sell, or raw config_options/custom_fields/domain on the VPS returns 400. A location with no server that can take the VPS right now returns 409 LOCATION_UNAVAILABLE before anything is charged.
Fixed plans (Tor Hosting, dedicated servers, e-mail) take their product_id from GET /products. Use GET /products/{id} to discover their config_options (e.g. number of email accounts) and custom_fields. Each option must belong to the product; the ones you leave out take the default the cart shows.
Repeats are not charged twice. An order identical to one placed in the last 24 hours — for the VPS, the same location, OS, sizes, app, cycle and, when given, hostname — returns that order instead of creating another. To order a second identical VPS, give it a different hostname.
max_amount refuses the order with 409 PRICE_ABOVE_LIMIT if it would cost more. The REST call answers 202 with status: provisioning once every check has passed, and the order is placed right after; poll GET /platform/servers or GET /account/services.
VPS orders default to a bare OS. If app is omitted, it defaults to none: no Impreza agent is installed, matching the clientarea cart. Choose app: "@agent" explicitly to install the agent at first boot, @agent-mcp for the agent with MCP setup, or a catalog app for first-boot installation. The customer can request the agent later through the AI with impreza_install_agent and confirmation. Bare VPS services appear in GET /account/services; only an installed, online agent registers under GET /platform/servers and can receive app deployments.
Examples
VPS — 2 vCPU, 4 GB, 40 GB in Romania on Ubuntu 24.04 (24.00 USD a month):
{
"billing_cycle": "monthly",
"location": "romania",
"os": "ubuntu-24.04",
"cpu_cores": 2,
"memory_gb": 4,
"disk_gb": 40,
"hostname": "web-1"
}
VPS that auto-installs an app on first boot (born deployable):
{
"billing_cycle": "annually",
"location": "switzerland",
"os": "debian-12",
"cpu_cores": 2,
"memory_gb": 4,
"disk_gb": 60,
"app": "memos"
}
Tor Hosting (a fixed plan):
{
"product_id": 682,
"billing_cycle": "monthly"
}
Titan Email with 5 accounts:
{
"product_id": 20,
"billing_cycle": "annually",
"domain": "example.com",
"config_options": { "8": "5" }
}
Google Workspace with 3 seats:
{
"product_id": 25,
"billing_cycle": "annually",
"domain": "example.com",
"config_options": { "12": "3" }
}
Request
- Base URL: https://api.imprezahost.com/v1
- URL: https://api.imprezahost.com/v1/orders
- Auth: API key in header X-API-Key and API key in header X-API-Secret
Request body
Example request
{
"billing_cycle": "monthly",
"cpu_cores": 2,
"memory_gb": 4,
"disk_gb": 40,
"hostname": "web-1",
"max_amount": "24.00",
"product_id": 682,
"domain": "myserver.com",
"config_options": {
"8": 5
},
"custom_fields": {
"1": "myserver.example.com"
},
"app": "@agent"
}Response
A repeat of an order already placed and paid — that order, not a new one (repeat is true)
Changes
No recorded changes to this operation across all 1 revision of this API.