Build with the SilentHosts API.
A REST API over HTTPS, JSON in / JSON out, bearer-token authentication. Provision VPS, manage services, list plans, ingest webhooks. Designed to be ergonomic from a Bash one-liner or any modern HTTP client.
Base URL
https://api.silenthosts.io/v1Quickstart
Provision your first VPS via API in 4 lines of curl.
Generate an API key in your client panel
Open /client/settings → API keys → Generate. Keys are shown once; store securely.
List available plans
curl https://api.silenthosts.io/v1/plans \
-H "Authorization: Bearer sh_live_••••••••"Provision a VPS-2 in Iceland
curl -X POST https://api.silenthosts.io/v1/services \
-H "Authorization: Bearer sh_live_••••••••" \
-H "Content-Type: application/json" \
-d '{
"plan": "vps-2",
"location": "iceland",
"billing_cycle": "monthly",
"addons": ["ddos-premium", "backup"],
"payment_method": "crypto"
}'Pay the invoice and receive credentials by webhook
{
"id": "srv_3a8f2d6e",
"status": "pending_payment",
"invoice": "inv_91f7cb01",
"pay_url": "https://oxapay.com/pay/12345",
"webhook_event": "service.provisioned"
}Authentication
Bearer tokens scoped per key. No OAuth, no JWT shenanigans, no signing dance.
API key format
Keys are 48-character random strings prefixed with sh_live_ for production and sh_test_ for sandbox. Pass via Authorization: Bearer ... header.
Scopes
Each key carries one or more scopes: services:read, services:write, billing:read, billing:write, tickets:write. Generate least-privileged keys for CI / Terraform / scripts.
What happens at scale
Default limit: 60 requests/minute per API key on read endpoints, 20/minute on write endpoints. Burst capacity is 2× steady-state.
Headers on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. When you hit the limit, the API returns 429 Too Many Requests with a Retry-After header indicating seconds to wait.
Higher limits are available for verified production use cases — reseller dashboards, CI fleets, monitoring tooling. Email sales@silenthosts.io with your expected RPS and the rationale.
Error envelope
Every non-2xx response has the same shape so client libraries can branch cleanly.
{
"error": {
"code": "service_not_found",
"message": "Service srv_3a8f2d6e does not exist or is not owned by this account.",
"param": "id",
"request_id": "req_8c9c11ef"
}
}Common codes: invalid_request, authentication_failed, forbidden, not_found, rate_limit_exceeded, insufficient_funds, plan_unavailable, location_unavailable, internal_error. Always include request_id when contacting support — it's the fastest way for support@silenthosts.io to find the matching log entry.
Services API
Provision, list, update, cancel, reboot, snapshot, migrate.
services
/v1/servicesList all services owned by the authenticated account.
/v1/servicesProvision a new VPS / RDP / dedicated server.
/v1/services/{id}Retrieve a single service by id.
/v1/services/{id}Update a service (rename, change autoreneval, attach addons).
/v1/services/{id}Cancel and tear down a service. Refund applies if within the 7-day window.
/v1/services/{id}/rebootHard or soft reboot a running service.
/v1/services/{id}/snapshotCreate a manual snapshot. Returns the snapshot id.
/v1/services/{id}/migrateMigrate a service to a different jurisdiction. Live-migrate where supported.
Locations API
Read-only — list the 8 jurisdictions, get capacity per location.
/v1/locationsList the 8 datacenter jurisdictions and their current capacity.
/v1/locations/{slug}Detail for one jurisdiction: legal posture, carriers, certifications, real-time ping from your IP.
Plans API
The full 35-plan catalog. Pricing, specs, and addon compatibility.
/v1/plansList all 35 plans across the 11 product categories.
/v1/plans/{slug}Detail for one plan: full specs, pricing per cycle, per-location availability, recommended addons.
/v1/categoriesList the 11 product categories with summary metadata.
Billing & invoices API
List invoices, retrieve PDFs, pay open invoices via Card2Crypto or OxaPay.
/v1/invoicesList all invoices for the authenticated account.
/v1/invoices/{id}Retrieve a single invoice with line items.
/v1/invoices/{id}/payInitiate payment for an open invoice. Returns a payment URL (Card2Crypto or OxaPay).
/v1/invoices/{id}/pdfDownload the invoice PDF for accounting.
Subscribe to lifecycle events
Configure a webhook URL once; receive HMAC-SHA256-signed POSTs for every relevant event.
Verifying signatures
Every webhook carries an X-SilentHosts-Signature header — HMAC-SHA256 of the raw request body using your webhook secret. Verify before processing.
import crypto from "node:crypto";
function verify(rawBody, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected, "hex"),
Buffer.from(signature, "hex"),
);
}Events
service.provisionedFires when a service finishes provisioning and credentials are sent.
service.suspendedFires on suspension (non-payment, AUP violation, customer request).
service.cancelledFires on hard cancellation. Service is torn down within 60 seconds.
invoice.createdFires when a new invoice is generated (typically on renewal).
invoice.paidFires on successful payment. Includes payment_method (card / crypto) and txid.
invoice.failedFires when a payment attempt fails or expires.
ticket.repliedFires when a support team member replies to one of your tickets.
incident.publishedFires when a status-page incident affecting your services is published.
SDKs and CLI
The API is plain HTTP — any client works. We also publish a Node SDK, a Go SDK, and a hostctl CLI.
@silenthosts/sdk (Node.js)
npm install @silenthosts/sdk · TypeScript-first, fully typed responses, Zod-validated payloads.
silenthosts-go (Go)
go get github.com/silenthosts/go · Context-aware, generics-typed, no extra dependencies.
hostctl (CLI)
brew install silenthosts/tap/hostctl · Deploy, inspect, reboot, migrate from your terminal.
Terraform provider — coming Q3 2026
The official silenthosts/silenthosts Terraform provider is on the roadmap. Sign up for early access.
Public beta
The API is in public beta as of Q2 2026
Endpoints documented above are stable and won't break within the v1 namespace. Breaking changes ship as v2 with a minimum 6-month deprecation window. Found a bug? Open a ticket from /client/tickets/new with the request_id from the failing response.
Deploy your first offshore server in 60 seconds.
Anonymous signup. Bitcoin & Monero accepted. Provisioned across 8 jurisdictions.
No credit card required · 7-day money-back guarantee