hosting
DELETE /v1/sites/{siteId}/external-backup
Remove our access to an externally hosted site.
Authentication
Send an API key as a bearer token. The key must carry the hosting.backup.manage permission; a key without it is refused with 403, not 404.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X DELETE https://api.zinndigital.com/v1/sites/{siteId}/external-backup \
-H "Authorization: Bearer zdk_live_…"Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Deletes the connection and forgets the stored credential. The backups themselves are **not** deleted. A customer disconnecting us may be doing it precisely so they can restore elsewhere, and their existing restore points are theirs — they expire on the normal retention schedule and are all still downloadable. Requires `hosting.backup.manage`.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteId (path) | Uuid | Yes | Site ID (UUIDv7). |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
configured | boolean | Yes | False when nobody has connected this site yet. The rest of the object is still present and empty — a screen must not have to tell "not set up" from "failed to load" by the absen… |
channel | ExternalBackupChannel | string<> | Yes | Empty string when `configured` is false. |
enabled | boolean | Yes | A disabled connection is paused, not deleted — the set-up survives. |
can_restore | boolean | Yes | Whether we can push a backup back down this channel. **False for `connector`**, and that is not a limitation to route around: a WordPress plugin cannot run inside a WordPress to… |
summary | string | Yes | One sentence stating what this connection can and cannot do, composed server-side so every surface says the same thing about the backup/restore asymmetry. |
ssh_host | string | Yes | Empty on a `connector` connection. |
ssh_port | integer | Yes | — |
ssh_username | string | Yes | — |
remote_path | string | Yes | The site's document root — what we archive, and what we restore into. |
credential_present | boolean | Yes | Whether a credential is stored in our secret store. The credential itself is never returned by any endpoint. |
last_verified_at | string | Yes | Null when the connection has never been checked. |
last_verified_ok | boolean | Yes | Null means never checked, which is not the same as failing — the absence of a measurement is not a measurement. |
last_verify_detail | string | Yes | — |
Errors this endpoint can return
401 · 403 · 404 · 422