VPSHaven API

Deploy and manage servers programmatically. Built for agents.

Hand your AI an API key and this page. Too lazy to RDP in? Tell your agent (Claude, etc.) to host your site or run a job — it can create servers, fetch connection details, and operate them through this API.

Authentication

Create a key in your dashboard (API tab). Send it as a bearer token on every request:

Authorization: Bearer vph-xxxxxxxxxxxxxxxxxxxx

Base URL: https://vpshaven.xyz/api/v1

Endpoints

GET/catalog— list plans, OS images, regions
GET/servers— list your servers
POST/servers— deploy a server {plan, os, region, windows?}
GET/servers/{id}— details + connection credentials
PATCH/servers/{id}— {action: reboot|stop|start|reinstall}
DELETE/servers/{id}— destroy

Deploy a server

Pick a plan id and os id from /catalog, then:

curl -X POST https://vpshaven.xyz/api/v1/servers \
  -H "Authorization: Bearer $VPSHAVEN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plan":"cloud-standard","os":2284,"region":"ams","provider":"stripe"}'

# -> { "status":"awaiting_payment", "checkout_url":"https://...", "priceCents":800 }
# Open checkout_url to pay. Once paid, the server provisions automatically —
# poll GET /servers until it appears with status "active".

Get connection details

curl https://vpshaven.xyz/api/v1/servers/<id> \
  -H "Authorization: Bearer $VPSHAVEN_KEY"

# -> { "server": { ..., "connection": {
#       "user":"root", "password":"...", "ssh":"ssh root@1.2.3.4" } } }

Manage

# reboot
curl -X PATCH https://vpshaven.xyz/api/v1/servers/<id> \
  -H "Authorization: Bearer $VPSHAVEN_KEY" \
  -H "Content-Type: application/json" -d '{"action":"reboot"}'

# destroy
curl -X DELETE https://vpshaven.xyz/api/v1/servers/<id> \
  -H "Authorization: Bearer $VPSHAVEN_KEY"

Notes

You pay per server — deploying returns a checkout_url for that server's first month (crypto or card). The server provisions automatically once it's paid; poll GET /servers/{id} until status is active, then read its connection details. Orders over $500/mo are crypto-only. Keys are scoped to your account; revoke any key anytime from the dashboard.