---
title: "Restore a previously deleted domain (undo delete)"
method: POST
path: "/v1/domain/{id}/revoke"
tags: ["domain"]
---

# Restore a previously deleted domain (undo delete)

`POST /v1/domain/{id}/revoke`

## Request

- Base URL: `https://developer.saleshandy.com` (the document declares no server; this is the origin it was published from)
- URL: `https://developer.saleshandy.com/v1/domain/{id}/revoke`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/saleshandy/apis/develop-with-saleshandy/docs/v1/domain/:id/revoke/post.ts> (a function with typed inputs; its response is checked against the schema)

Undo a prior <code>DELETE /v1/domain/{id}</code> call. Restores a domain whose <code>status</code> is <code>"deleted"</code> back to <code>"active"</code> and releases the reserved AnnualFlexi slot (if one was created at deletion time).

<strong>Preconditions:</strong> The domain must currently be in <code>status: "deleted"</code>. Calling revoke on an <code>active</code>, <code>inProgress</code>, <code>failed</code>, or <code>expired</code> domain is rejected.

<strong>Semantics — revoke vs. delete:</strong> <code>DELETE /v1/domain/{id}</code> moves an <code>active</code> domain into <code>deleted</code>; <code>POST /v1/domain/{id}/revoke</code> moves a <code>deleted</code> domain back to <code>active</code>. Revoke acts on a single domain — it does not affect sibling domains in the same order.

Use <code>domains[].id</code> from <code>GET /v1/domain</code>.

## Path parameters

- `id` string, required

## Response `201`

Domain revoked successfully

## Other responses

- `400`: 4000: Failed to revoke domain<br><br>1001: Invalid domain id<br><br>

---

[API](https://skmtc.dev/saleshandy/apis/develop-with-saleshandy.md) - [All operations](https://skmtc.dev/saleshandy/apis/develop-with-saleshandy/llms.txt) - [OpenAPI document](https://skmtc.dev/saleshandy/apis/develop-with-saleshandy/revisions/e7a29c931aa7?raw)
