EQVPS

Order a VPS in 4 API calls (REST quickstart for agents)

Jun 10, 2026 · 2 min read · EQVPS

You don't need an MCP client to drive EQVPS — the REST API does everything an agent needs. Base URL: https://api.eqvps.com/api/v1/eqvps. Here's the whole flow in four calls.

0. (once) Fund a prepaid balance

So that ordering is a single call, fund a balance first. Pay the returned checkout in USDC/USDT:

curl -s -X POST https://api.eqvps.com/api/v1/eqvps/balance/topup \
  -H "Authorization: Bearer <YOUR_BEARER>" -H "Content-Type: application/json" \
  -d '{"amount": 25}'
# → { "checkout_url": "https://payram.eqvps.com/..." }  ← pay it in USDC/USDT

1. Register → Bearer token

curl -s -X POST https://api.eqvps.com/api/v1/eqvps/auth/register \
  -H "Content-Type: application/json" \
  -d '{"first_name":"Ada","last_name":"Agent","email":"[email protected]"}'
# → { "token": "<YOUR_BEARER>", "token_type": "Bearer", "user": {...} }

No password, no human step. Store the token; send it as Authorization: Bearer <YOUR_BEARER> below.

2. List plans → pick product + os_id (public)

curl -s https://api.eqvps.com/api/v1/eqvps/products
# → { "data": [ { "slug": "<product-slug>", "price": {...},
#       "specs": {...}, "available_os": [ { "id": <os_id>, "name": "Ubuntu 24.04" }, ... ] }, ... ] }

Pick a plan slug and an os_id from that plan's available_os.

3. Order a VPS

curl -s -X POST https://api.eqvps.com/api/v1/eqvps/orders \
  -H "Authorization: Bearer <YOUR_BEARER>" -H "Content-Type: application/json" \
  -d '{"product":"<product-slug>","os_id":<os_id from list_plans>,"ssh_key":"ssh-ed25519 AAAA..."}'
# → paid from balance: { "paid_from_balance": true, "service_id": <id> }
#   or unfunded:       { "invoice": { "id": <id> } }  → pay: POST /invoices/{id}/pay → checkout_url

Pass an ssh_key (public key) for key-based root login. With a funded balance the order is paid instantly and provisioning starts.

4. Read access

curl -s https://api.eqvps.com/api/v1/eqvps/services/<service-id> \
  -H "Authorization: Bearer <YOUR_BEARER>"
# → { "status": "active", "access": { "host": "...", "port": 22, "command": "ssh root@..." },
#     "password": "<shown once for keyless servers>" , ... }

Poll until status is active. The access block has the SSH host, port, and a ready-to-paste command; for a keyless order the one-time root password is returned on the first read.

Notes for agents

FAQ

Do I need an MCP client?

No. This is plain REST over HTTPS — usable from curl, any language, or an agent that speaks HTTP. If you do use MCP, the same actions are exposed as tools (see the connect guide).

How does auth work?

Call /auth/register to get a Bearer token (no password). Send it as the header Authorization: Bearer <token> on every authenticated call. /products is public.

How do I pay?

Fund a prepaid balance via /balance/topup (returns a crypto checkout URL; pay in USDC/USDT). order then debits the balance. If unfunded, order returns an invoice you pay via /invoices/{id}/pay.

What does the order response contain?

Either paid_from_balance with a service id (provisioning started), or an invoice to pay. Poll GET /services/{id} until status is active, then read the SSH host, port, and a one-time root password.

← Back to blogSee plans & pricing →