API
도메인 추가
워크스페이스에 도메인을 추가하고, 필요한 모든 DNS 레코드와 함께 반환합니다. 도메인은 미검증 상태이며 catch-all이 켜진 채로 시작하고, 레코드가 공개 DNS에서 응답하면 자동으로 검증됩니다.
POST/domains
본인 키로 워크스페이스에 실제 호출을 실행합니다.
POST /domains
워크스페이스에 도메인을 추가하고, 필요한 모든 DNS 레코드와 함께 반환합니다. 도메인은 미검증 상태이며 catch-all이 켜진 채로 시작하고, 레코드가 공개 DNS에서 응답하면 자동으로 검증됩니다.
요청
매개변수
domainstring필수- `acme.com`이나 `mail.acme.com` 같은 도메인 이름만. 앞뒤 공백을 제거하고 소문자로 바꾸며, 국제화 도메인 이름은 ASCII 형식으로 저장됩니다. 스킴, 경로, 주소는 거부됩니다.
예시
domains:write와, 주소나 도메인 제한이 없는 키가 필요합니다. 새 도메인은 워크스페이스 전체에 미치기 때문입니다.
curl -X POST "$OE/domains" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "domain": "acme.com" }'{ "object": "domain", "id": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f", "domain": "acme.com", "receiving": { "verified": false, "verifiedAt": null, "catchAll": true, "lastCheckedAt": "2026-09-25T10:00:02.000Z", "error": "No MX records yet. DNS changes can take a few minutes to spread." }, "sending": { "status": "no_identity", "canSend": false, "checkedAt": null, "error": null, "note": "Sending is not set up yet. Publish the signing record listed for this domain, and sending switches on shortly after it answers in DNS." }, "tracking": { "host": null, "status": "none", "active": false, "target": "", "record": null, "checkedAt": null, "verifiedAt": null, "error": null }, "storage": { "host": null, "status": "none", "active": false, "target": "", "record": null, "checkedAt": null, "verifiedAt": null, "error": null }, "addresses": [], "createdAt": "2026-09-25T10:00:00.000Z", "records": [ { "type": "MX", "name": "acme.com", "value": "inbound.mail.example", "priority": 10, "purpose": null, "status": "missing" }, { "type": "TXT", "name": "acme.com", "value": "v=spf1 include:_spf.openemail.uk ~all", "priority": null, "purpose": null, "status": "missing" }, { "type": "TXT", "name": "_openemail-challenge.acme.com", "value": "oe-verify=4f1c9a2b7e8d6053a1c4", "priority": null, "purpose": "Proves you own this domain", "status": "missing" } ], "dmarc": null}예시는 records를 줄였습니다. 실제 응답에는 DMARC, 서명 CNAME, return-path 레코드를 포함해 도메인에 필요한 모든 레코드가 나열되며, 각 필드는 GET /domains/{id}에서 설명합니다.
레코드를 주어진 그대로 게시한 다음, POST /domains/{id}/verify를 호출하거나 기다리세요. 도메인은 조회될 때마다, 그리고 백그라운드 점검에서 다시 검사되며, 통과하는 순간 domain.verified가 발생합니다.
거부되는 경우
409domain_already_added: 이 워크스페이스 소유자가 이미 이 도메인을 가지고 있습니다.409domain_claimed: 다른 계정이 가지고 있습니다.409related_domain_owned: 이 도메인의 상위 도메인이나 하위 도메인이 다른 계정에 속해 있어 두 계정으로 나눌 수 없습니다.409operator_domain: 이 도메인은 OpenEmail 자체의 것입니다.403domain_allowance_reached: 요금제가 더 이상 도메인을 허용하지 않습니다. 메시지에 더 많은 도메인을 허용하는 요금제가 나옵니다.422capability_unsupported: 키가 특정 주소나 도메인으로 제한되어 있습니다.