Get DDoS scrubbing status
GET /api/v2/vps/{id}/ddos-scrubbing
Get the DDoS scrubbing state of the VPS’s primary IPv4 address. available says whether you can start scrubbing on this VPS. When it is false, reason says why. active is true while a session you started is running. networkMitigation shows any protection on the address right now, including the automatic response to an attack. With action: "blackhole" all traffic from the internet to the address is dropped. The VPS is unreachable from outside until expiresAt. With action: "scrub" traffic is filtered before it reaches the VPS. status: "unknown" means the state could not be checked. It does not mean that nothing is active. Start a session with POST /api/v2/vps/{id}/ddos-scrubbing and end it with DELETE /api/v2/vps/{id}/ddos-scrubbing.
Authentication: An API key with the scope read:vm. About keys and scopes
Request
Path parameters
idstringrequiredvps_…).Example
curl "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/ddos-scrubbing" \ -H "Authorization: Bearer $HOSTUP_API_KEY"Responses
200 DDoS scrubbing state of the VPS’s primary IPv4 address.
{ "available": true, "reason": null, "ip": "192.0.2.10", "active": false, "durationSeconds": null, "createdAt": null, "expiresAt": null, "networkMitigation": { "status": "active", "action": "blackhole", "automatic": true, "createdAt": "2026-08-07T11:15:20.000Z", "expiresAt": "2026-08-07T12:15:20.000Z" }}Response fields
availablebooleanreasonstring or nullipstring or nullactivebooleandurationSecondsinteger or nullPOST carries the session length.createdAtstring or nullexpiresAtstring or nullnetworkMitigationobjectstatusstringactive when protection is on. none when checked and clear. unknown when it could not be checked, which never means clear. One of active, none, unknown.actionstring or nullblackhole: all internet traffic to the address is dropped. scrub: traffic is filtered before it reaches the VPS. Null unless status is active. One of blackhole, scrub.automaticboolean or nullcreatedAtstring or nullexpiresAtstring or nullErrors
Errors are Problem Details with a stable code. Branch on the code, not on the text.
| 400 | Invalid request. The response body is an RFC 7807 Problem Details document. |
| 401 | Unauthorized. Authentication is required. |
| 403 | Forbidden. The caller lacks a required scope or does not own the resource. |
| 404 | Not found. The resource does not exist or is not owned by the caller; code is vps_not_found. |
| 429 | Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers. |
| 500 | Internal error. Retry later or contact support if the issue persists. |