
# Vérifier un domaine d'expédition des e-mails

`POST /v1/email-sender-domains/{sender_domain_id}:verify` · autorisation `email-sender-domains:write` · tous les forfaits

Vérifie immédiatement les enregistrements DNS du domaine et renvoie le domaine mis à jour. La plateforme vérifie également chaque domaine chaque jour selon les mêmes règles :

- Lorsque les deux CNAME DKIM et le CNAME du return-path pointent tous vers les bonnes cibles, un domaine `pending_dns` ou `degraded` passe à `verified`.
- Lorsqu'un domaine `verified` continue d'échouer pendant 72 heures, il passe à `degraded`, et les e-mails de l'environnement sont envoyés depuis le domaine de la plateforme jusqu'à la correction des enregistrements.
- DMARC est indiqué dans `dmarc_alignment` mais n'est pas obligatoire. Lorsqu'aucun enregistrement `_dmarc` n'existe, `records` inclut un enregistrement suggéré.

Un domaine désactivé par la plateforme ne peut pas être vérifié. Chaque environnement peut effectuer 20 vérifications par heure.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `sender_domain_id` | string | oui | ID du domaine d'expédition (`sdom_…`). |
| `Idempotency-Key` | en-tête | non | Rejoue la même réponse pour une requête répétée avec la même clé. |

Aucun corps de requête.

## Réponse

`200 OK` avec le domaine d'expédition vérifié et `ETag` défini sur sa nouvelle version. Les champs sont décrits dans [Obtenir un domaine d'expédition des e-mails](get.md).

```json
{
  "id": "sdom_01k7r9m3q5t8v2w4x6y8z0a2b4",
  "domain": "mail.example.com",
  "status": "verified",
  "active_selector": "akp1",
  "dkim_status": "ok",
  "return_path_status": "ok",
  "dmarc_alignment": "no_record",
  "last_checked_at": "2026-10-19T09:30:00Z",
  "failing_since": null,
  "degraded_since": null,
  "records": [
    {
      "type": "CNAME",
      "name": "akp1._domainkey.mail.example.com",
      "value": "akp1.sdom_01k7r9m3q5t8v2w4x6y8z0a2b4.dkim.eu.keenauth.app",
      "required": true
    },
    {
      "type": "CNAME",
      "name": "akp2._domainkey.mail.example.com",
      "value": "akp2.sdom_01k7r9m3q5t8v2w4x6y8z0a2b4.dkim.eu.keenauth.app",
      "required": true
    },
    {
      "type": "CNAME",
      "name": "rp.mail.example.com",
      "value": "rp.eu.mail.keenauth.app",
      "required": true
    },
    {
      "type": "TXT",
      "name": "_dmarc.mail.example.com",
      "value": "v=DMARC1; p=none",
      "required": false
    }
  ],
  "version": 2,
  "created_at": "2026-10-19T09:00:00Z",
  "updated_at": "2026-10-19T09:30:00Z"
}
```

## Erreurs

| HTTP | code | Cas |
|---|---|---|
| 404 | `not_found` | Le domaine d'expédition n'existe pas, appartient à un autre environnement ou l'ID est mal formé. |
| 409 | `conflict` | Le domaine est désactivé par la plateforme. |
| 429 | `rate_limited` | L'environnement a effectué 20 vérifications au cours de la dernière heure, ou la limite de débit générale a été dépassée ; réessayez après la période indiquée par `Retry-After`. |
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant ne dispose pas de l'autorisation requise. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez après la période indiquée par `Retry-After`. |

## Exemple

```bash
curl -X POST https://api.eu.keenauth.com/v1/email-sender-domains/sdom_01k7r9m3q5t8v2w4x6y8z0a2b4:verify \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI : `keenauth email-sender-domains verify sdom_01k7r9m3q5t8v2w4x6y8z0a2b4`
