إضافة نطاق
يضيف نطاقًا إلى مساحة العمل ويعيده مع كل سجل DNS يحتاجه. يبدأ النطاق غير موثّق، مع تفعيل catch-all، ويُوثَّق تلقائيًا حين تجيب السجلات في DNS العام.
ينفّذ الاستدعاء الحقيقي على مساحة عملك، بمفتاحك أنت.
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: المفتاح مقيَّد بعناوين أو نطاقات معيّنة.