
# 送信元メールドメインを取得

`GET /v1/email-sender-domains/{sender_domain_id}` · 権限 `email-sender-domains:read` · すべてのプラン

送信元ドメインのステータス、最後の DNS チェックの結果、公開すべき DNS レコードを返します。`ETag` ヘッダーにはバージョンが含まれます。ドメインを[削除](delete.md)する際は、これを `If-Match` として送信してください。

## リクエスト

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `sender_domain_id` | string | はい | 送信元ドメイン ID（`sdom_…`）。 |

リクエストボディはありません。

## レスポンス

`200 OK` と、送信元ドメインを返します。`ETag` にはそのバージョンが設定されます。

| フィールド | 型 | 説明 |
|---|---|---|
| `id` | string | 送信元ドメイン ID（`sdom_…`）。 |
| `domain` | string | IDNA 2008 の A ラベル形式のドメイン。小文字で、末尾のドットはありません。 |
| `status` | string | `pending_dns`（DNS レコードの反映待ち）、`verified`（送信可能）、`degraded`（レコードが 72 時間失敗しており、環境はプラットフォーム送信にフォールバックしています）、または `disabled`（プラットフォームによって無効化されています）。 |
| `active_selector` | string | 署名に使用される DKIM セレクタ。`akp1` または `akp2`。 |
| `dkim_status` | string or null | 2 つの DKIM CNAME の最後のチェック結果（両方のうち悪い方）。`ok`、`missing`、`wrong_target`、`lookup_failed` のいずれか。最初のチェック前は null。 |
| `return_path_status` | string or null | Return-Path CNAME の最後のチェック結果。コードは同じです。最初のチェック前は null。 |
| `dmarc_alignment` | string or null | 最後のチェックにおける DMARC の結果。`aligned`、`not_aligned`、`no_record`、`invalid_record`、`lookup_failed` のいずれか。DMARC は必須ではありません。 |
| `last_checked_at` | string or null | 最後にチェックした時刻。 |
| `failing_since` | string or null | `verified` ドメインで最初に失敗したチェックの時刻。72 時間に達すると、ドメインは `degraded` になります。 |
| `degraded_since` | string or null | ドメインが `degraded` になった時刻。 |
| `records` | array | 公開する DNS レコード。`type`（`CNAME` または `TXT`）、`name`、`value`、`required` を含みます。2 つの DKIM CNAME と Return-Path CNAME は必須です。最後のチェックで `_dmarc` レコードが見つからなかった場合は、DMARC の推奨設定（`v=DMARC1; p=none`）が `required: false` で追加されます。 |
| `version` | integer | ドメインのバージョン。`ETag` と同じ値です。チェックを含め、書き込みのたびに増加します。 |
| `created_at` | string | 作成日時。 |
| `updated_at` | string | 最後に変更された日時。 |

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

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 404 | `not_found` | 送信元ドメインが存在しない、別の環境に属している、または ID の形式が不正です。 |
| 401 | `unauthenticated` | 認証情報が見つからない、無効、または取り消されています。 |
| 403 | `insufficient_permissions` | 認証情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間を待ってから再試行してください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。`Retry-After` の期間を待ってから再試行してください。 |

## 例

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