mail

POST /v1/mail/services

Set email up on a domain.

모든 mail 엔드포인트

인증

Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 mail.manage 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.

조직 ID가 들어가는 위치

이 엔드포인트는 JSON 본문의 필드로 org_id을(를) 받습니다.

조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.

무료 체험하기

대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.

curl -X POST https://api.zinndigital.com/v1/mail/services \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "fqdn": <string> }'

로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요

상세 정보

Registers the email service and requests its provisioning. Returns `201` with the service `pending`: creating the backend account and publishing the mail DNS is a durable Temporal workflow (CLAUDE.md §2.9), so poll `status` or subscribe to `mail.provisioned` / `mail.provisioning_failed`. ⛔ **Provisioning refuses to overwrite existing mail.** If the domain's apex already carries a foreign `MX`, or its zone cannot be read at all, the service ends `failed` rather than replacing records that are delivering someone's live email. That refusal is not retried — it is a decision about the customer's own domain. Requires `mail.manage`. Fails `409` when the domain already has an email service, and `422` when the plan does not include mailboxes.

요청 본문

이름유형필수설명
org_idUuid아니요UUIDv7 identifier — sortable by creation time (docs/02 §8).
fqdnstringThe domain to set email up on.
domain_idUuid | null아니요
providerMailProvider아니요Who runs the mailboxes for this domain. Defaults to `zinn` — our own email. `google_workspace` and `microsoft_365` publish that provider's own MX, SPF, DKIM and autodiscover rec…
provider_configMailProviderConfig | null아니요The `custom` provider's values. Required in effect for `custom`; ignored otherwise.

응답

이름유형필수설명
idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
fqdnstringThe domain the mailboxes are on.
provider_configMailProviderConfig | null아니요The `custom` provider's declared values, served back so the domain screen can show and edit what was declared. `null` on every other provider, whose values are documented and de…
siteMailServiceSite | null아니요The site currently serving this domain, or `null` when no site does. **Derived from the hostname, never stored**: mail attaches to a domain and a domain outlives the site on it,…
mailbox_provisioningMailboxProvisioningWhether **we** pre-create a starter mailbox on this domain. `managed` — we make one when the domain is provisioned (the Footprint-Free/PBN line and our own fleet); `self_service…
mail_onlyboolean**This domain uses us for mail and nothing else** — an active mail service on a hostname no website of ours serves. Published as one server-side answer because more than one con…
domain_idUuid | null아니요The registered domain this serves, when we hold the registration.
statusMailServiceStatusA mail service's lifecycle state.
providerMailProviderWhich provider serves a domain's mail. `custom` is **the reseller's own provider** (W40-MAIL, owner ruling 2026-09-06): a white-label reseller sells mail they buy elsewhere, dec…
mailbox_quota_mbintegerSize of each mailbox in MB, captured when the service was created.
mailbox_limitintegerMailboxes allowed on this domain; `-1` is uncapped. Captured when the service was created; a later downgrade is enforced against the live plan as well, so the number actually ap…
mailboxes_usedintegerHow many mailboxes currently consume the allowance.
dns_applied_atobject아니요When the mail DNS was last published. `null` means never — mailboxes that exist but receive nothing, which is the one state a customer must be told about.
created_atstring

이 엔드포인트가 반환할 수 있는 오류

401 · 403 · 409 · 422 · 429