
# Obtener un dominio remitente de correo electrónico

`GET /v1/email-sender-domains/{sender_domain_id}` · permiso `email-sender-domains:read` · todos los planes

Devuelve un dominio remitente: su estado, los resultados de la última comprobación de DNS y los registros DNS que debe publicar. La cabecera `ETag` contiene la versión; envíela como `If-Match` cuando [elimine](delete.md) el dominio.

## Solicitud

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `sender_domain_id` | string | sí | ID del dominio remitente (`sdom_…`). |

Sin cuerpo de solicitud.

## Respuesta

`200 OK` con el dominio remitente y `ETag` con su versión.

| Campo | Tipo | Descripción |
|---|---|---|
| `id` | string | ID del dominio remitente (`sdom_…`). |
| `domain` | string | El dominio como A-label de IDNA 2008, en minúsculas y sin punto final. |
| `status` | string | `pending_dns` (a la espera de los registros DNS), `verified` (listo para enviar), `degraded` (los registros han fallado durante 72 horas; el entorno pasó al envío de la plataforma) o `disabled` (desactivado por la plataforma). |
| `active_selector` | string | Selector DKIM usado para firmar: `akp1` o `akp2`. |
| `dkim_status` | string or null | Última comprobación de los dos CNAME de DKIM (el peor de los dos): `ok`, `missing`, `wrong_target` o `lookup_failed`; null antes de la primera comprobación. |
| `return_path_status` | string or null | Última comprobación del CNAME de return-path, con los mismos códigos; null antes de la primera comprobación. |
| `dmarc_alignment` | string or null | Resultado de DMARC de la última comprobación: `aligned`, `not_aligned`, `no_record`, `invalid_record` o `lookup_failed`. DMARC no es obligatorio. |
| `last_checked_at` | string or null | Momento de la última comprobación. |
| `failing_since` | string or null | Primera comprobación fallida de un dominio `verified`; al alcanzar 72 horas, el dominio pasa a `degraded`. |
| `degraded_since` | string or null | Momento en que el dominio pasó a `degraded`. |
| `records` | array | Registros DNS que debe publicar: `type` (`CNAME` o `TXT`), `name`, `value` y `required`. Los dos CNAME de DKIM y el CNAME de return-path son obligatorios; si la última comprobación no encontró ningún registro `_dmarc`, se añade una sugerencia de DMARC (`v=DMARC1; p=none`) con `required: false`. |
| `version` | integer | Versión del dominio, igual que el `ETag`; aumenta en cada escritura, incluidas las comprobaciones. |
| `created_at` | string | Momento de creación. |
| `updated_at` | string | Momento del último cambio. |

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

## Errores

| HTTP | código | Cuándo |
|---|---|---|
| 404 | `not_found` | El dominio remitente no existe, pertenece a otro entorno o el ID tiene un formato incorrecto. |
| 401 | `unauthenticated` | La credencial falta, no es válida o fue revocada. |
| 403 | `insufficient_permissions` | La credencial no tiene el permiso requerido. |
| 429 | `rate_limited` | Se superó el límite de frecuencia; reintente después del período `Retry-After`. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintente después del período `Retry-After`. |

## Ejemplo

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