mail

POST /v1/mail/services

Set email up on a domain.

جميع نقاط نهاية mail

المصادقة

أرسل مفتاح واجهة برمجة التطبيقات (API key) كرمز حامل (bearer token). يجب أن يحمل المفتاح إذن mail.manage؛ والمفتاح الذي لا يملكه يُرفض بالرمز 403 وليس 404.

حيث يتم إدخال معرف مؤسستك

تقبل هذه نقطة النهاية org_id حقلًا في نص JSON.

معرف مؤسستك موجود على شاشة مفاتيح واجهة برمجة التطبيقات (API) في لوحة تحكمك، بجوار المفتاح نفسه. وهو نفس المعرف في كل طلب تجريه.

جربه الآن

استبدل أي شيء بين أقواس زاوية بقيمك الخاصة، والعنصر النائب للمفتاح بمفتاح من لوحة تحكمك.

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

هل سجلت الدخول؟ تقوم وحدة تحكم واجهة برمجة التطبيقات في لوحة التحكم الخاصة بك بربط معرف مؤسستك الحقيقي ومفتاحك الخاص، وتنفذ الطلب مقابل واجهة برمجة التطبيقات المباشرة لتتمكن من رؤية الاستجابة الفعلية. افتح هذه النهاية الطرفية في وحدة تحكم 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).
fqdnstringنعمThe 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.

الاستجابة

الاسمالنوعمطلوبما هو هذا
idUuidنعمUUIDv7 identifier — sortable by creation time (docs/02 §8).
fqdnstringنعمThe 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_provisioningMailboxProvisioningنعمWhether **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.
statusMailServiceStatusنعمA mail service's lifecycle state.
providerMailProviderنعمWhich 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_mbintegerنعمSize of each mailbox in MB, captured when the service was created.
mailbox_limitintegerنعمMailboxes 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_usedintegerنعمHow 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