Kampaně
Vytvářejte kampaně, vybírejte pro ně seznamy kontaktů a kampaně odešlete hned, nebo je naplánujte.
Vytvoření kampaně
Vytvoří kampaň ve stavu draft. Vyžaduje API klíč s oprávněním full. Vyvolá událost campaign.created.
Nová kampaň nemá žádné příjemce. Seznamy kontaktů pro ni vyberte endpointem Úprava kampaně a potom ji odešlete nebo naplánujte. Kredity se účtují při odeslání kampaně: 2 kredity za e-mail.
/campaignsParametry v těle požadavku
namestringpovinnésubjectstring{{first_name}}.from_emailstringnews@acme.com.from_namestringAcme. Zpráva se odešle od Acme <news@acme.com>.reply_tostringfrom_email.htmlstring{{first_name}}, {{last_name}}, {{email}}, {{unsubscribe_url}} a {{cf.<key>}} pro vlastní pole. Tělo nastavte při vytváření kampaně.textstringhtml.preview_textstringhtml skrytý preheader.contentstringhtml a text, ne content.content_typestringvýchozí: htmlcontent: html, text nebo mjml. Emailit MJML nekompiluje; zkompilované HTML pošlete v html.Odpověď
Vrací 201 Created s objektem kampaně. status je draft. Odpověď nevrací html, text ani content.
Pokud chybí name, vrací 400, a pokud API klíč nemá oprávnění full, vrací 403.
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "draft",
"subject": "October news for {{first_name}}",
"from_email": "news@acme.com",
"from_name": "Acme",
"reply_to": "support@acme.com",
"preview_text": null,
"content_type": "html",
"created_at": "2026-10-01T09:30:12.482193Z",
"updated_at": "2026-10-01T09:30:12.482193Z"
}{
"error": "Bad Request"
}{
"statusCode": 403,
"error": "Forbidden",
"message": "Permission denied: campaigns:create"
}Načtení kampaně
Načte kampaň podle jejího ID nebo názvu. Vyžaduje API klíč s oprávněním full.
/campaigns/{id}Parametry v cestě
idstringpovinnécmp_…), nebo název kampaně. Názvy s mezerami nebo speciálními znaky zakódujte pro URL.Odpověď
Vrací objekt kampaně.
objectstringcampaign.idstringcmp_.statusstringdraft, scheduled, queued, sending, sent, canceled nebo archived. queued znamená, že naplánovaná kampaň dosáhla času odeslání a čeká na volný odesílací proces.namestringsubjectstringfrom_emailstring"", dokud není nastavená.from_namestring"", dokud není nastavené.reply_tostring"" znamená, že odpovědi chodí na from_email.preview_textstring | nullcontent_typestringhtml, text nebo mjml.scheduled_atstring | nullsent_atstring | nullrecipientsobject[]audience_id (aud_…) a exclude (true u vyloučeného seznamu).Tělo (html, text a content) odpověď neobsahuje. Statistiky zapojení najdete ve webovém rozhraní v sekci Email MarketingCampaigns.
Pokud parametru id neodpovídá žádná kampaň ve workspace, vrací 404.
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "scheduled",
"subject": "October news for {{first_name}}",
"from_email": "news@acme.com",
"from_name": "Acme",
"reply_to": "support@acme.com",
"preview_text": null,
"content_type": "html",
"sent_at": null,
"scheduled_at": "2026-10-08 09:00:00+00",
"created_at": "2026-10-01 09:30:12.482193+00",
"updated_at": "2026-10-01 10:02:47.118204+00",
"recipients": [
{ "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
{ "audience_id": "aud_3hRmYTSQ4ca6y9tbPI0IQPjVTL9", "exclude": true }
]
}{
"error": "Campaign not found"
}Úprava kampaně
Upraví pole, která předáte, a ostatní ponechá beze změny. Použijte ho k výběru seznamů kontaktů kampaně před odesláním. Vyžaduje API klíč s oprávněním full. Vyvolá událost campaign.updated.
Naplánovaná kampaň odešle to, co je v čase odeslání uložené, takže ji můžete upravovat i po naplánování.
/campaigns/{id}Parametry v cestě
idstringpovinnécmp_…), nebo název kampaně.Parametry v těle požadavku
namestringsubjectstringfrom_emailstringfrom_namestringreply_tostringfrom_email.preview_textstringcontentstringcontent_typestringcontent: html, text nebo mjml.recipientsobject[]Seznamy kontaktů, na které má kampaň cílit. Nahradí stávající výčet. Zahrňte alespoň jeden seznam s exclude nastaveným na false.
audience_id(string, povinné): ID seznamu kontaktů (aud_…) v tomto workspace.exclude(boolean, výchozí hodnotafalse):trueuloží seznam jako vyloučený. Webové rozhraní vyloučené seznamy odečítá od odhadu počtu příjemců, samotné odeslání ale vyloučení zatím neuplatňuje, takže tyto kontakty odeberte i ze zahrnutých seznamů.
Duplicitní ID seznamů se ignorují. Při odeslání Emailit pošle e-mail jednou každému přihlášenému kontaktu ze zahrnutých seznamů a přeskočí odhlášené kontakty a blokované adresy.
Tělo v HTML a prostém textu se nastavuje při vytvoření kampaně. Neznámá pole v těle požadavku se ignorují.
Odpověď
Vrací upravený objekt kampaně včetně recipients.
Pokud recipients neobsahuje žádný zahrnutý seznam kontaktů nebo odkazuje na seznam mimo workspace, vrací 422, a pokud kampaň neexistuje, vrací 404.
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "draft",
"subject": "Your October update, {{first_name}}",
"from_email": "news@acme.com",
"from_name": "Acme",
"reply_to": "support@acme.com",
"preview_text": null,
"content_type": "html",
"scheduled_at": null,
"created_at": "2026-10-01 09:30:12.482193+00",
"updated_at": "2026-10-01 10:02:47.118204+00",
"recipients": [
{ "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
{ "audience_id": "aud_3hRmYTSQ4ca6y9tbPI0IQPjVTL9", "exclude": true }
]
}{
"message": "Validation failed.",
"errors": {
"recipients": ["One or more audiences are invalid."]
}
}{
"error": "Campaign not found"
}Výpis kampaní
Vrací kampaně workspace od nejnovějších. Vyžaduje API klíč s oprávněním full.
/campaignsParametry dotazu
pageintegervýchozí: 1limitintegervýchozí: 10searchstringstatusstringdraft, scheduled, sending (zahrnuje i queued), sent, canceled, archived nebo all.matchstringHodnota all (výchozí) vyžaduje shodu se všemi filtry. S hodnotou or stačí shoda s kterýmkoli filtrem. Viz Filtrování.
orderstringKlíč řazení pro tento výpis. Viz klíče řazení níže.
directionstringasc, nebo desc.
Klíče filtrů
Filtry používají parametry dotazu ve tvaru key.condition=value, například status.exact=sent nebo created_at.after=2026-09-01. Podmínky pro jednotlivé typy najdete na stránce Filtrování a řazení.
| Klíč | Typ | Poznámky |
|---|---|---|
name |
string | |
subject |
string | |
status |
enum | draft, scheduled, queued, sending, sent, archived |
created_at |
date | |
sent_at |
date |
Klíče řazení pro order: name, subject, status, created_at, sent_at.
Odpověď
Vrací stránku objektů kampaní bez reply_to, preview_text, content_type a recipients. Ty získáte endpointem Načtení kampaně.
dataobject[]total_recordsintegernext_page_urlstring | nullnull na poslední stránce. Obsahuje jen page a limit, takže když ji použijete, přidejte znovu vyhledávání a filtry.previous_page_urlstring | nullnull na první stránce.{
"data": [
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "sent",
"subject": "Your October update, {{first_name}}",
"from_email": "news@acme.com",
"from_name": "Acme",
"sent_at": "2026-10-08 09:00:04+00",
"scheduled_at": "2026-10-08 09:00:00+00",
"created_at": "2026-10-01 09:30:12.482193+00",
"updated_at": "2026-10-08 09:00:31+00"
}
],
"total_records": 34,
"next_page_url": "/v2/campaigns?page=2&limit=20",
"previous_page_url": null
}Odeslání nebo naplánování kampaně
Odešle kampaň hned, nebo ji naplánuje, když předáte budoucí scheduled_at. Vyžaduje API klíč s oprávněním full a ověřený workspace: neověřené workspace nemohou kampaně odesílat a dostanou 403.
Před odesláním se ujistěte, že kampaň má from_email na ověřené doméně, předmět, tělo html nebo text a alespoň jeden zahrnutý seznam kontaktů (nastavíte ho endpointem Úprava kampaně). Každý e-mail stojí 2 kredity.
/campaigns/{id}/sendParametry v cestě
idstringpovinnécmp_…), nebo název kampaně.Parametry v těle požadavku
scheduled_atstringKdy odeslat. Přijímá ISO 8601 (2026-10-08T09:00:00Z), unixové časové razítko v sekundách nebo přirozený jazyk, například tomorrow at 9am (vyhodnocuje se v UTC). Čas musí být v budoucnosti a kampaň musí být ve stavu draft.
Pokud chcete odeslat hned, parametr vynechte. Pokud chcete naplánovanou kampaň odeslat dřív, zavolejte tento endpoint bez scheduled_at.
Odpověď
Odeslání hned: stav se změní na sending a Emailit vyvolá campaign.sending. Emailit potom vytvoří jeden e-mail pro každého příjemce: pro každý přihlášený kontakt ze zahrnutých seznamů kontaktů, bez duplicitních adres, odhlášených kontaktů a blokovaných adres. Jakmile jsou všichni příjemci předáni k odeslání, stav se změní na sent a Emailit vyvolá campaign.sent. Doručování sledujte ve webovém rozhraní nebo pomocí událostí e-mailů.
Naplánování: stav se změní na scheduled a Emailit vyvolá campaign.scheduled. V naplánovaný čas kampaň přejde do stavu queued (campaign.queued) a potom se odešle stejně jako výše.
Odpověď obsahuje object, id, name a nový status, při naplánování také scheduled_at.
| Stavový kód | Kdy |
|---|---|
403 |
Workspace není ověřený, nebo API klíč nemá oprávnění full. |
404 |
Parametru id neodpovídá žádná kampaň. |
422 |
scheduled_at nelze zpracovat nebo není v budoucnosti, nebo jste se pokusili naplánovat kampaň, která není koncept. |
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "scheduled",
"scheduled_at": "2026-10-08T09:00:00.000000Z"
}{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "sending"
}{
"code": "unverified_workspace_recipient",
"error": "Workspace not verified",
"message": "Unverified workspaces cannot send campaigns. You can send individual emails only to workspace members' account emails."
}{
"error": "Campaign cannot be scheduled",
"message": "Campaign status is 'sent'. Only draft campaigns can be scheduled."
}Zrušení kampaně
Nastaví stav kampaně na canceled a vyvolá událost campaign.canceled. Vyžaduje API klíč s oprávněním full.
Zrušit lze jen kampaně ve stavu draft nebo sending; jakýkoli jiný stav vrací 422. Zrušení kampaně, která se odesílá, nestáhne zpět e-maily, které už jsou ve frontě k doručení.
/campaigns/{id}/cancelParametry v cestě
idstringpovinnécmp_…), nebo název kampaně.Odpověď
Vrací object, id, name a status (canceled).
Pokud stav kampaně není draft ani sending, vrací 422, a pokud kampaň neexistuje, vrací 404.
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"status": "canceled"
}{
"error": "Campaign cannot be canceled",
"message": "Campaign status is 'scheduled'. Only 'draft' or 'sending' campaigns can be canceled."
}{
"error": "Campaign not found"
}Smazání kampaně
Trvale smaže kampaň. Vyžaduje API klíč s oprávněním full. Vyvolá událost campaign.deleted.
Smazání kampaně nemá vliv na e-maily, které už byly odeslány nebo zařazeny do fronty. Pokud chcete zastavit kampaň, která se odesílá, nejdřív ji zrušte.
/campaigns/{id}Parametry v cestě
idstringpovinnécmp_…), nebo název kampaně.Odpověď
Vrací object, id, name a deleted: true. Pokud kampaň neexistuje, vrací 404.
{
"object": "campaign",
"id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
"name": "October newsletter",
"deleted": true
}{
"error": "Campaign not found"
}