
# Ottieni un dominio mittente email

`GET /v1/email-sender-domains/{sender_domain_id}` · autorizzazione `email-sender-domains:read` · tutti i piani

Restituisce un dominio mittente: il suo stato, i risultati dell'ultimo controllo DNS e i record DNS da pubblicare. L'header `ETag` riporta la versione; inviala come `If-Match` quando [elimini](delete.md) il dominio.

## Richiesta

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `sender_domain_id` | string | sì | ID del dominio mittente (`sdom_…`). |

Nessun corpo della richiesta.

## Risposta

`200 OK` con il dominio mittente e `ETag` impostato alla sua versione.

| Campo | Tipo | Descrizione |
|---|---|---|
| `id` | string | ID del dominio mittente (`sdom_…`). |
| `domain` | string | Il dominio come A-label IDNA 2008, in minuscolo, senza punto finale. |
| `status` | string | `pending_dns` (in attesa dei record DNS), `verified` (pronto per l'invio), `degraded` (i record falliscono da 72 ore; l'ambiente è tornato all'invio della piattaforma) oppure `disabled` (disattivato dalla piattaforma). |
| `active_selector` | string | Selettore DKIM usato per la firma: `akp1` oppure `akp2`. |
| `dkim_status` | string o null | Ultimo controllo dei due CNAME DKIM (il peggiore dei due): `ok`, `missing`, `wrong_target` oppure `lookup_failed`; null prima del primo controllo. |
| `return_path_status` | string o null | Ultimo controllo del CNAME return-path, con gli stessi codici; null prima del primo controllo. |
| `dmarc_alignment` | string o null | Esito DMARC dell'ultimo controllo: `aligned`, `not_aligned`, `no_record`, `invalid_record` oppure `lookup_failed`. DMARC non è obbligatorio. |
| `last_checked_at` | string o null | Momento dell'ultimo controllo. |
| `failing_since` | string o null | Primo controllo fallito di un dominio `verified`; quando raggiunge 72 ore il dominio diventa `degraded`. |
| `degraded_since` | string o null | Momento in cui il dominio è diventato `degraded`. |
| `records` | array | Record DNS da pubblicare: `type` (`CNAME` o `TXT`), `name`, `value` e `required`. I due CNAME DKIM e il CNAME return-path sono obbligatori; quando l'ultimo controllo non ha trovato un record `_dmarc`, viene aggiunto un suggerimento DMARC (`v=DMARC1; p=none`) con `required: false`. |
| `version` | integer | Versione del dominio, uguale all'`ETag`; aumenta a ogni scrittura, controlli inclusi. |
| `created_at` | string | Momento della creazione. |
| `updated_at` | string | Momento dell'ultima modifica. |

```json
{
  "id": "sdom_01k7r9m3q5t8v2w4x6y8z0a2b4",
  "domain": "mail.example.com",
  "status": "pending_dns",
  "active_selector": "akp1",
  "dkim_status": null,
  "return_path_status": null,
  "dmarc_alignment": null,
  "last_checked_at": null,
  "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
    }
  ],
  "version": 1,
  "created_at": "2026-10-19T09:00:00Z",
  "updated_at": "2026-10-19T09:00:00Z"
}
```

## Errori

| HTTP | code | Quando |
|---|---|---|
| 404 | `not_found` | Il dominio mittente non esiste, appartiene a un altro ambiente oppure l'ID non è valido. |
| 401 | `unauthenticated` | La credenziale manca, non è valida o è stata revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha l'autorizzazione richiesta. |
| 429 | `rate_limited` | È stato superato il limite di richieste; riprova dopo il periodo indicato in `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in `Retry-After`. |

## Esempio

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

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