Πισtoποίηση
Στείλτε ένα κλειδί API ως διακριτικό φορέα (bearer token). Το κλειδί πρέπει να διαθέτει το δικαίωμα sites.view· ένα κλειδί που δεν το διαθέτει απορρίπτεται με 403, όχι 404.
Αυτό το τελικό σημείο δεν δέχεται αναγνωριστικό οργανισμού. Το κλειδί σας προσδιορίζει ήδη τον οργανισμό στον οποίο ανήκει, και η απάντηση περιορίζεται σε αυτόν.
Δοκιμάστε το
Ατικatastήstε ό,τι βρίskεtai μέσα σe γώniaδeς μe τis δikές sas timές, kai to placeholder klεidioύ μe éna klεidi apó ton pinaka ελέgchou sas.
curl -X DELETE https://api.zinndigital.com/v1/sites/{siteId} \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "confirm_domain": <string> }'Συνδεθήκατε; Η κονσόλα API στον πίνακα ελέγχου σας συμπληρώνει το πραγματικό αναγνωριστικό του οργανισμού σας και το δικό σας κλειδί, και εκτελεί το αίτημα στο ζωντανό API, ώστε να μπορείτε να δείτε την πραγματική απόκριση. Ανοίξτε αυτό το τελικό σημείο στην κονσόλα API
Λεπτομέρειες
Starts the grace period after which the site, its vendor hosting package and everything on them are destroyed. Until this operation existed the driver could delete a package and the teardown workflow was in place, and a customer who wanted their own site gone had to open a ticket. The site is **not** suspended while the countdown runs — it serves normally, so waiting costs nothing. ⛔ **This operation carries a request body on `DELETE`.** RFC 9110 permits it and it is deliberate: the typed confirmation must travel with the request that acts on it, because a "confirm" call followed by an unconfirmed delete is two requests and the second one is the whole vulnerability. `confirm_domain` is compared against `SiteDeletion.primary_domain` — case-insensitively, ignoring surrounding whitespace and a trailing root dot, and never against an alias. `202` and not `200`: nothing has been destroyed yet. The body is the same `SiteDeletion` resource `getSiteDeletion` returns, so the client renders the countdown from the server's answer rather than from what it asked for. A deletion already scheduled is `409`. A confirmation that does not match, an absent `confirm_domain`, or a site whose state does not allow deletion is `422`. `503` means the teardown could not be armed and **nothing was scheduled** — the request is safe to repeat. A site with no vendor hosting package — anything on our own fleet, or a Zinn® VPS — has no such operation and returns `404`, exactly as an out-of-scope or unknown id does. Requires `sites.view` **and** `sites.delete`; the site lookup is scoped on `sites.delete`, so holding it in one organisation does not reach a site in another.
Παράμετροι
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
siteId (path) | Uuid | Ναι | Site ID (UUIDv7). |
Σώμα αίτησης
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
confirm_domain | string | Ναι | The site's primary domain, as the customer typed it. Read the value to prompt for from `SiteDeletion.primary_domain` rather than from a `Site` object already on screen: one valu… |
Απάντηση
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
site_id | string | Ναι | The site this deletion state belongs to. |
primary_domain | string | Ναι | ⛔ What the customer must type into `deleteSite`, and what the engine compares against. Read it from here rather than from a `Site` object already on screen: one value on both si… |
state | string<none, scheduled, running, stalled, deleted> | Ναι | Where the site is in its lifecycle. A stable machine value the client turns into a localised sentence — never English composed by the engine (§2.19). ⛔ `stalled` is `running` th… |
deletable | boolean | Ναι | Whether a deletion could be requested right now. False on a site whose state does not allow it, so the form is explained rather than offered and refused. |
scheduled_for | string | Ναι | When the teardown fires, or null when nothing is scheduled. |
requested_at | string | Ναι | When the deletion was requested, or null when nothing is scheduled. |
grace_days | integer | Ναι | How many days the countdown runs. Clamped at both ends — a floor of one day is what stops a misconfiguration meaning *delete now*. |
grace_free_reason | string<, internal, never_provisioned> | Ναι | Why this site would skip the grace period entirely, or `""` when it would not. `never_provisioned` means the site is `failed` — provisioning never completed, so nothing was ever… |
can_cancel | boolean | Ναι | ⛔ **Its own field, and never recomputed as `state == "scheduled"`.** Once the teardown starts, the request row still says scheduled while the site is already being deleted; a cl… |
Σφάλματα που μπορεί να επιστρέψει αυτό το τελικό σημείο
401 · 403 · 404 · 409 · 422 · 429 · 503