
# Verifica un dominio mittente email

`POST /v1/email-sender-domains/{sender_domain_id}:verify` · autorizzazione `email-sender-domains:write` · tutti i piani

Verifica subito i record DNS del dominio e restituisce il dominio aggiornato. La piattaforma controlla inoltre ogni dominio ogni giorno con le stesse regole:

- Quando le due CNAME DKIM e la CNAME return-path puntano tutte ai target corretti, un dominio `pending_dns` o `degraded` diventa `verified`.
- Quando un dominio `verified` continua a fallire per 72 ore, diventa `degraded` e l'email dell'ambiente viene inviata dal dominio della piattaforma finché i record non vengono corretti.
- DMARC viene riportato in `dmarc_alignment` ma non è obbligatorio. Quando non esiste alcun record `_dmarc`, `records` include un record suggerito.

Un dominio disabilitato dalla piattaforma non può essere verificato. Ogni ambiente può eseguire 20 verifiche all'ora.

## Richiesta

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `sender_domain_id` | string | sì | ID del dominio mittente (`sdom_…`). |
| `Idempotency-Key` | header | no | Riproduce la stessa risposta per una richiesta ripetuta con la stessa chiave. |

Nessun corpo della richiesta.

## Risposta

`200 OK` con il dominio mittente verificato e `ETag` impostato alla sua nuova versione. I campi sono descritti in [Recupera un dominio mittente email](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"
}
```

## Errori

| HTTP | code | Quando |
|---|---|---|
| 404 | `not_found` | Il dominio mittente non esiste, appartiene a un altro ambiente oppure l'ID non è valido. |
| 409 | `conflict` | Il dominio è disabilitato dalla piattaforma. |
| 429 | `rate_limited` | L'ambiente ha eseguito 20 verifiche nell'ultima ora, oppure è stato superato il limite di richieste generale; riprova dopo il periodo indicato in `Retry-After`. |
| 401 | `unauthenticated` | La credenziale è mancante, non valida o revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha l'autorizzazione richiesta. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in `Retry-After`. |

## Esempio

```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`
