DELETE /api/v1/topics/{topicId}
Elimina un tema. Solo se puede eliminar uno que nada lleve.
Eliminar un tema tira los rechazos que expresaron las personas. Todos los que lo rechazaron vuelven a recibir esa temática, y no hay forma de deshacerlo. Lee
optOutCount en Obtener un tema antes de hacer esta llamada.Autorización
| Rol en la organización | Este endpoint |
|---|---|
OWNER | Permitido |
ADMIN | Permitido |
MEMBER | Rechazado — 403 |
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
topicId | string | Obligatorio. El tema que se va a eliminar |
Ejemplo
bash
curl -X DELETE -H "x-api-key: $AGENTMAIL_API_KEY" \
"https://www.agentsmail.io/api/v1/topics/$TOPIC_ID"Respuesta
200 OK: el id de lo que se eliminó.401 Unauthorized: clave ausente o no válida, o su propietario salió de la organización.403 Forbidden: el propietario de la clave esmemberde la organización, noadmin.404 Not Found: no existe ese tema, o pertenece a otra organización. La API nunca confirma que un id existe a un llamante que no tiene derecho sobre él.409 Conflict: una campaña o una secuencia todavía lleva el tema. El mensaje las nombra. Reintentar no servirá: desasígnalas primero, o conserva el tema.429 Too Many Requests: más de 120 solicitudes en un minuto para esta clave.
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Indica si la operación se realizó correctamente |
data.id | string | Identificador de lo que se eliminó |
Ejemplo de respuesta
json
{
"success": true,
"data": {
"id": "7c2e4b19"
}
}Receta para agentes
Desasigna y después elimina, y lee el mensaje del409 en lugar de reintentar:
js
const usage = (await get(`/api/v1/topics/${topicId}`)).data
for (const campaign of usage.campaigns) {
await patch(`/api/v1/campaigns/${campaign.id}`, {topicId: null})
}
const response = await del(`/api/v1/topics/${topicId}`)
if (response.status === 409) {
// Something was attached in the meantime — the error names it
}Notas
- El rechazo se vuelve a calcular en el momento de la eliminación, no se toma de lo que leíste la última vez. Una campaña creada entre tus dos llamadas bloquea la eliminación.
- Desasignar un tema de una secuencia publicada cuyos pasos llevan
{{topicOptOutUrl}}también se rechaza. Abre un borrador, quita el shortcode y publica, o conserva el tema.