> Ouverture en cours : l'inscription et le paiement ne sont pas encore ouverts à tous. L'état du jour : https://subagent.fr/docs/etat.md
>
> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# `remove_domain`

> Retire un domaine de l’espace : plus aucune boîte ne s’y crée, et le serveur de messagerie cesse de recevoir son courrier.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Retirer un domaine |
| Outil MCP | `remove_domain`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/remove_domain` |
| Accès | permission `manage_inboxes` |
| État de l'espace | vérifié : sinon, refus `space_unverified` |
| Effet | écriture, irréversible : `confirm` doit valoir `true` |
| Vue dans l'assistant | non |

## Ce que fait l'outil

Le serveur décrit l'outil ainsi à l'agent qui se branche :

> Retire un domaine de l’espace : plus aucune boîte ne s’y crée, et le serveur de messagerie cesse de recevoir son courrier. À faire avant de pointer le MX du domaine ailleurs. Refusé tant qu’une boîte de l’espace vit sur ce domaine (supprimez-les d’abord). Pensez ensuite à retirer ses enregistrements de votre DNS. Irréversible : passer confirm = `true` ; le réenregistrer donnera de nouvelles clés DKIM.

## Paramètres

`remove_domain` accepte ces paramètres. Un paramètre inconnu est refusé avec le code `invalid_argument`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `domain` | texte | oui | Le domaine à retirer (voir `list_domains`). |
| `confirm` | booléen | oui | Doit valoir `true` : le retrait est irréversible. |

## Résultat

L'outil rend un texte lisible en français et un objet structuré (`structuredContent`). En HTTP, la réponse est cet objet.

| Champ | Type | Contenu |
|---|---|---|
| `remote_domain_removed` | booléen | Le domaine a été retiré du serveur de messagerie. |
| `removed` | texte | Le domaine retiré. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/remove_domain \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "domain": "agents.exemple.fr",
  "confirm": true
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_domain",
    "arguments": {
      "domain": "agents.exemple.fr",
      "confirm": true
    }
  }
}
```

## Refus possibles

| Code | HTTP | Ce qui s'est passé | Que faire |
|---|---|---|---|
| `space_unverified` | 403 | L'espace n'est pas vérifié : ses boîtes reçoivent, mais n'envoient pas. | Demander à l'humain le code à 6 chiffres, puis appeler `verify`. S'il n'a rien reçu, ou si aucun e-mail n'est rattaché à l'espace : `attach_human`. |
| `not_found` | 404 | L'objet n'existe pas pour cette clé. | Vérifier l'identifiant : il vient de `list_inboxes`, `list_threads`, `get_thread` ou `list_drafts`. |
| `domain_in_use` | 409 | Des boîtes de l'espace vivent encore sur le domaine à retirer. | Supprimer d'abord ces boîtes avec `delete_inbox`. |
| `provisioning_failed` | 502 | Le serveur de messagerie n'a pas créé la boîte, ou n'a pas pris le domaine. | Réessayer dans un instant. Rien n'est perdu. |

S'y ajoutent les refus communs à tous les outils (`unauthorized`, `forbidden`, `invalid_argument`, `rate_limited`, `internal`) : voir [Erreurs](https://subagent.fr/docs/erreurs.md#acces).

## Voir aussi

- [Domaines : remove_domain](https://subagent.fr/docs/domaines.md#remove_domain)
- [`list_domains`](https://subagent.fr/docs/reference/list_domains.md)
- [`delete_inbox`](https://subagent.fr/docs/reference/delete_inbox.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
