Lister les domaines
Tous les domaines de l'espace de travail, avec leur état de réception, d'envoi, de suivi et de fichiers.
Exécute le véritable appel sur votre espace de travail, avec votre propre clé.
GET /domains
Tous les domaines de l'espace de travail, avec leur état de réception, d'envoi, de suivi et de fichiers.
Réception et envoi sont deux choses distinctes
Chaque domaine rapporte la réception et l'envoi sous la forme de deux objets d'état indépendants. receiving.verified signifie que l'enregistrement MX du domaine achemine son courrier ici et que son défi de propriété est publié : le domaine peut donc recevoir des messages. Cela ne dit rien du sortant.
sending est la moitié sortante, lue depuis la vérification de signature enregistrée du domaine plutôt que depuis une vérification fraîche. sending.status vaut verified, pending, failed, no_identity ou unknown, sending.canSend indique si un envoi depuis le domaine serait accepté à cet instant, sending.checkedAt date ce verdict, sending.error porte le dernier échec, et sending.note est une phrase qui explique l'état. Un verdict négatif vieux de plus d'un jour est traité comme inconnu plutôt que comme un refus : canSend peut donc valoir true alors que status vaut pending.
tracking est un troisième objet, qui concerne le domaine de suivi personnalisé facultatif du domaine plutôt que son courrier. tracking.status vaut none tant qu'aucun n'est défini, dans l'application ou avec PATCH /domains/{id}, dont la page décrit chaque champ.
storage est un quatrième objet, doté des mêmes champs, qui concerne le domaine de fichiers personnalisé facultatif : le nom qu'utilisent les liens de téléchargement des fichiers envoyés depuis le domaine. Il se définit de la même façon et sur la même page, et storage.status vaut none tant qu'aucun n'est défini.
Exemple
Nécessite domains:read.
curl "$OE/domains" -H "$AUTH"{ "object": "list", "data": [ { "object": "domain", "id": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f", "domain": "acme.com", "receiving": { "verified": true, "verifiedAt": "2026-08-14T10:02:00.000Z", "catchAll": false, "lastCheckedAt": "2026-08-29T06:00:00.000Z", "error": null }, "sending": { "status": "verified", "canSend": true, "checkedAt": "2026-08-29T06:00:00.000Z", "error": null, "note": "Mail from this domain is signed and can be sent." }, "tracking": { "host": "links.acme.com", "status": "active", "active": true, "target": "oelinks3f9a1c7e2b8d4a60.edge.openemail.uk", "record": { "type": "CNAME", "name": "links.acme.com", "value": "oelinks3f9a1c7e2b8d4a60.edge.openemail.uk" }, "checkedAt": "2026-08-29T06:10:00.000Z", "verifiedAt": "2026-08-29T06:10:00.000Z", "error": null }, "storage": { "host": "files.acme.com", "status": "active", "active": true, "target": "oefiles81c40d6b2f7e9a35.edge.openemail.uk", "record": { "type": "CNAME", "name": "files.acme.com", "value": "oefiles81c40d6b2f7e9a35.edge.openemail.uk" }, "checkedAt": "2026-08-29T06:10:00.000Z", "verifiedAt": "2026-08-29T06:10:00.000Z", "error": null }, "createdAt": "2026-08-14T09:55:11.000Z" } ]}lastCheckedAt à null signifie que le DNS n'a jamais été consulté : « nous n'avons pas encore regardé », et non « cela a échoué ». Les deux se lisent très différemment trente secondes après l'ajout d'un domaine.