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

# Eliminar bot

> Elimina un bot de Typebot (con ?botId=) o TODOS los bots de la instancia (sin ?botId=), re-sincronizando la integración

**Auth:** `TokenAccount` o `TokenInstance` • **Rate limit:** `Global` (100/min) • **Idempotente:** sí

## Descripción

Elimina bots de la instancia y re-sincroniza la lista restante. Con el query param opcional `?botId=`, borra **un solo** bot; **sin `botId`, borra TODOS** los bots de la instancia y desconecta la integración. Cuando ya no queda ningún bot, la integración se desactiva y el vínculo local se borra.

<Warning>
  Llamar a este endpoint **sin** `?botId=` elimina **todos** los bots de la instancia de una sola vez. Úsalo con cuidado.
</Warning>

<Note>
  La re-sincronización de la integración es **best-effort**: si falla, el servidor solo registra un warning y la eliminación de los bots **sigue siendo válida** (las filas locales ya fueron borradas). Por eso este endpoint no expone errores de sincronización en la respuesta.
</Note>

## Ejemplo

**Eliminar un bot (`?botId=`)**

<CodeGroup>
  ```bash cURL theme={null}
  curl -X DELETE "https://ryzeapi.cloud/api/typebot/delete/suporte?botId=8f3a1c2e-...-b7d9" \
    -H "token: $Token_Account"
  ```

  ```javascript JavaScript theme={null}
  await fetch("https://ryzeapi.cloud/api/typebot/delete/suporte?botId=8f3a1c2e-...-b7d9", {
    method: "DELETE",
    headers: {
      "token": process.env.Token_Account
    }
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.delete(
      "https://ryzeapi.cloud/api/typebot/delete/suporte",
      params={"botId": "8f3a1c2e-...-b7d9"},
      headers={
          "token": os.environ["Token_Account"]
      }
  )
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
      "os"
  )

  func main() {
      req, _ := http.NewRequest("DELETE", "https://ryzeapi.cloud/api/typebot/delete/suporte?botId=8f3a1c2e-...-b7d9", nil)
      req.Header.Set("token", os.Getenv("Token_Account"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

**Eliminar todos los bots**

<CodeGroup>
  ```bash cURL theme={null}
  curl -X DELETE "https://ryzeapi.cloud/api/typebot/delete/suporte" \
    -H "token: $Token_Account"
  ```

  ```javascript JavaScript theme={null}
  await fetch("https://ryzeapi.cloud/api/typebot/delete/suporte", {
    method: "DELETE",
    headers: {
      "token": process.env.Token_Account
    }
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.delete(
      "https://ryzeapi.cloud/api/typebot/delete/suporte",
      headers={
          "token": os.environ["Token_Account"]
      }
  )
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
      "os"
  )

  func main() {
      req, _ := http.NewRequest("DELETE", "https://ryzeapi.cloud/api/typebot/delete/suporte", nil)
      req.Header.Set("token", os.Getenv("Token_Account"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

## Respuesta exitosa

```json 200 OK theme={null}
{
  "success": true,
  "message": "typebot bot(s) deleted",
  "meta": {
    "deleted": 1
  }
}
```

| Campo          | Descripción                                                                  |
| -------------- | ---------------------------------------------------------------------------- |
| `success`      | `true` cuando la operación tuvo éxito.                                       |
| `message`      | Mensaje fijo de confirmación: `typebot bot(s) deleted`.                      |
| `meta.deleted` | Número de bots efectivamente eliminados (`1` con `?botId=`; N sin `botId=`). |

## Parámetros de ruta

<ParamField path="instance" type="string" required>
  Nombre de la instancia (p. ej., `suporte`).
</ParamField>

## Parámetros de consulta

<ParamField query="botId" type="string">
  UUID del bot a eliminar, obtenido en [`GET /api/typebot/list/:instance`](/es/api/typebot/list). **Ausente, se eliminan TODOS los bots** de la instancia.
</ParamField>

## Cabeceras

<ParamField header="token" type="string" required>
  `TokenAccount` o `TokenInstance`.
</ParamField>

## Comportamiento

<Steps>
  <Step title="Elimina el/los bot(s) local(es)">
    Con `?botId=`, borra esa fila de `typebot_bots` (si no existe, devuelve `404`). Sin `botId=`, borra todas las filas de la instancia.
  </Step>

  <Step title="Re-sincroniza los bots restantes (timeout 60 s)">
    RyzeAPI recalcula la lista de bots y (re)activa la integración. Un fallo aquí solo se registra como warning, no revierte la eliminación.
  </Step>

  <Step title="Desactiva si no queda ninguno">
    Cuando no queda ningún bot, la integración se desactiva y el vínculo en `typebot_integrations` se borra.
  </Step>
</Steps>

## Errores

| HTTP | `error.message`                                                                  |
| :--: | -------------------------------------------------------------------------------- |
|  404 | `instance not found`                                                             |
|  404 | `bot not found for this instance` (solo cuando se pasa un `?botId=` inexistente) |

## Siguiente

<CardGroup cols={2}>
  <Card title="Listar bots" icon="list" href="/es/api/typebot/list">
    Consulta qué bots siguen registrados en la instancia.
  </Card>

  <Card title="Crear bot" icon="robot" href="/es/api/typebot/set">
    Recrea o agrega un bot con `POST /api/typebot/set/:instance`.
  </Card>
</CardGroup>
