Перейти к документации
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 равен active, пока OpenEmail может писать через подключение, needs-reauth, когда провайдер хочет, чтобы аккаунт заново подключили в приложении, revoked, после того как подключение отключили, и error, когда последний вызов не удался.

Прочитать одно подключение

Требуется 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-ключа его никогда не спрашивают. Страница «Аутентификация» показывает, как запросить код и подтвердить его.

Справочник