문서로 건너뛰기
API

도메인 목록 조회

워크스페이스의 모든 도메인과 각각의 수신, 발송, 추적, 파일 상태를 반환합니다.

GETapi.openemail.uk/domains

본인 키로 워크스페이스에 실제 호출을 실행합니다.

GET /domains

워크스페이스의 모든 도메인과 각각의 수신, 발송, 추적, 파일 상태를 반환합니다.

수신과 발송은 별개입니다

모든 도메인은 수신과 발송을 서로 독립적인 두 개의 상태 객체로 보고합니다. receiving.verified는 도메인의 MX가 메일을 이곳으로 가져오고 소유권 챌린지가 게시되어 있어 도메인이 수신을 받아들일 수 있다는 뜻입니다. 발신에 대해서는 아무것도 말해 주지 않습니다.

sending은 발신 쪽 절반으로, 새로 검사한 결과가 아니라 도메인에 저장된 서명 검사 결과에서 읽어 옵니다. sending.statusverified, pending, failed, no_identity, unknown 중 하나이고, sending.canSend는 지금 이 도메인에서의 발송이 받아들여질지를 알려 주며, sending.checkedAt은 그 판정의 시점이고, sending.error에는 마지막 실패가 담기며, sending.note는 상태를 설명하는 한 문장입니다. 하루보다 오래된 부정적 판정은 거부가 아니라 불확실로 취급되므로, statuspending인 동안에도 canSend가 true일 수 있습니다.

tracking은 세 번째 객체로, 도메인의 메일이 아니라 선택 사항인 커스텀 추적 도메인에 대한 것입니다. tracking.status는 앱에서든 PATCH /domains/{id}로든 하나가 설정되기 전까지 none이며, 모든 필드는 그 페이지에서 설명합니다.

storage는 같은 필드를 가진 네 번째 객체로, 선택 사항인 커스텀 파일 도메인에 대한 것입니다. 즉 이 도메인에서 보낸 파일의 다운로드 링크가 사용하는 이름입니다. 설정 방식과 설명 페이지는 동일하며, storage.status는 하나가 설정되기 전까지 none입니다.

예시

domains:read가 필요합니다.

curl
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이면 DNS를 아직 한 번도 확인하지 않았다는 뜻입니다. "실패했다"가 아니라 "아직 보지 않았다"입니다. 도메인을 추가하고 30초 뒤에 이 둘은 전혀 다르게 읽힙니다.