OrbitHost API · v1
Reseller API reference
Order and manage VPS, Windows RDP and game servers programmatically — with your reseller discount applied to everything.
Introduction
The OrbitHost Reseller API lets you manage your whole fleet programmatically: order VPS, Windows RDP and game servers at your reseller discount, control power state, reinstall the OS and track every order — all from your account balance.
Base URL https://api.orbithost.net/v1
Auth Bearer key → Authorization: Bearer oh_live_...
Format JSON only
Rate limit 60 requests / minute / key
Sandbox none — orders are real and charged from your balanceAuthentication
Every request must carry your secret API key in the Authorization header. Keys are generated per account in Client Area → Reseller and can be rotated at any time — rotating instantly revokes the previous key. Treat your key like a password: it spends your balance.
curl https://api.orbithost.net/v1/me \
-H "Authorization: Bearer oh_live_xxxxxxxxxxxxxxxxxxxx"Errors
Non-200 responses always return a JSON body containing an error message that is safe to show to your own customers.
{
"error": "Not enough account balance. You have 12, need 40."
}
Status codes
400 Bad request invalid plan, region or config
401 Unauthorized missing or invalid API key
402 Payment required insufficient USDT balance
403 Forbidden not a reseller, or account suspended
404 Not found unknown order or service id
429 Rate limited slow down (60 req/min)
5xx Server error provisioning issues auto-refundGet account
GET/meReturns your reseller profile: balance, currency and discount percentage.
{
"id": 42,
"username": "acme",
"displayName": "Acme Hosting",
"email": "acme@example.com",
"balance": 250,
"currency": "USDT",
"discount_percent": 20
}List plans & pricing
GET/plansEvery orderable product with list price and your discounted price already applied. Use the planId values exactly as returned when placing orders.
{
"currency": "USDT",
"discount_percent": 20,
"products": {
"vps": [
{
"product": "vps",
"slug": "core",
"name": "Core",
"memory_mb": 8192,
"disk_mb": 102400,
"cpu_cores": 4,
"featured": true,
"cheapest": {
"planId": "vps-nano-ryzen",
"list_usd": 6,
"usd": 4.8,
"coins": 5
},
"variants": { "...": "one entry per CPU type" }
}
],
"rdp": [ { "...": "same shape as vps" } ],
"game": [
{
"game": "samp",
"name": "SAMP · 2GB",
"planId": "custom",
"memory_mb": 2048,
"disk_mb": 10240,
"cpu": 100,
"slots": 50,
"list_usd": 4.0,
"usd": 3.4,
"coins": 4
}
]
}
}Create an order
POST/ordersPlace an order paid from your USDT balance at your reseller discount. VPS/RDP provision automatically in under 60 seconds; failed provisioning is refunded automatically.
// Cloud VPS
curl -X POST https://api.orbithost.net/v1/orders \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{
"product": "vps",
"planId": "vps-nano-ryzen",
"region": "eu-west",
"serverName": "acme-web-01"
}'
// Windows RDP
-d '{ "product": "rdp", "planId": "rdp-pro-ryzen", "region": "eu-west" }'
// Game server — preset tiers via memory/slots config
-d '{
"game": "samp",
"region": "eu-west",
"memory_mb": 2048,
"disk_mb": 10240,
"cpu": 100,
"slots": 50,
"serverName": "my-server"
}'{
"order": {
"id": 918,
"status": "paid",
"amount_coins": 5,
"amount_usd": 4.8,
"server_name": "acme-web-01"
},
"server": { "id": 402, "name": "acme-web-01" },
"fulfillment": "ryze",
"pricing": {
"list_coins": 6,
"charged": 5,
"saved": 1,
"discount_percent": 20
},
"balance": 245,
"credentials": null
}List orders
GET/ordersReturns every order on the account, newest first.
{
"orders": [ { "id": 918, "status": "paid", "...": "..." } ],
"count": 1
}Get an order
GET/orders/:idFetch a single order by id.
{ "order": { "id": 918, "status": "paid", "...": "..." } }List services
GET/servicesAll active services on the account — VPS, RDP and game servers — including their current status and OS.
{
"services": [
{
"id": 402,
"name": "acme-web-01",
"type": "vps",
"status": "online",
"os": "ubuntu-2404-noble",
"spec": { "memory_mb": 8192, "disk_mb": 102400, "cpu_percent": 200 },
"region": "eu-west",
"created_at": "2026-08-22T12:00:00.000Z"
},
{
"id": 403,
"name": "my-server",
"type": "game",
"game": "samp",
"status": "active",
"connect": "nl-1.orbithost.net:7777"
}
],
"count": 2
}Get service
GET/services/:idFetch one service. For VPS/RDP a live object is included with real-time CPU, RAM, disk, uptime and power state from the provider.
{
"service": { "id": 402, "type": "vps", "..."": "..." },
"live": {
"status": "running",
"uptime": 862400,
"usage": {
"cpu": { "percentage": 12.4 },
"mem": { "percentage": 41.2, "used_mb": 3376, "total_mb": 8192 },
"disk": { "percentage": 18.9, "used_gb": 19.4, "total_gb": 100 }
}
}
}Power actions
POST/services/:id/powerStart, stop or restart a VPS/RDP. The action is executed on the provider immediately; poll GET /services/:id for the resulting live state.
curl -X POST https://api.orbithost.net/v1/services/402/power \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{ "action": "restart" }'{ "ok": true, "data": { "action": "restart", "..."": "..." } }Reinstall OS
POST/services/:id/reinstallReinstall the operating system. All data is destroyed. On VPS pick any Linux image; RDP reinstalls Windows images. When the provider generates a new root password it is returned once — store it immediately.
curl -X POST https://api.orbithost.net/v1/services/402/reinstall \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{ "os": "debian-12-bookworm" }'{
"ok": true,
"data": { "os": "debian-12-bookworm", "password": "Hx9a2..." },
"note": "Store the returned password now — it is shown once."
}Live status
GET/services/:id/statusReal-time power state, uptime and resource usage (CPU / RAM / disk) straight from the node.
{
"status": {
"status": "running",
"uptime": 862400,
"usage": {
"cpu": { "percentage": 12.4 },
"mem": { "percentage": 41.2 },
"disk": { "percentage": 18.9 }
}
}
}Get service config
GET/services/:id/configRaw provider configuration for the VM — CPU, RAM, disk, network, image and install state.
{ "config": { "cores": 4, "memory": 8192, "disk": 102400 } }Hardware info
GET/services/:id/hardwareCPU model, core count, memory and storage as reported by the physical node.
{ "hardware": { "cpu": "AMD Ryzen 9 9950X", "cores": 4, "memory_gb": 8 } }Reset root password
POST/services/:id/passwordSet a new root/administrator password. Omit password to let the provider generate one — it is returned once in the response.
-d '{ "password": "super-secret-42" }'{ "ok": true, "password": "generated-or-provided" }VNC console URL
GET/services/:id/vncReturns a short-lived VNC/noVNC connection for out-of-band access when SSH or RDP is unreachable.
{ "vnc": { "url": "wss://vnc.eu-west.orbithost.net/...", "expires_in": 120 } }Renew a service
POST/services/:id/renewExtend a VPS/RDP lease by 30, 90 or 365 days. Charged from your balance at your reseller discount. Provider rejections are refunded automatically.
curl -X POST https://api.orbithost.net/v1/services/:id/renew \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{ "duration": 90 }'{ "ok": true, "charged": 27.54, "discount_percent": 20, "data": { "new_expire_date": "2026-11-20" } }Cancel a service
POST/services/:id/cancelCancels the VM at the provider immediately. Any eligible refund is credited to your balance per policy (75% within 7 days, 50% within 15, else 15%).
curl -X POST https://api.orbithost.net/v1/services/:id/cancel \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{}'{ "ok": true, "provider": { }, "note": "Refund (if eligible) was credited to your balance by staff policy." }List OS images
GET/catalog/osImages available for (re)installs — Ubuntu, Debian, Rocky, Windows Server and more.
curl https://api.orbithost.net/v1/catalog/os \
-H "Authorization: Bearer $ORBIT_KEY"{ "os": [ { "id": "ubuntu-2404-noble", "name": "Ubuntu 24.04" }, { "id": "debian-12-bookworm", "name": "Debian 12" } ], "configured": true }List host nodes
GET/catalog/hostsPhysical nodes behind each region — useful to check capacity before ordering.
{ "hosts": [ { "id": "fra-1", "region": "eu-west", "status": "online" } ] }Raw provider prices
GET/catalog/pricesLive provider price matrix. Your discounted pricing is always available via GET /plans.
{ "...": "provider price matrix", "configured": true }List firewall rules
GET/services/:id/firewallEvery firewall rule with its position, action, protocol, port range and enabled flag. Order matters — first match wins.
{
"firewall": {
"enabled": true,
"rules": [
{ "pos": 0, "name": "ssh", "action": "accept", "protocol": "tcp", "port": "22", "enabled": true },
{ "pos": 1, "name": "web", "action": "accept", "protocol": "tcp", "port": "80,443", "enabled": true }
]
}
}Create firewall rule
POST/services/:id/firewall/rulesAppends a rule to the end of the chain.
curl -X POST https://api.orbithost.net/v1/services/:id/firewall/rules \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule": {
"name": "allow-http",
"action": "accept",
"protocol": "tcp",
"port": "80",
"source": "0.0.0.0/0"
}
}'{ "ok": true, "data": { "pos": 2, "name": "allow-http" } }Update a firewall rule
PUT/services/:id/firewall/rulesReplace the rule at the given position.
-d '{ "pos": 1, "rule": { "name": "secure-web", "protocol": "tcp", "port": "443", "action": "accept" } }'{ "ok": true, "data": { "pos": 1, "name": "secure-web" } }Enable / disable a rule
PATCH/services/:id/firewall/rules/toggleFlip a rule on or off without deleting it.
-d '{ "pos": 1, "enable": false }'{ "ok": true, "data": { "pos": 1, "enabled": false } }Move a rule
PUT/services/:id/firewall/rules/moveReorder a rule — e.g. move a block rule above an accept rule.
-d '{ "from": 2, "to": 0 }'{ "ok": true }Delete a firewall rule
DELETE/services/:id/firewall/rulesRemove a rule by position (JSON body or ?pos= query). Remaining rules shift up.
-d '{ "pos": 1 }'{ "ok": true }Firewall options
PUT/services/:id/firewall/optionsEnable/disable the whole firewall or change default policies in one call.
-d '{ "enabled": true }'{ "ok": true, "data": { "enabled": true } }DDoS overview, rules & attacks
GET/services/:id/ddosProtection mode, layer-4 filter rules and recent attack activity for the service. Always-on mitigation is included with every server.
{
"ddos": { "protection": "standard", "auto_mitigation": true },
"rules": [ { "id": "r1", "protocol": "udp", "ports": "19132", "action": "allow" } ]
}Delete a DDoS port rule
DELETE/services/:id/ddos/rulesRemove one custom layer-4 port filter rule by id.
-d '{ "rule_id": "r1" }'{ "ok": true }Create attack webhook
POST/services/:id/ddos/webhooksGet notified when an attack starts/ends for this service — perfect for auto-scaling or alerting scripts.
curl -X POST https://api.orbithost.net/v1/services/:id/ddos/webhooks \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "ops-alerts",
"url": "https://hooks.example.com/orbit-ddos",
"secret": "whsec_..."
}'{ "ok": true, "data": { "id": "wh_1", "name": "ops-alerts" } }Update attack webhook
PUT/services/:id/ddos/webhooksChange the target URL, name or secret of an existing webhook.
-d '{ "id": "wh_1", "url": "https://hooks.example.com/new" }'{ "ok": true, "data": { "id": "wh_1" } }Delete attack webhook
DELETE/services/:id/ddos/webhooksRemove a webhook by id (`?id=` or JSON body).
-d '{ "id": "wh_1" }'{ "ok": true }Enable / disable a webhook
PATCH/services/:id/ddos/webhooks/togglePause deliveries without deleting the webhook configuration.
-d '{ "id": "wh_1", "enable": false }'{ "ok": true, "data": { "id": "wh_1", "enabled": false } }Send test delivery
POST/services/:id/ddos/webhooks/testFire a signed test payload at your webhook endpoint to verify your receiver.
-d '{ "id": "wh_1" }'{ "ok": true, "data": { "delivered": true, "status": 200 } }List IP addresses
GET/services/:id/ipsAll IPv4/IPv6 addresses assigned to the service with their PTR records and main-flag.
{
"ips": [
{ "ip": "45.x.x.x", "type": "ipv4", "main": true, "ptr": "acme-web-01.orbithost.net" }
]
}Set reverse DNS (PTR)
POST/services/:id/ptrUpdate the reverse DNS record for one of the service's IPs.
curl -X POST https://api.orbithost.net/v1/services/:id/ptr \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{ "ip": "45.x.x.x", "ptr": "acme-web-01.example.com" }'{ "ok": true, "data": { "ptr": "acme-web-01.example.com" } }Live status
GET/services/:id/statusReal-time power state, uptime and resource usage (CPU / RAM / disk) straight from the node.
{
"status": {
"status": "running",
"uptime": 862400,
"usage": {
"cpu": { "percentage": 12.4 },
"mem": { "percentage": 41.2 },
"disk": { "percentage": 18.9 }
}
}
}Get service config
GET/services/:id/configRaw provider configuration for the VM — CPU, RAM, disk, network, image and install state.
{ "config": { "cores": 4, "memory": 8192, "disk": 102400 } }Hardware info
GET/services/:id/hardwareCPU model, core count, memory and storage as reported by the physical node.
{ "hardware": { "cpu": "AMD Ryzen 9 9950X", "cores": 4, "memory_gb": 8 } }Reset root password
POST/services/:id/passwordSet a new root/administrator password. Omit password to let the provider generate one — it is returned once in the response.
-d '{ "password": "super-secret-42" }'{ "ok": true, "password": "generated-or-provided" }VNC console URL
GET/services/:id/vncShort-lived VNC/noVNC connection for out-of-band access when SSH or RDP is unreachable.
{ "vnc": { "url": "wss://vnc.eu-west.orbithost.net/...", "expires_in": 120 } }Renew a service
POST/services/:id/renewExtend a VPS/RDP lease by 30, 90 or 365 days. Charged from your balance at your reseller discount. Provider rejections are refunded automatically.
curl -X POST https://api.orbithost.net/v1/services/:id/renew \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{ "duration": 90 }'{ "ok": true, "charged": 27.54, "discount_percent": 20, "data": { "new_expire_date": "2026-11-20" } }Cancel a service
POST/services/:id/cancelCancels the VM at the provider immediately. Any eligible refund is credited to your balance per policy (75% within 7 days, 50% within 15, else 15%).
curl -X POST https://api.orbithost.net/v1/services/:id/cancel \
-H "Authorization: Bearer $ORBIT_KEY" \
-H "Content-Type: application/json" \
-d '{}'{ "ok": true, "provider": {}, "note": "Refund (if eligible) was credited to your balance by staff policy." }List OS images
GET/catalog/osImages available for (re)installs — Ubuntu, Debian, Rocky, Windows Server and more.
curl https://api.orbithost.net/v1/catalog/os \
-H "Authorization: Bearer $ORBIT_KEY"{ "os": [ { "id": "ubuntu-2404-noble", "name": "Ubuntu 24.04" }, { "id": "debian-12-bookworm", "name": "Debian 12" } ], "configured": true }List host nodes
GET/catalog/hostsPhysical nodes behind each region — check capacity before ordering.
{ "hosts": [ { "id": "fra-1", "region": "eu-west", "status": "online" } ] }Raw provider prices
GET/catalog/pricesLive provider price matrix. Your discounted pricing is always available via GET /plans.
{ "...": "provider price matrix", "configured": true }