Disable DDoS scrubbing
DELETE /api/v2/vps/{id}/ddos-scrubbing
Stop DDoS scrubbing for the VPS’s primary IPv4 address. This ends a timed session early. It also switches off always-on scrubbing. The call answers 200 even when nothing was active. The response has the shape of GET /api/v2/vps/{id}/ddos-scrubbing with active: false. Its networkMitigation.status is always unknown. Read the GET endpoint for the verified state.
Authentication: An API key with the scope write:vm. About keys and scopes
Request
Path parameters
idstringrequiredThe VPS ID (
vps_…).Example
curl -X DELETE "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/ddos-scrubbing" \ -H "Authorization: Bearer $HOSTUP_API_KEY"Responses
200 Scrubbing stopped.
{ "available": true, "reason": null, "ip": "192.0.2.10", "active": false, "durationSeconds": null, "createdAt": null, "expiresAt": null, "networkMitigation": { "status": "unknown", "action": null, "automatic": null, "createdAt": null, "expiresAt": null }}Response fields
availablebooleanTrue after a successful stop.
reasonstring or nullAlways null after a successful stop.
ipstring or nullThe address scrubbing was stopped for.
activebooleanFalse after the call.
durationSecondsinteger or nullAlways null in this response.
createdAtstring or nullAlways null in this response.
expiresAtstring or nullAlways null in this response.
networkMitigationobjectAlways
status: "unknown" in this response. Read GET /api/v2/vps/{id}/ddos-scrubbing for the verified state.statusstringactive 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 nullFalse for a session started from the client area or the API. True otherwise, for example the automatic response to an attack. Null when unknown.
createdAtstring or nullWhen it started. Null when unknown.
expiresAtstring or nullWhen it ends by itself. Null when it has no end or is unknown.
Errors
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. |