Aller à la documentation
API

Connexions DNS

Les comptes de fournisseur DNS connectés à l'espace de travail, par lesquels OpenEmail écrit lui-même les enregistrements d'un domaine. Un compte se connecte dans l'application, car le fournisseur demande à la personne de se connecter.

GET/dns-connections

Exécute l'un des 3 appels sur votre espace de travail.

GET /dns-connections

Les comptes de fournisseur DNS connectés à l'espace de travail, par lesquels OpenEmail écrit lui-même les enregistrements d'un domaine. Un compte se connecte dans l'application, car le fournisseur demande à la personne de se connecter.

Lister les connexions

Nécessite domains:read. Chaque connexion, y compris les connexions déconnectées, avec les domaines que chacune sert. configured vaut false quand ce serveur ne peut connecter aucun fournisseur.

curl
curl "$OE/dns-connections" -H "$AUTH"
Réponse
{  "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 vaut active tant qu'OpenEmail peut écrire via la connexion, needs-reauth quand le fournisseur veut que le compte soit reconnecté dans l'application, revoked une fois qu'elle a été déconnectée et error quand le dernier appel a échoué.

Lire une connexion

Nécessite domains:read. GET /dns-connections/{id} ajoute ce que sa déconnexion laisserait derrière elle : busy nomme les domaines sur lesquels une synchronisation est en cours, et keepsMail les domaines vérifiés qui cessent de recevoir du courrier une fois leurs enregistrements retirés.

curl
curl "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
Réponse
{  "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"]}

Déconnecter une connexion

Nécessite domains:write. DELETE /dns-connections/{id} retire les enregistrements écrits via la connexion, détache chaque domaine qu'elle sert et la révoque chez le fournisseur. Un domaine vérifié dont les enregistrements sont retirés cesse de recevoir du courrier, lisez donc d'abord la connexion.

curl
curl -X DELETE "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
Réponse
{  "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": [] }}

Supprimer une connexion déjà déconnectée la retire de la liste, une fois qu'il ne lui reste aucun domaine ni aucun enregistrement, et removed vaut true. S'il lui reste encore quelque chose, l'appel donne 409 dns_connection_in_use.

Si une synchronisation est en cours sur l'un de ses domaines, l'appel est refusé avec 409 dns_busy, et rien n'est révoqué.

Une clé ou une application limitée à certaines adresses ou certains domaines est refusée avec 422 capability_unsupported, et une application qui agit pour un membre a aussi besoin de workspace:manage dans le rôle de ce membre.

Un jeton d'accès OAuth a besoin d'un code de vérification pour cet appel. Tant que l'application n'en a pas vérifié un dans les 60 dernières minutes, l'appel répond 403 step_up_required et ne change rien. On ne le demande jamais à une clé API. La page Authentification montre comment demander un code et le vérifier.

Référence