ドキュメント本文へスキップ
API

DNS 接続

ワークスペースに接続された DNS プロバイダーのアカウントで、OpenEmail はこれを通じてドメインのレコードを自分で書き込みます。プロバイダーが本人にサインインを求めるため、アカウントはアプリで接続します。

GET/dns-connections

3件の呼び出しをワークスペースに対して実行します。

GET /dns-connections

ワークスペースに接続された DNS プロバイダーのアカウントで、OpenEmail はこれを通じてドメインのレコードを自分で書き込みます。プロバイダーが本人にサインインを求めるため、アカウントはアプリで接続します。

接続を一覧する

domains:read が必要です。接続が解除されたものも含むすべての接続を、それぞれが担当するドメインとともに返します。このサーバーがそもそもプロバイダーを接続できない場合、configured は false です。

curl
curl "$OE/dns-connections" -H "$AUTH"
レスポンス
{  "object": "list",  "configured": true,  "data": [    {      "object": "dns_connection",      "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",      "provider": "cloudflare",      "subject": "[email protected]",      "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],      "status": "active",      "lastVerifiedAt": "2026-09-30T08:00:00.000Z",      "lastError": null,      "createdAt": "2026-09-01T10:12:00.000Z",      "domains": [        {          "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",          "domain": "acme.com",          "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",          "zoneName": "acme.com",          "state": "ready",          "records": 7,          "keepsMail": true,          "busy": false        }      ],      "records": 7,      "removable": false    }  ]}

status は、OpenEmail がその接続を通じて書き込める間は active、プロバイダーがアプリでのアカウントの再接続を求めている場合は needs-reauth、接続が解除された後は revoked、最後の呼び出しが失敗した場合は error です。

1 つの接続を読み取る

domains:read が必要です。GET /dns-connections/{id} は、接続を解除した場合の影響も返します。busy は同期が実行中のドメインを、keepsMail はレコードが取り下げられるとメールを受信しなくなる検証済みのドメインを示します。

curl
curl "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
レスポンス
{  "object": "dns_connection",  "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "provider": "cloudflare",  "subject": "[email protected]",  "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],  "status": "active",  "lastVerifiedAt": "2026-09-30T08:00:00.000Z",  "lastError": null,  "createdAt": "2026-09-01T10:12:00.000Z",  "domains": [    {      "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",      "domain": "acme.com",      "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",      "zoneName": "acme.com",      "state": "ready",      "records": 7,      "keepsMail": true,      "busy": false    }  ],  "records": 7,  "removable": false,  "busy": [],  "keepsMail": ["acme.com"]}

接続を解除する

domains:write が必要です。DELETE /dns-connections/{id} は、接続を通じて書き込まれたレコードを取り下げ、接続が担当するすべてのドメインを切り離し、プロバイダー側で接続を取り消します。レコードが取り下げられた検証済みのドメインはメールを受信しなくなるので、先に接続を読み取ってください。

curl
curl -X DELETE "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
レスポンス
{  "object": "dns_connection",  "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "provider": "cloudflare",  "subject": "[email protected]",  "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],  "status": "revoked",  "lastVerifiedAt": "2026-09-30T08:00:00.000Z",  "lastError": null,  "createdAt": "2026-09-01T10:12:00.000Z",  "removed": false,  "confirmed": true,  "detached": { "domains": 1, "detached": 1, "removed": 7, "rewritten": 0, "pending": 0, "left": [] }}

すでに接続が解除された接続を削除すると、ドメインもレコードも残っていなければ一覧から消え、removed が true になります。まだ何か残っている場合、呼び出しは 409 dns_connection_in_use になります。

接続のいずれかのドメインで同期が実行中の場合は 409 dns_busy で拒否され、何も取り消されません。

特定のアドレスやドメインに限定されたキーやアプリは 422 capability_unsupported で拒否されます。また、メンバーの代わりに動くアプリには、そのメンバーのロールに workspace:manage も必要です。

OAuth アクセストークンでこの呼び出しを行うには確認コードが必要です。アプリが直近 60 分以内にコードを確認するまで、呼び出しは 403 step_up_required を返し、何も変更しません。API キーが求められることはありません。コードの求め方と確認方法は「認証」ページにあります。

リファレンス