API Documentation
PAT API v1 · full self-service API
The InstantNode Personal Access Token (PAT) API is the single API surface for your account: read your services, control power, provision servers, manage backups and firewall rules, read billing history and maintain your billing profile - everything automation needs. It replaces the former reseller API (/api/resell now returns 410 Gone).
Authentication
Create a token in the panel under Profile → API. Send it as a Bearer token with every request:
Authorization: Bearer inpat_xxxxxxxxxxxxxxxxxxxx
Base URL: https://instantnode.eu/api/pat. Treat tokens like passwords - anyone holding one can see and restart your services. Tokens can be revoked in the panel at any time.
GET /v1/services
Lists all your services (vServers, game servers, Discord bots, webspaces) with their current status.
curl -H "Authorization: Bearer inpat_..." \
https://instantnode.eu/api/pat/v1/services
Response (shortened):
{
"ok": true,
"containers": [{ "id": "…", "hostname": "web01", "displayName": null,
"status": "running", "virtType": "kvm", "ipv4": "94.249.230.x" }],
"gameservers": [{ "id": "…", "name": "Minecraft", "game": "minecraft",
"status": "running", "port": 25565 }],
"bots": [{ "id": "…", "name": "MyBot", "status": "running", "runtime": "nodejs" }],
"webspaces": [{ "id": "…", "label": "my-site", "status": "active" }]
}
POST /v1/containers/{id}/{action}
Power control for your vServers. action is one of start, stop, restart.
curl -X POST -H "Authorization: Bearer inpat_..." \
https://instantnode.eu/api/pat/v1/containers/SERVER_ID/restart
POST /v1/gameservers/{id}/{action}
Power control for your game servers. Same actions: start, stop, restart.
curl -X POST -H "Authorization: Bearer inpat_..." \
https://instantnode.eu/api/pat/v1/gameservers/SERVER_ID/start
GET /v1/balance
Your current account balance - check before provisioning.
{ "ok": true, "balance": 42.5, "coins": 0 }
GET /v1/create-options
Valid presets and OS templates for provisioning. ?type=kvm|vds|windows-kvm|storage (default kvm). VDS plans come with dedicated, pinned CPU cores.
curl -H "Authorization: Bearer inpat_..." \
"https://instantnode.eu/api/pat/v1/create-options?type=kvm"
Returns presets (plan ids with specs/pricing) and templates (OS images - pass the template value when creating).
POST /v1/containers
Provision a KVM server. Uses the exact same pipeline, pricing and balance checks as the panel; the cost is charged to your InstantNode balance.
curl -X POST -H "Authorization: Bearer inpat_..." \
-H "Content-Type: application/json" \
-d '{ "virtType": "kvm", "preset": "loki", "template": "9034",
"hostname": "api-test-01", "password": "S3cure-Pass!" }' \
https://instantnode.eu/api/pat/v1/containers
Errors: 402 insufficient_balance (with required), 409 profile_incomplete (fill in billing details in the panel first), plus validation errors from the normal create flow.
GET /v1/containers/{id}
Detail incl. live power state - poll this after creating.
POST /v1/containers/{id}/auto-renew
Servers cannot be deleted - they always run until the end of the paid billing period. To cancel a server, disable auto-renew; it then expires automatically once the paid runtime is over. Re-enable any time before expiry to keep it.
curl -X POST -H "Authorization: Bearer inpat_..." \
-H "Content-Type: application/json" \
-d '{ "enabled": false }' \
https://instantnode.eu/api/pat/v1/containers/SERVER_ID/auto-renew
GET /v1/containers/{id}/backups
List backups (max 3 kept) plus the current schedule.
{ "ok": true,
"backups": [{ "volid": "local:backup/…", "name": "vzdump-qemu-…", "createdAt": "…", "size": "2.1 GB" }],
"schedule": { "enabled": true, "hour": 3, "keep": 3 } }
POST /v1/containers/{id}/backups/run
Start a manual backup now. One manual run per server per 30 minutes (429 backup_cooldown).
POST /v1/containers/{id}/backups/schedule
Set the daily backup schedule. Body: { "enabled": true, "hour": 0-23, "keep": 1-3 } - or { "enabled": false } to disable.
GET /v1/containers/{id}/firewall
List your server's firewall rules.
POST /v1/containers/{id}/firewall
Add a rule (max 50 per server). Body fields: type (in|out), action (ACCEPT|DROP|REJECT), optional proto (tcp|udp|icmp), dport (e.g. 80,443 or 8000:8100, requires proto), source (IPv4/CIDR).
curl -X POST -H "Authorization: Bearer inpat_..." \
-H "Content-Type: application/json" \
-d '{ "type": "in", "action": "ACCEPT", "proto": "tcp", "dport": "443" }' \
https://instantnode.eu/api/pat/v1/containers/SERVER_ID/firewall
DELETE /v1/containers/{id}/firewall/{pos}
Delete the rule at position pos (from the list endpoint).
POST /v1/bots/{id}/{action}
Power control for your Discord bots: start, stop, restart.
GET /v1/billing
Read-only billing overview: balance, invoices (last 200) and transactions (last 500). Top-ups and payments cannot be initiated via the API.
curl -H "Authorization: Bearer inpat_..." \
https://instantnode.eu/api/pat/v1/billing
GET /v1/profile · PATCH /v1/profile
Read your profile, update your billing address (billingName, billingAddressLine1/2, billingPostalCode, billingCity, billingState, billingCountry) and customAvatarUrl (https only). Username, e-mail and password can NOT be changed via the API.
GET /v1/email-preferences · PATCH /v1/email-preferences
Toggle notification e-mails. Boolean fields: loginAlerts, billingEmails, lowBalance.
Errors
Standard HTTP status codes with a JSON body:
401 { "ok": false, "error": "invalid_token" }
400 { "ok": false, "error": "invalid_action" } // action must be start|stop|restart
404 { "ok": false, "error": "not_found" } // not your service or unknown id
Scope & fair use
The PAT API covers the full self-service surface: read, power, provisioning, auto-renew, backups, firewall, billing (read) and profile. It is designed for Discord bots, integrations and automation scripts. Excessive polling may be rate-limited; once per 30 seconds per endpoint is plenty.
Deliberately not included (account-security boundaries): creating or deleting accounts, changing e-mail, username, password or two-factor settings, initiating payments or top-ups, file manager and console/VNC access, sharing management, and server deletion (servers always run to the end of the paid billing period; cancel by disabling auto-renew). These remain available only in the panel with a logged-in session.