Client API (v1)
Programmatic access to manage your VPS/VDS services — power control and firewall, scoped to your own account.
Programmatic access to the VPS/VDS services in your Solume account — built for resellers and automation. Every request is scoped to your own account: you can only see and control services that belong to you, never anyone else's.
Authentication
Every request must include your API key as a Bearer token:
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxGenerate a key from your dashboard under Account → API Keys. The full key is shown to you only once, right after you create it — copy it somewhere safe. Solume never stores it in plain text and can't show it to you again; if you lose it, revoke it and generate a new one.
IP allowlist (required — read this first)
For security, an API key only works from IP addresses that Solume staff has explicitly authorized for that specific key. A brand-new key rejects every single request until at least one IP has been authorized — this is intentional, not a bug.
To authorize an IP:
- Open a support ticket from your dashboard.
- Ask to authorize your IP address(es) for your API key.
- Include the exact IP address(es) you'll call the API from, and the name of the key (shown in Account → API Keys).
A staff member will link the IP(s) to your key. Requests from a non-authorized IP always get 403 Forbidden, even with an otherwise valid key.
Base URL
https://api.solumecore.com/v1Rate limits
Each group of actions (reading, power control, firewall) has its own limit. Current limit and remaining quota are returned on every response as x-ratelimit-limit / x-ratelimit-remaining headers. Going over a limit returns 429 Too Many Requests.
Errors
Errors always come back as:
{ "error": "human-readable message" }with a matching HTTP status: 400 (bad input), 403 (not your service, or IP not authorized), 404 (not found), 429 (rate limited), 502 (upstream/infrastructure problem — safe to retry).
Endpoints
List your services
GET /v1/servicesReturns an array of the services that belong to your account: id, public code (e.g. vps-1000), hostname, state, plan, primary IP.
Get one service
GET /v1/services/:id:id accepts either the internal id or the public code shown in your dashboard (e.g. vps-1000).
Power control
POST /v1/services/:id/power/:action:action is one of start, stop, restart.
Firewall — read current rules
GET /v1/services/:id/firewallReturns the full firewall state for that service: geo-blocking, ASN blocks, whitelist, ports, protections, ban list, recent attacks.
Firewall — apply a rule
POST /v1/services/:id/firewall/:feature:feature and the matching JSON body:
| feature | body |
|---|---|
geoblock |
{ "country": "US" } |
srcwl |
{ "cidr": "1.2.3.4/32" } |
asn-block |
{ "asn": "4837" } |
tcp-allow-perdst / udp-allow-perdst / syn-gate |
{ "port": 25565 } |
ports-fivem / ports-rdp / ports-ssh |
{ "port": 25565 } |
rdp-filter / ssh-filter / udp-strict |
{ "enabled": true } |
geoblock-policy |
{ "policy": 0 } (0 = blacklist, 1 = whitelist) |
filter-mode |
{ "mode": "filter" } (or "drop") |
blacklist |
{ "src_addr": "5.6.7.8" } |
Firewall — remove a rule
DELETE /v1/services/:id/firewall/:featureSame body shape as the matching POST (some features don't support removal — see the response message).
Example
curl -X POST https://api.solumecore.com/v1/services/vps-1000/power/restart \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx"curl -X POST https://api.solumecore.com/v1/services/vps-1000/firewall/geoblock \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"country":"CN"}'Support
Questions, or need to authorize a new IP for your key? Open a support ticket from your dashboard.