پرش به مستندات
API

فهرست مسیرهای ارسال

دو مسیری که ایمیل در آن‌ها می‌رود، با آمار برگشت و شکایتشان.

GET/sending/streams

هر کدام از 2 فراخوانی را روی فضای کاری شما اجرا می‌کند.

GET /sending/streams

دو مسیری که ایمیل در آن‌ها می‌رود، با آمار برگشت و شکایتشان.

نمونه

به emails:read نیاز دارد. ایمیل در دو مسیر با صف‌ها و اعتبار خودشان می‌رود: transactional برای ایمیل‌های برنامه مانند بازنشانی گذرواژه و رسید، و broadcast برای خبرنامه‌ها. هر مسیر با آمار ۷ روز گذشته‌اش و limits که مسیر ارسال‌های گروهی به آن پایبند است می‌آید.

curl
curl "$OE/sending/streams" -H "$AUTH"
پاسخ
{ "object": "list", "data": [{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}] }

مسیر ارسال‌های گروهی وقتی نرخ برگشتش از 4% یا نرخ شکایتش از 0.2% در آن ۷ روز بگذرد خودش متوقف می‌شود، به شرطی که به minimumRecipients رسیده باشد. pausedReason می‌گوید کدام، مالک فضای کاری ایمیلی دریافت می‌کند، و ایمیل‌های برنامه همچنان فرستاده می‌شوند.

تا وقتی متوقف است، پیامی که با stream برابر broadcast فرستاده شود و یک ارسال گروهی تازه 409 stream_paused هستند، و ارسال‌های گروهیِ در حال ارسال نگه داشته می‌شوند.

انتخاب مسیر

به emails:send نیاز دارد. stream در POST /emails، در هر پیامِ POST /emails/batch و در POST /templates/{id}/send مسیر را انتخاب می‌کند. اگر چیز دیگری نگویید transactional است، و هر نسخه از یک ارسال گروهی در broadcast می‌رود.

curl
curl -X POST "$OE/emails" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "What is new in October", "text": "Three things shipped this month.", "stream": "broadcast" }'
پاسخ
{ "object": "email", "id": "msg_5f1c9a0e7b2d4c6a8e3f1b7d", "status": "queued", "stream": "broadcast" }

در SMTP، سرآیند X-OpenEmail-Stream: broadcast همین کار را می‌کند و پیش از خروج پیام برداشته می‌شود.

ادامهٔ یک مسیر متوقف‌شده

به domains:write و مالک فضای کاری نیاز دارد. POST /sending/streams/broadcast/resume مسیر را ادامه می‌دهد: پیام‌های نگه‌داشته‌شده بی‌درنگ فرستاده می‌شوند و شمارش ۷ روزه از همین حالا دوباره آغاز می‌شود، پس اول مخاطبان را پاک‌سازی کنید.

curl
curl -X POST "$OE/sending/streams/broadcast/resume" -H "$AUTH"
پاسخ
{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}

مسیری که متوقف نشده 409 stream_not_paused است.

توکن دسترسی OAuth برای این فراخوانی کد تأیید هویت لازم دارد. تا برنامه در 60 دقیقهٔ گذشته کدی را تأیید نکرده، فراخوانی 403 step_up_required برمی‌گرداند و چیزی را تغییر نمی‌دهد. از کلید API هرگز خواسته نمی‌شود. صفحهٔ احراز هویت نشان می‌دهد چطور کد بخواهید و آن را تأیید کنید.

مرجع