> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mithunai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revoke a website widget embed for good

> Withdraw a deployment so its widget key stops authenticating. Revocation is immediate and permanent; to restore the widget, create a new embed and repaste it.

Revocation is:

* **Immediate.** The widget key fails authentication on the very next widget request, so the widget stops working on every page that embeds it. There is no cache to wait out.
* **Terminal.** A revoked deployment cannot be reactivated. To embed again, create a new deployment and update your page with its new key.
* **Idempotent.** Revoking a deployment that is already revoked succeeds and returns it unchanged, with its original `revoked_at`.

The response is `200` with the revoked deployment, so you can read `revoked_at` without a second request. The deployment stays in [List widget deployments](/api-reference/widget-deployments/list-widget-deployments) with `status` set to `revoked`.

A deployment that does not exist, a deployment in another organization and a malformed ID all return the same `404`.

You need the `assistant.publish` permission, which the owner, admin and editor roles hold. Authenticate with an `arukz_sk_` API key or a signed-in console session.

<ParamField path="deployment_id" type="string" required>
  The deployment's ID (UUID), as returned in `id`.
</ParamField>

## Response

<ResponseField name="id" type="string" required>
  The deployment's ID (UUID).
</ResponseField>

<ResponseField name="name" type="string" required>
  The embed's label.
</ResponseField>

<ResponseField name="widget_key" type="string" required>
  The widget key, which no longer authenticates.
</ResponseField>

<ResponseField name="assistant_id" type="string" required>
  The embedded assistant's ID.
</ResponseField>

<ResponseField name="status" type="string" required>
  Always `revoked`.
</ResponseField>

<ResponseField name="allowed_origins" type="string[]" required>
  The origin list as it was at revocation.
</ResponseField>

<ResponseField name="created_at" type="string" required>
  When the deployment was created, ISO 8601 in UTC.
</ResponseField>

<ResponseField name="created_by" type="string | null" required>
  ID of the user who created it, or `null` when it was created with an API key.
</ResponseField>

<ResponseField name="expires_at" type="string | null" required>
  When the embed would have expired, or `null`.
</ResponseField>

<ResponseField name="revoked_at" type="string" required>
  When the embed was revoked, ISO 8601 in UTC.
</ResponseField>

<ResponseField name="last_used_at" type="string | null" required>
  When the widget key last authenticated a request, or `null` if never.
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --request DELETE "$MITHUNAI_URL/arukz/api/v1/widget-deployments/8d0f5a2e-3c41-4b7a-9e6d-1f2a3b4c5d6e" \
    --header "Authorization: Bearer $MITHUNAI_API_KEY"
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import os, requests

  deployment_id = "8d0f5a2e-3c41-4b7a-9e6d-1f2a3b4c5d6e"
  response = requests.delete(
      f"{os.environ['MITHUNAI_URL']}/arukz/api/v1/widget-deployments/{deployment_id}",
      headers={"Authorization": f"Bearer {os.environ['MITHUNAI_API_KEY']}"},
      timeout=30,
  )
  response.raise_for_status()
  print(response.json()["revoked_at"])
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const deploymentId = '8d0f5a2e-3c41-4b7a-9e6d-1f2a3b4c5d6e'
  const response = await fetch(
    `${process.env.MITHUNAI_URL}/arukz/api/v1/widget-deployments/${deploymentId}`,
    {
      method: 'DELETE',
      headers: { Authorization: `Bearer ${process.env.MITHUNAI_API_KEY}` },
    },
  )
  console.log((await response.json()).revoked_at)
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "id": "8d0f5a2e-3c41-4b7a-9e6d-1f2a3b4c5d6e",
    "name": "Docs site widget",
    "widget_key": "arukz_wk_8d0f5a2e-3c41-4b7a-9e6d-1f2a3b4c5d6e",
    "assistant_id": "5b1e9c2a-7d4f-4e3b-9a61-0c8f2d7e4a13",
    "status": "revoked",
    "allowed_origins": ["https://docs.example.com", "https://www.example.com"],
    "created_at": "2026-09-20T14:03:11.482190+00:00",
    "created_by": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "expires_at": null,
    "revoked_at": "2026-09-24T09:12:05.640021+00:00",
    "last_used_at": "2026-09-24T07:58:30.021455+00:00"
  }
  ```

  ```json 401 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "authentication_error", "message": "Authentication is required." }
  ```

  ```json 403 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "authorization_error", "message": "You do not have permission to perform this action." }
  ```

  ```json 404 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "not_found", "message": "The requested resource was not found." }
  ```
</ResponseExample>
