Campaigns
One-off e-mail campaigns (newsletters): draft, audience, content, test, approve (send now or schedule), pause, resume, cancel, language variants.
Technická reference je anglicky (stejně jako strojově čitelný dokument OpenAPI). Celou skupinu pro AI agenta načtete z /api/openapi.json?tag=Campaigns.
Přihlášení: Authorization: Bearer pst_... nebo HTTP Basic (e-mail člena firmy a API klíč).
Operace
| Metoda | Cesta | Popis |
|---|---|---|
| GET | /api/v1/tenants/{tenant}/campaigns | List campaigns |
| POST | /api/v1/tenants/{tenant}/campaigns | Create a campaign (draft) |
| POST | /api/v1/tenants/{tenant}/campaigns/audience | Count and explain the recipients of an audience |
| POST | /api/v1/tenants/{tenant}/campaigns/tags | Change labels of campaigns |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id} | Get a campaign |
| PATCH | /api/v1/tenants/{tenant}/campaigns/{campaign_id} | Update a campaign draft |
| DELETE | /api/v1/tenants/{tenant}/campaigns/{campaign_id} | Delete a campaign draft |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/approve | Approve a campaign: send now or schedule |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/cancel | Cancel a scheduled or paused campaign |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/content | Get the content of a campaign |
| PUT | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/content | Save the content of a campaign draft |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/pause | Pause a sending or scheduled campaign |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/preview | Render a campaign for one contact |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/resume | Resume a paused campaign |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/stats | Statistics of a campaign by provider and domain |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/test | Send a test e-mail of a campaign |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants | Get the language variants of a campaign |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants | Create language variants of a campaign |
| PUT | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants | Change the language variants of a campaign |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/approve | Approve the language variants (send or schedule) |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/cancel | Cancel the language variants |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/pause | Pause the language variants |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/preview | Preview the audience split of language variants |
| POST | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/resume | Resume the language variants |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/stats | Statistics of the language variants |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/versions | List saved content versions of a campaign |
| GET | /api/v1/tenants/{tenant}/campaigns/{campaign_id}/versions/{version_id} | Get one content version of a campaign |
| GET | /api/v1/tenants/{tenant}/senders | List verified senders |
List campaigns
GET /api/v1/tenants/{tenant}/campaigns
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full · Nástroj MCP: list_campaigns
Campaigns (draft, scheduled, sending, paused, completed, cancelled) with recipients and stats.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
page | query | integer | ne | Page number, from 1. default 1, min 1 |
pageSize | query | integer | ne | Items per page, 1 to 100. default 25, min 1, max 100 |
q | query | string | ne | Search text. max 200 chars |
shop | query | string | ne | Shop id filter. |
sort | query | string | ne | Sort fields separated by commas, "-" = descending, at most 3 (e.g. name,-id). |
status | query | one of: draft, scheduled, sending, paused, completed, cancelled | ne | Status filter. |
tag | query | string | ne | Label filter; repeat for more labels. |
Odpovědi
- 200 OK:
application/jsonobject
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | q, sort, status, tag |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Create a campaign (draft)
POST /api/v1/tenants/{tenant}/campaigns
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: create_campaign
Creates a campaign draft (only name and shopId are required). Then save_campaign_content, preview_campaign_audience, send_campaign_test and send_campaign.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | ano | |
shopId | string | ano | |
senderId | string or null | ano | A sender address of the campaign shop; it must be verified for approval. |
fromName | string | ano | |
subject | string | ano | |
preheader | string | ano | |
templateId | string or null | ano | Template the content was copied from; the content itself is saved with saveCampaignContent. |
audience | CampaignAudience | ano | |
trackOpens | boolean | ne | |
trackClicks | boolean | ne | |
utm | CampaignUtm or null | ne | |
headers | array of CampaignHeader | ne | |
timing | one of: now, schedule, later | ne | |
plannedAt | string or null | ne | |
replyTo | string | ne | One of replyToOptions; '' = the sender's own reply-to. |
linkParams | array of CampaignLinkParam | ne | |
preferTime | boolean | ne | |
unsubscribePageId | string or null | ne | An active unsubscribe page of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's page. |
footerId | string or null | ne | A published footer of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's footer. |
Odpovědi
- 201 Created:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | audience, footerId, preferTime, replyTo, senderId, templateId, timing, unsubscribePageId |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Count and explain the recipients of an audience
POST /api/v1/tenants/{tenant}/campaigns/audience
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full · Nástroj MCP: preview_campaign_audience
Counts recipients of an audience without saving: matched, recipients and every excluded reason.
AudienceCount of an audience for a shop: matched, recipients and one reason per left-out contact. anyShop true = the audience of a language variant (lists and segments of any shop).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
Tělo požadavku (application/json)
object
Odpovědi
- 200 OK:
application/jsonAudienceCount
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | anyShop, audience |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Change labels of campaigns
POST /api/v1/tenants/{tenant}/campaigns/tags
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
Tělo požadavku (application/json): Required by the server: ids.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
ids | array of string | ano | |
add | array of string | ne | |
remove | array of string | ne | |
tags | array of string | ne |
Odpovědi
- 200 OK:
application/jsonobject
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | ids |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Get a campaign
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full · Nástroj MCP: get_campaign
One campaign with audience, sender, tracking and state.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Update a campaign draft
PATCH /api/v1/tenants/{tenant}/campaigns/{campaign_id}
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: update_campaign
Changes a draft campaign (any CampaignInput field).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | ne | |
shopId | string | ne | |
senderId | string or null | ne | A sender address of the campaign shop; it must be verified for approval. |
fromName | string | ne | |
subject | string | ne | |
preheader | string | ne | |
templateId | string or null | ne | Template the content was copied from; the content itself is saved with saveCampaignContent. |
audience | CampaignAudience | ne | |
trackOpens | boolean | ne | |
trackClicks | boolean | ne | |
utm | CampaignUtm or null | ne | |
headers | array of CampaignHeader | ne | |
timing | one of: now, schedule, later | ne | |
plannedAt | string or null | ne | |
replyTo | string | ne | One of replyToOptions; '' = the sender's own reply-to. |
linkParams | array of CampaignLinkParam | ne | |
preferTime | boolean | ne | |
unsubscribePageId | string or null | ne | An active unsubscribe page of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's page. |
footerId | string or null | ne | A published footer of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's footer. |
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | audience, footerId, preferTime, replyTo, senderId, templateId, timing, unsubscribePageId |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Delete a campaign draft
DELETE /api/v1/tenants/{tenant}/campaigns/{campaign_id}
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: delete_campaign (přes MCP jen s náhledem a potvrzením)
Deletes a draft campaign that sent nothing.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 204 No content
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Approve a campaign: send now or schedule
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/approve
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: send_campaign (přes MCP jen s náhledem a potvrzením)
Approves a draft campaign and sends it now (sendAt null) or schedules it (sendAt ISO time, 5 minutes to 365 days ahead). The preview shows subject, sender and the exact recipient count; expectedRecipients defaults to that count.
Body {sendAt: ISO time in UTC or null (now), expectedRecipients: the number the user confirmed}.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sendAt | string or null | ano | null = send now; otherwise at least 5 minutes and at most 365 days ahead. |
expectedRecipients | number | ano | The number the user confirmed; the server refuses (409 recipients) when the audience drifted more than 5 %. |
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | sendAt |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | test_only |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Cancel a scheduled or paused campaign
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/cancel
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: cancel_campaign
Cancels a campaign for good (what was sent stays in the statistics).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
object
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Get the content of a campaign
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/content
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full · Nástroj MCP: get_campaign_content
Content of a campaign (editor, html, design, version).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonEmailContent
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Save the content of a campaign draft
PUT /api/v1/tenants/{tenant}/campaigns/{campaign_id}/content
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: save_campaign_content
Saves the content of a draft campaign (copy a template: get_template, then save its content here).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
editor | one of: visual, html | ano | |
html | string | ano | |
design | EmailDesign or null | ano | |
baseVersion | number | ano | The version the editor started from; a newer one on the server answers 409 version (saved elsewhere meanwhile). |
saveKind | one of: manual, auto, restore | ne | History entry kind: auto (autosave, journaled), manual (Uložit), restore (a version taken back). Default auto. |
Odpovědi
- 200 OK:
application/jsonEmailContent
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Pause a sending or scheduled campaign
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/pause
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: pause_campaign
Pauses a scheduled or sending campaign.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
object
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Render a campaign for one contact
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/preview
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
The e-mail as one contact would get it: body {email} of a contact of the tenant; answers {subject, preheader, html} with every merge tag filled and sample links. Nothing is sent or recorded. It shows one contact's data (name, e-mail, custom fields, orders in scripts), so it needs the module contacts too (read): campaigns read alone (content manager, developer) neither reads a contact nor learns whether an address is one (review of batch 8).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json): Required by the server: email.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
email | string | ano |
Odpovědi
- 200 OK:
application/jsonCampaignPreview
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | script |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | forbidden | contacts |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Resume a paused campaign
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/resume
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: resume_campaign (přes MCP jen s náhledem a potvrzením)
Resumes a paused campaign (it sends again, or goes back to scheduled when its time is ahead).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
object
Odpovědi
- 200 OK:
application/jsonCampaignDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Statistics of a campaign by provider and domain
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/stats
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonobject
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Send a test e-mail of a campaign
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/test
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full · Nástroj MCP: send_campaign_test
Sends a test e-mail of the campaign to the account's test addresses only (list_test_recipients).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
to | string | ano |
Odpovědi
- 200 OK:
application/jsonTestSendResult
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. | |
| 503 | unavailable |
Get the language variants of a campaign
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Create language variants of a campaign
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Duplicate as variant: body {shopId, label, sourceLabel?}. Answers the new variant's id and the group.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json): Required by the server: label, shopId.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
shopId | string | ano | |
label | string | ano | |
sourceLabel | string | ne |
Odpovědi
- 201 Created:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Change the language variants of a campaign
PUT /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Order and labels of the group: body {variants: [{id, label}] in the new order, every variant once}.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json): Required by the server: variants.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
variants | array of object | ano |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Approve the language variants (send or schedule)
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/approve
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
One send action for every variant: body {sendAt: ISO time or null (now), expectedRecipients: {id: final}}.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Tělo požadavku (application/json)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sendAt | string or null | ano | null = now. |
expectedRecipients | map of number | ano | The final number per variant id the user confirmed. |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | sendAt |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | test_only |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Cancel the language variants
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/cancel
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status, variants |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Pause the language variants
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/pause
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status, variants |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Preview the audience split of language variants
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/preview
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Final numbers per variant: matched, recipients of its own audience, taken by an earlier variant, final.
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonVariantPreview
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Resume the language variants
POST /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/resume
Oprávnění: modul campaigns, úroveň full; klíč s přístupem full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonCampaignVariantGroup
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 409 | conflict | status, variants |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Statistics of the language variants
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/variants/stats
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Statistics per variant and combined (unique contacts: one variant per contact, so the sums add up).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
Odpovědi
- 200 OK:
application/jsonVariantStats
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
List saved content versions of a campaign
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/versions
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
before | query | string | ne | |
limit | query | string | ne |
Odpovědi
- 200 OK:
application/jsonContentVersionList
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Get one content version of a campaign
GET /api/v1/tenants/{tenant}/campaigns/{campaign_id}/versions/{version_id}
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
campaign_id | path | string | ano | Id of the campaign (string of digits). |
version_id | path | string | ano | Id of the version (string of digits). |
Odpovědi
- 200 OK:
application/jsonContentVersionDetail
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 400 | validation | |
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 404 | not_found | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
List verified senders
GET /api/v1/tenants/{tenant}/senders
Oprávnění: modul campaigns, úroveň read; klíč s přístupem read nebo full · Nástroj MCP: list_senders
Sender addresses per shop (only verified ones may send).
Parametry
| Název | Kde | Typ | Povinné | Popis |
|---|---|---|---|---|
tenant | path | string (uuid) | ano | Public id of the company (tenant), a UUID: GET /api/v3/account-info answers it as data.guid; the app shows it on the API keys page. |
Odpovědi
- 200 OK:
application/jsonobject
Chyby
| Stav | Kód | Hodnoty message |
|---|---|---|
| 401 | 401 unauthorized: missing, unknown, revoked, expired or idle API key. | |
| 403 | 403 forbidden: message tenant (another company), scope (read-only key), api_key (person only), or the module the key's roles lack. | |
| 429 | 429 rate_limited: wait Retry-After seconds. |
Schémata
ApproveInput
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sendAt | string or null | ano | null = send now; otherwise at least 5 minutes and at most 365 days ahead. |
expectedRecipients | number | ano | The number the user confirmed; the server refuses (409 recipients) when the audience drifted more than 5 %. |
AudienceCount
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
matched | number | ano | Unique contacts in the chosen lists and segments. |
recipients | number | ano | Who would receive the campaign now. |
excluded | object | ano |
BoxPadding
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
top | number | ano | |
right | number | ano | |
bottom | number | ano | |
left | number | ano |
CampaignAudience
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
listIds | array of string | ano | |
segmentIds | array of string | ano | Segments of the campaign shop. |
excludeListIds | array of string | ano | Members of these lists are left out. |
excludeInactive | boolean | ano | Leave out engagement E and the excluded state (long inactive); recommended. |
excludeEmails | array of string | ano | Addresses left out by hand (at most 1000). |
onlyWithPurpose | boolean | ano | Only contacts with a valid consent for one of purposeIds (any purpose when empty). |
purposeIds | array of string | ano |
CampaignDetail
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
preheader | string | ano | |
senderId | string or null | ano | |
fromName | string | ano | |
fromEmail | string | ano | |
replyTo | string | ano | |
templateId | string or null | ano | Template the content was copied from (information only; later template edits do not change the campaign). |
hasContent | boolean | ano | The campaign has its own content (GET …/content); without it the approval answers 400 content. |
audience | CampaignAudience | ano | |
pausedReason | one of: manual, bounce_rate, complaint_rate, unsubscribe_rate, recipient_drift, template_error, null | ano | |
approvedAt | string or null | ano | SE's Aktivováno: when the campaign was approved for sending (null for drafts). |
trackOpens | boolean | ano | Advanced step: tracking (on by default as in SE), UTM on links of the campaign's e-shop, own X- headers. |
trackClicks | boolean | ano | |
utm | CampaignUtm or null | ano | |
headers | array of CampaignHeader | ano | |
timing | SendTiming | ano | Send time chosen in step 1 of the draft; the approval still takes the time explicitly. |
plannedAt | string or null | ano | |
linkParams | array of CampaignLinkParam | ano | Step 3 "Sledování odkazů" (SE): free name / value pairs added to links of the campaign's e-shop. |
preferTime | boolean | ano | Step 3 "Ideální čas odeslání": each contact at the hour of his or her usual opens, within 24 hours. |
replyToOptions | array of string | ano | Addresses that may receive replies (the shop's sender addresses and their reply-to). |
unsubscribePageId | string or null | ne | Step 3 Odhlašovací stránka (SE, migration 0391): the campaign's own page; null = the template's or the default. |
footerId | string or null | ne | Vybraná patička / Patička emailu (PA-01, migration 0410): a published footer; null = the template's or the default one. |
id | string | ano | |
name | string | ano | |
shopId | string | ano | |
subject | string | ano | |
status | one of: cancelled, completed, draft, scheduled, sending, paused | ano | |
recipients | number or null | ano | Recipients frozen at approval (expected_recipients); null for drafts. |
scheduledAt | string or null | ano | |
startedAt | string or null | ano | |
completedAt | string or null | ano | |
createdAt | string | ano | |
updatedAt | string | ano | |
publicUrl | string | ne | Odkaz ke sdílení: the campaign's public preview (merge tags unfilled); absent from older servers. |
stats | CampaignStats or null | ano | null until sending starts. |
variantGroupId | string or null | ne | Language variants sent together (Kampaně › Varianty): the group's id, null or absent for a single campaign. |
variantLabel | string | ne | Short name of the variant (CZ, SK ...); '' for a single campaign. |
variantPosition | number | ne | Order in the group: a contact in several variants' audiences receives only the first one. |
tags | array of string | ne | Labels (Štítky, set from the grid's ⋮ menu or as a bulk action); absent from older servers. |
CampaignHeader
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | ano | |
value | string | ano |
CampaignInput
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | ano | |
shopId | string | ano | |
senderId | string or null | ano | A sender address of the campaign shop; it must be verified for approval. |
fromName | string | ano | |
subject | string | ano | |
preheader | string | ano | |
templateId | string or null | ano | Template the content was copied from; the content itself is saved with saveCampaignContent. |
audience | CampaignAudience | ano | |
trackOpens | boolean | ne | |
trackClicks | boolean | ne | |
utm | CampaignUtm or null | ne | |
headers | array of CampaignHeader | ne | |
timing | one of: now, schedule, later | ne | |
plannedAt | string or null | ne | |
replyTo | string | ne | One of replyToOptions; '' = the sender's own reply-to. |
linkParams | array of CampaignLinkParam | ne | |
preferTime | boolean | ne | |
unsubscribePageId | string or null | ne | An active unsubscribe page of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's page. |
footerId | string or null | ne | A published footer of the tenant, null = the template's or the default; left out on a new draft made from a template = the template's footer. |
CampaignLinkParam
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | ano | |
value | string | ano |
CampaignListItem
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
id | string | ano | |
name | string | ano | |
shopId | string | ano | |
subject | string | ano | |
status | one of: cancelled, completed, draft, scheduled, sending, paused | ano | |
recipients | number or null | ano | Recipients frozen at approval (expected_recipients); null for drafts. |
scheduledAt | string or null | ano | |
startedAt | string or null | ano | |
completedAt | string or null | ano | |
createdAt | string | ano | |
updatedAt | string | ano | |
approvedAt | string or null | ne | SE's Aktivováno: when the campaign was approved for sending (null for drafts). |
publicUrl | string | ne | Odkaz ke sdílení: the campaign's public preview (merge tags unfilled); absent from older servers. |
stats | CampaignStats or null | ano | null until sending starts. |
variantGroupId | string or null | ne | Language variants sent together (Kampaně › Varianty): the group's id, null or absent for a single campaign. |
variantLabel | string | ne | Short name of the variant (CZ, SK ...); '' for a single campaign. |
variantPosition | number | ne | Order in the group: a contact in several variants' audiences receives only the first one. |
tags | array of string | ne | Labels (Štítky, set from the grid's ⋮ menu or as a bulk action); absent from older servers. |
CampaignPreview
The e-mail as one contact would get it (POST /campaigns/{id}/preview): every merge tag filled, sample links.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
subject | string | ano | |
preheader | string | ano | |
html | string | ano |
CampaignStats
Unique contacts per event type.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sent | number | ano | |
delivered | number | ano | |
opened | number | ano | |
clicked | number | ano | |
bounced | number | ano | |
complained | number | ano | |
unsubscribed | number | ano |
CampaignUtm
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
source | string | ano | |
medium | string | ano | |
campaign | string | ano | |
term | string | ne | |
content | string | ne |
CampaignVariant
One variant: a whole campaign of its own shop (content, subject, sender, feeds) with an audience chosen by hand.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
id | string | ano | |
name | string | ano | |
label | string | ano | |
position | number | ano | |
shopId | string | ano | |
shopCode | string | ano | |
currency | Currency | ano | |
language | Lang | ano | |
subject | string | ano | |
preheader | string | ano | |
status | one of: cancelled, completed, draft, scheduled, sending, paused | ano | |
senderId | string or null | ano | |
fromName | string | ano | |
hasContent | boolean | ano | |
listIds | array of string | ano | |
segmentIds | array of string | ano | |
recipients | number or null | ano | Final number frozen at the approval; null for drafts. |
scheduledAt | string or null | ano | |
pausedReason | one of: manual, bounce_rate, complaint_rate, unsubscribe_rate, recipient_drift, template_error, null | ano | |
stats | CampaignStats or null | ano |
CampaignVariantGroup
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
groupId | string or null | ano | null = a single campaign (no variants yet). |
variants | array of CampaignVariant | ano | In their order. |
created | string | ne | Id of the variant just created by addCampaignVariant. |
ContentVersion
One entry of the content history (Historie uložení).
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
id | string | ano | |
version | number | ano | |
kind | one of: manual, auto, restore | ano | |
createdAt | string | ano | |
createdBy | string or null | ano | Name or e-mail of the user; null for the API or unknown. |
ContentVersionDetail
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
content | object | ano | |
id | string | ano | |
version | number | ano | |
kind | one of: manual, auto, restore | ano | |
createdAt | string | ano | |
createdBy | string or null | ano | Name or e-mail of the user; null for the API or unknown. |
ContentVersionList
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
items | array of ContentVersion | ano | |
more | boolean | ano |
Currency
one of: CZK, EUR
EmailContent
E-mail content of a template or a campaign.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
editor | one of: visual, html | ano | |
html | string | ano | HTML with merge tags left in place (compiled from the design, or written by hand); the core personalises and sends it. |
design | EmailDesign or null | ano | Visual editor only. |
version | number | ano | 0 = no content yet; every save adds one. |
updatedAt | string or null | ano |
EmailContentInput
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
editor | one of: visual, html | ano | |
html | string | ano | |
design | EmailDesign or null | ano | |
baseVersion | number | ano | The version the editor started from; a newer one on the server answers 409 version (saved elsewhere meanwhile). |
saveKind | one of: manual, auto, restore | ne | History entry kind: auto (autosave, journaled), manual (Uložit), restore (a version taken back). Default auto. |
EmailDesign
Source of a visual design: MJML plus the global styles, so the editor reopens it exactly.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
format | mjml-1 | ano | Format version; a later editor migrates older designs. |
mjml | string | ano | |
styles | EmailStyles | ano |
EmailStyles
Global look of a visual design. The editor writes it as MJML attributes; every element can override it.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
fontFamily | string | ano | One of EMAIL_FONTS (web-safe stacks; recipients' clients have no web fonts by default). |
headingFontFamily | string | ano | |
fontSize | number | ano | Base text size in px (12 to 20). |
textColor | string | ano | |
headingColor | string | ano | |
linkColor | string | ano | |
buttonColor | string | ano | |
buttonTextColor | string | ano | |
backgroundColor | string | ano | Around the e-mail. |
contentColor | string | ano | Body of the e-mail. |
width | number | ano | Width of the e-mail in px (480 to 800). |
magic | MagicStyles | ne | Settings of the Magic editor (e-mail paddings, text styles, dark mode, element defaults); the server keeps the object as it is (bounded JSON, API-CONTRACT.md). Absent in designs saved before it. |
Error
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
error | object | ano |
{
"error": {
"code": "validation",
"message": "email"
}
}GridTagsInput
Bulk label change: add and remove, or tags = the new labels of every row.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
ids | array of string | ano | |
add | array of string | ne | |
remove | array of string | ne | |
tags | array of string | ne |
Lang
one of: cs, sk
MagicBackground
A background of the Magic editor: a plain colour, a linear gradient or a picture (https).
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
type | one of: color, gradient, image | ano | |
from | string | ne | |
to | string | ne | |
angle | number | ne | Gradient direction in degrees (180 = top to bottom). |
image | string | ne | |
fit | one of: cover, repeat, original | ne | Picture: cover the area, tile, or the original size once. |
MagicStyles
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
padding | BoxPadding | ne | Space around the e-mail body, desktop and mobile. |
paddingMobile | BoxPadding | ne | |
darkMode | boolean | ne | Dark mode in the recipient's app (prefers-color-scheme) with its colours. |
darkBackgroundColor | string | ne | |
darkContentColor | string | ne | |
darkTextColor | string | ne | |
darkHeadingColor | string | ne | |
darkLinkColor | string | ne | |
darkButtonColor | string | ne | Dark mode colours of the buttons and the divider (SE: every colour has its "(tmavé schéma)" variant). |
darkButtonTextColor | string | ne | |
darkButton2Color | string | ne | |
darkButton2TextColor | string | ne | |
darkDividerColor | string | ne | |
background | MagicBackground | ne | SE "Typ pozadí" of the e-mail (around the body) and of the body: a gradient or a picture over the colour (backgroundColor / contentColor stay the fallback of clients without head styles). |
bodyBackground | MagicBackground | ne | |
button2Color | string | ne | Secondary button and divider colours. |
button2TextColor | string | ne | |
button2BorderColor | string | ne | |
buttonBorderColor | string | ne | |
dividerColor | string | ne | |
footerDefault | boolean | ne | System footer (SmartEmailing "Patička"): its own default look instead of the e-mail's, and no background. |
footerTransparent | boolean | ne | |
text | object | ne | Text styles per kind; missing keys = defaults. Mobile values override desktop ones under 480 px. |
textMobile | object | ne | |
defaults | object | ne | Defaults of new elements (SmartEmailing "Prvky"). |
SendTiming
one of: now, schedule, later
Sender
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
id | string | ano | |
shopId | string | ano | |
name | string | ano | |
email | string | ano | |
replyTo | string | ano | |
verified | boolean | ano | Domain verified (SPF, DKIM, DMARC); only verified senders can send. |
isDefault | boolean | ano |
TestSendResult
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
to | string | ano | |
sentAt | string | ano |
VariantApproveInput
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sendAt | string or null | ano | null = now. |
expectedRecipients | map of number | ano | The final number per variant id the user confirmed. |
VariantPreview
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
variants | array of VariantPreviewItem | ano | |
total | number | ano |
VariantPreviewItem
Counts of one variant before sending: its own audience, the recipients an earlier variant takes, the final number.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
campaignId | string | ano | |
label | string | ano | |
shopId | string | ano | |
takenByEarlier | number | ano | |
final | number | ano | |
matched | number | ano | Unique contacts in the chosen lists and segments. |
recipients | number | ano | Who would receive the campaign now. |
excluded | object | ano |
VariantStats
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
variants | array of object | ano | |
total | CampaignStats or null | ano | Sums over the variants (a contact gets one variant, so these are unique contacts); null before sending. |