Dërgo te audiencat
Dërgon një mesazh te të gjithë në një ose më shumë audienca, si kopje më vete për çdo person dhe të personalizuar nga çdo kontakt. Çdo kopje ka saktësisht një marrës dhe as cc as bcc, ndaj askush nuk sheh se kujt tjetër i shkoi, dhe çdo kopje është një email i zakonshëm me id-në e vet `msg_`, ngjarje, gjurmim dhe webhook-e. Thirrja përgjigjet menjëherë me `202` dhe dërgimi vazhdon në sfond, ndaj ndiqeni me `GET /broadcasts/{id}`.
Ekzekuton thirrjen reale kundrejt hapësirës suaj të punës, me çelësin tuaj.
POST /broadcasts
Dërgon një mesazh te të gjithë në një ose më shumë audienca, si kopje më vete për çdo person dhe të personalizuar nga çdo kontakt. Çdo kopje ka saktësisht një marrës dhe as cc as bcc, ndaj askush nuk sheh se kujt tjetër i shkoi, dhe çdo kopje është një email i zakonshëm me id-në e vet msg_, ngjarje, gjurmim dhe webhook-e. Thirrja përgjigjet menjëherë me 202 dhe dërgimi vazhdon në sfond, ndaj ndiqeni me GET /broadcasts/{id}.
Shembull
Kërkon emails:send dhe audiences:read. audienceIds mban 1 deri në 10 id. Trupi vjen nga html dhe/ose text, ose nga një template i ruajtur, kurrë nga të dyja, dhe subject është i detyrueshëm përveç nëse e jep shablloni.
curl -X POST "$OE/broadcasts" -H "$AUTH" -H 'content-type: application/json' -d '{ "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "from": "Acme <[email protected]>", "subject": "{{firstName|Hello}}, the September release is out", "html": "<p>Hi {{firstName|there}},</p><p>Here is what changed this month.</p>", "text": "Hi {{firstName|there}}, here is what changed this month. Unsubscribe: {{unsubscribeUrl}}", "tags": { "campaign": "release-2026-09" }, "scheduledAt": "PT2H"}'{ "object": "broadcast", "id": "brd_5a8c1e3f7b2d94a06c8e1f3b", "status": "scheduled", "mode": "live", "source": "api", "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "from": "Acme <[email protected]>", "subject": "{{firstName|Hello}}, the September release is out", "counts": { "recipients": 412, "created": 0, "skipped": 0, "failedToQueue": 0, "queued": 0, "sending": 0, "sent": 0, "failed": 0, "cancelled": 0 }, "lastError": null, "scheduledAt": "2026-09-23T14:00:00.000Z", "startedAt": null, "completedAt": null, "cancelledAt": null, "createdAt": "2026-09-23T12:00:00.000Z", "updatedAt": "2026-09-23T12:00:00.000Z", "replayed": false}Përgjigja është queued, ose scheduled me scheduledAt, që pranon një çast ISO 8601 ose një kohëzgjatje si PT2H, jo më shumë se 365 ditë përpara. counts.recipients është vlerësimi i marrë tani, dhe numëruesit e tjerë nisin nga 0. Koka Location emërton transmetimin.
E sigurt për ta riprovuar me një kokë Idempotency-Key: i njëjti çelës përgjigjet 200 me transmetimin që krijoi thirrja e parë dhe Idempotency-Replayed: true, dhe i njëjti çelës me trup tjetër është 422 idempotency_key_reuse. Pa çelës, dërgimi i të njëjtit trup dy herë e dërgon transmetimin dy herë.
Kopjet nuk ruhen në dosjen Të dërguarat, sepse transmetimi është regjistrimi. GET /emails?broadcastId=brd_5a8c1e3f7b2d94a06c8e1f3b i rendit, një për person.
Kush e merr
Çdo kontakt në të paktën një nga audiencat, i numëruar një herë sado audienca ta mbajnë. Dy lloje kontaktesh lihen jashtë: ai që është çregjistruar nga çdo audiencë e zgjedhur ku ndodhet, dhe ai adresa e të cilit është në listën e bllokimit pas një kthimi ose ankese, ose sepse dikush e shtoi aty. Një kontakt i shtuar në një nga audiencat pas thirrjes, por para se dërgimi ta arrijë, përfshihet.
Dërgimi i kalon audiencat 50 njerëz njëherësh dhe ia jep çdo kopje të njëjtit kanal që përdor POST /emails, ndaj çdo kopje riprovohet, gjurmohet dhe raportohet si çdo mesazh tjetër. POST /broadcasts/preview kthen numrin nga i cili do të niste kjo thirrje, pa dërguar asgjë.
I gjithë dërgimi krahasohet me dërgimet mujore të planit para se të shkruhet ndonjë gjë. Një transmetim që kuota nuk e mbulon refuzohet me 429 send_quota_exceeded dhe nuk lë asgjë pas. Çdo kopje numërohet si një dërgim.
Fushat e bashkimit
subject, html dhe text plotësohen për çdo person. Çdo fushë pranon një vlerë rezervë pas një vije, e përdorur kur kontakti nuk ka vlerë për të, ndaj {{firstName|there}} bëhet "there" për një kontakt të ruajtur pa emër. Vlerat maskohen në html, hapësirat brenda kllapave lejohen, dhe çdo {{…}} tjetër lihet saktësisht siç është shkruar.
| Fusha | Plotësohet me |
|---|---|
| `{{firstName}}` | Fjala e parë e emrit të kontaktit. |
| `{{lastName}}` | Pjesa tjetër e emrit të kontaktit pas fjalës së parë. |
| `{{name}}` | Emri i plotë i kontaktit. |
| `{{email}}` | Adresa ku po shkon kopja. |
| `{{unsubscribeUrl}}` | Lidhja që e çregjistron këtë person nga këto audienca. |
Me template në vend të trupit, të njëjtat pesë vlera kalohen si props, por vetëm props-et që shablloni deklaron. Një shabllon që deklaron firstName e merr, dhe një prop që nuk deklarohet nuk dërgohet kurrë, ndaj kopjet nuk dështojnë kurrë për një prop të panjohur. Gjithçka që vendosni te template.props shkon njësoj në çdo kopje.
Çregjistrimi
Çdo kopje mban List-Unsubscribe dhe List-Unsubscribe-Post: List-Unsubscribe=One-Click. Kjo i lejon një klienti poste të shfaqë butonin e vet të çregjistrimit, dhe këtë kërkojnë ofruesit e mëdhenj të kutive postare nga posta masive.
Një trup html ose text që nuk e vendos vetë {{unsubscribeUrl}} merr një fundfaqe me një rresht: "You are receiving this because you are on this mailing list. Unsubscribe". Një shabllon dërgohet saktësisht ashtu siç është, ndaj vendosni {{unsubscribeUrl}} në shabllon.
Lidhja hap një faqe me një buton Çregjistrohu, ndaj një skaner lidhjesh që e merr nuk çregjistron askënd, ndërsa kërkesa me një klikim e një klienti poste çregjistron menjëherë. Sido që të jetë, personi shënohet i çregjistruar në çdo audiencë ku shkoi ky transmetim, gjë që duket si unsubscribedAt te GET /audiences/{id}/contacts. Audiencat e tjera, kontakti i tij dhe posta që i dërgohet një mesazh në herë nuk preken.
Refuzimet
| Statusi | Kodi | Kur |
|---|---|---|
| 403 | from_address_forbidden | Çelësi nuk mund të dërgojë si from. |
| 404 | audience_not_found | Një id te audienceIds nuk emërton asnjë audiencë në këtë hapësirë pune. |
| 409 | domain_not_sendable | Domeni i from nuk mund të nënshkruajë ende postë, si te POST /emails. |
| 422 | no_recipients | Audiencat janë bosh, ose të gjithë në to janë çregjistruar ose janë të bllokuar. |
| 422 | invalid_parameter | Pa trup, html ose text pranë template, pa subject dhe pa shabllon, më shumë se 10 audienca ose 8 etiketa, ose një scheduledAt që nuk është në të ardhmen ose është më shumë se 365 ditë larg. |
| 422 | template_not_found | Shablloni nuk zgjidhet. Refuzimet e tjera të shabllonit emërtojnë gjithashtu template.*. |
| 422 | capability_unsupported | Çelësi është i kufizuar te adresa të caktuara. Audiencat i përkasin gjithë hapësirës së punës. |
| 429 | send_quota_exceeded | Plani nuk mund të mbulojë një kopje për të gjithë këtë muaj. |
Pa bashkëngjitje, cc, bcc, përkthim apo enkriptim. tags pranon deri në 8, dhe çdo kopje mban edhe broadcast_id, që e shton serveri.