Supprimer un sujet

DELETE /api/v1/topics/{topicId} Supprime un sujet. Seul un sujet que rien ne porte peut partir.
Supprimer un sujet jette les refus exprimés par les gens. Tous ceux qui l'avaient refusé recommencent à recevoir ce thème, et il n'y a pas d'annulation possible. Lisez optOutCount sur Obtenir un sujet avant d'appeler ceci.

Autorisation

Rôle dans l'organisationCet endpoint
OWNERAutorisé
ADMINAutorisé
MEMBERRefusé — 403
Une clé porte le rôle que son créateur détient dans cette organisation — jamais un rôle sur AgentsMail lui-même. Voir Clés d'API.

Paramètres de chemin

ParamètreTypeDescription
topicIdstringObligatoire. Le sujet à supprimer

Exemple

bash
curl -X DELETE -H "x-api-key: $AGENTMAIL_API_KEY" \
  "https://www.agentsmail.io/api/v1/topics/$TOPIC_ID"

Réponse

  • 200 OK — l'identifiant de ce qui a été supprimé.
  • 401 Unauthorized — clé absente ou invalide, ou son propriétaire a quitté l'organisation.
  • 403 Forbidden — le propriétaire de la clé est member de l'organisation, pas admin.
  • 404 Not Found — sujet inexistant, ou il appartient à une autre organisation. L'API ne confirme jamais qu'un identifiant existe à un appelant qui n'y a pas droit.
  • 409 Conflict — une campagne ou une séquence porte encore le sujet. Le message les nomme. Réessayer ne servira à rien : détachez-les d'abord, ou gardez le sujet.
  • 429 Too Many Requests — plus de 120 requêtes en une minute pour cette clé.

Champs de la réponse

ChampTypeDescription
successbooleanIndique si l'opération a réussi
data.idstringIdentifiant de ce qui a été supprimé

Exemple de réponse

json
{
  "success": true,
  "data": {
    "id": "7c2e4b19"
  }
}

Recette pour agent

Détachez, puis supprimez — et lisez le message du 409 plutôt que de réessayer :
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
}
Une campagne déjà partie ne peut pas être modifiée, donc son sujet ne peut pas être détaché : ce sujet reste, et c'est voulu — ce qui a été envoyé reste traçable.

Remarques

  • Le refus est recalculé au moment de la suppression, et non tiré de ce que vous avez lu en dernier. Une campagne créée entre vos deux appels bloque la suppression.
  • Détacher un sujet d'une séquence publiée dont des étapes portent {{topicOptOutUrl}} est lui-même refusé. Ouvrez un brouillon, retirez le shortcode, publiez — ou gardez le sujet.

Voir aussi