
# Eine E-Mail-Absender-Domain abrufen

`GET /v1/email-sender-domains/{sender_domain_id}` · Berechtigung `email-sender-domains:read` · alle Tarife

Gibt eine Absender-Domain zurück: ihren Status, die Ergebnisse der letzten DNS-Prüfung und die zu veröffentlichenden DNS-Einträge. Der Header `ETag` enthält die Version; senden Sie sie als `If-Match`, wenn Sie die Domain [löschen](delete.md).

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `sender_domain_id` | string | ja | ID der Absender-Domain (`sdom_…`). |

Kein Anfragetext.

## Antwort

`200 OK` mit der Absender-Domain und `ETag` mit deren Version.

| Feld | Typ | Beschreibung |
|---|---|---|
| `id` | string | ID der Absender-Domain (`sdom_…`). |
| `domain` | string | Die Domain als IDNA-2008-A-Label, in Kleinbuchstaben, ohne abschließenden Punkt. |
| `status` | string | `pending_dns` (wartet auf die DNS-Einträge), `verified` (bereit zum Senden), `degraded` (die Einträge schlagen seit 72 Stunden fehl; die Umgebung greift auf den Plattformversand zurück) oder `disabled` (von der Plattform deaktiviert). |
| `active_selector` | string | Für die Signatur verwendeter DKIM-Selector: `akp1` oder `akp2`. |
| `dkim_status` | string or null | Letzte Prüfung der beiden DKIM-CNAMEs (das schlechtere der beiden Ergebnisse): `ok`, `missing`, `wrong_target` oder `lookup_failed`; null vor der ersten Prüfung. |
| `return_path_status` | string or null | Letzte Prüfung des Return-Path-CNAME mit denselben Codes; null vor der ersten Prüfung. |
| `dmarc_alignment` | string or null | DMARC-Ergebnis der letzten Prüfung: `aligned`, `not_aligned`, `no_record`, `invalid_record` oder `lookup_failed`. DMARC ist nicht erforderlich. |
| `last_checked_at` | string or null | Zeitpunkt der letzten Prüfung. |
| `failing_since` | string or null | Erste fehlgeschlagene Prüfung einer `verified`-Domain; nach 72 Stunden wird die Domain `degraded`. |
| `degraded_since` | string or null | Zeitpunkt, zu dem die Domain `degraded` wurde. |
| `records` | array | Zu veröffentlichende DNS-Einträge: `type` (`CNAME` oder `TXT`), `name`, `value` und `required`. Die beiden DKIM-CNAMEs und der Return-Path-CNAME sind erforderlich; wenn die letzte Prüfung keinen `_dmarc`-Eintrag gefunden hat, wird ein DMARC-Vorschlag (`v=DMARC1; p=none`) mit `required: false` ergänzt. |
| `version` | integer | Version der Domain, identisch mit dem `ETag`; sie steigt bei jeder Schreiboperation, einschließlich Prüfungen. |
| `created_at` | string | Zeitpunkt der Erstellung. |
| `updated_at` | string | Zeitpunkt der letzten Änderung. |

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

## Fehler

| HTTP | Code | Wann |
|---|---|---|
| 404 | `not_found` | Die Absender-Domain existiert nicht, gehört zu einer anderen Umgebung oder die ID ist fehlerhaft. |
| 401 | `unauthenticated` | Der Berechtigungsnachweis fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Dem Berechtigungsnachweis fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Wartezeit `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Wartezeit `Retry-After`. |

## Beispiel

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