Kalo te dokumentacioni
API

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}`.

POSTapi.openemail.uk/broadcasts

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
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"}'
Përgjigje
{  "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.

FushaPlotë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

StatusiKodiKur
403from_address_forbiddenÇelësi nuk mund të dërgojë si from.
404audience_not_foundNjë id te audienceIds nuk emërton asnjë audiencë në këtë hapësirë pune.
409domain_not_sendableDomeni i from nuk mund të nënshkruajë ende postë, si te POST /emails.
422no_recipientsAudiencat janë bosh, ose të gjithë në to janë çregjistruar ose janë të bllokuar.
422invalid_parameterPa 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.
422template_not_foundShablloni nuk zgjidhet. Refuzimet e tjera të shabllonit emërtojnë gjithashtu template.*.
422capability_unsupportedÇelësi është i kufizuar te adresa të caktuara. Audiencat i përkasin gjithë hapësirës së punës.
429send_quota_exceededPlani 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.