Unsuspend a tenant
Reverse a suspend — flip the tenant back to active and replay its captured state, republishing projects, rebinding domains, and resuming managed cloud.
https://api.swarmz.net/functions/v1/platform-unsuspendReverses a suspend. The status is flipped back to active, then the captured prior state is replayed: previously-published projects are republished, custom domains are rebound, and managed cloud is resumed. Preview pods are not woken here — they wake on the next SSO.
Address the tenant by tenant_id or external_ref — supply exactly one.
Parameters
Prop
Type
Request
curl -X POST https://api.swarmz.net/functions/v1/platform-unsuspend \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "external_ref": "whmcs:1234" }'const res = await fetch('https://api.swarmz.net/functions/v1/platform-unsuspend', {
method: 'POST',
headers: {
Authorization: 'Bearer sk_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({ external_ref: 'whmcs:1234' }),
});
const data = await res.json();import requests
res = requests.post(
"https://api.swarmz.net/functions/v1/platform-unsuspend",
headers={"Authorization": "Bearer sk_live_..."},
json={"external_ref": "whmcs:1234"},
)
data = res.json()Response
A fresh unsuspend returns the restore report:
{
"ok": true,
"status": "active",
"report": {
"restoredProjects": [],
"reboundDomains": [],
"resumedCloud": [],
"errors": []
}
}If the tenant is already active, the call short-circuits:
{ "ok": true, "status": "active", "already": true }Errors
| Status | error | reason | When |
|---|---|---|---|
| 400 | missing_fields | tenant_id or external_ref required | Neither identifier supplied |
| 401 | unauthorized | — | See Authentication |
| 404 | tenant_not_found | — | No tenant matched the identifier under your account |
| 405 | method_not_allowed | — | Anything other than POST |
| 410 | terminated | — | The tenant has been terminated and cannot be unsuspended |
| 429 | rate_limited | per_key / per_ip | Rate limit hit — see Rate limits |
| 500 | unsuspend_failed | RPC message | Unsuspend failed server-side; safe to retry |
Idempotency
Unsuspend is idempotent by state. An already-active tenant returns already: true. See Idempotency.
Notes
Preview pods wake on the next SSO
Unsuspend restores published projects, domains, and cloud, but it does not wake
preview pods — those resume on the tenant's next SSO. A terminated
tenant cannot be unsuspended; the call returns 410 terminated.
This endpoint is limited to 60 requests/min per key and 120/min per IP. See Rate limits.
Suspend a tenant
Reversibly pause a tenant — flip it to suspended, take its public site offline, and tear down running infrastructure. The prior state is captured for unsuspend to replay.
Terminate a tenant
Permanently delete a tenant and all of its infrastructure. Final and irreversible — a missing workspace is treated as idempotent success.