Seznamy kontaktů
Spravujte seznamy odběratelů pro kampaně a přihlašovací formuláře.
Vytvoření seznamu kontaktů
Vytvoří prázdný seznam kontaktů.
/audiencesVyžaduje API klíč s oprávněním full. Lidi přidáte přes Přidání odběratele, nebo tak, že při vytvoření kontaktu předáte ID seznamu v poli audiences. Vyvolá událost audience.created. Viz Seznamy kontaktů.
Parametry v těle požadavku
namestringpovinnéNewsletter. Musí být ve workspace jedinečný.visibilitystringvýchozí: privatepublic zobrazí seznam na stránce pro správu odběrů všem, private jen lidem, kteří jsou k němu přihlášení.public_namestring | nullnull se zobrazí name.public_descriptionstring | nulldouble_opt_inboolean | objecttrue, nebo false, případně objekt s kterýmikoli z polí enabled, redirect_url (URL http(s), na kterou lidé po potvrzení přejdou, nebo null) a email. email přijímá from, reply_to, subject, design (default, nebo custom), heading, body, button_label a footer. Pole, která vynecháte, si ponechají uloženou hodnotu. Zapnutí vyžaduje adresu from na ověřené odesílací doméně. Viz Double opt-in.
confirmation_emailboolean | objecttrue, nebo false, případně objekt s poli enabled a email; email přijímá stejná pole jako výše a navíc button_url.unengagedobjectOdpověď
Vrací 201 s novým seznamem kontaktů včetně jeho nastavení, jak je popisuje Načtení seznamu kontaktů:
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic, nebo private.created_atstringupdated_atstring{
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"token": "4KXUJdXRVlVgbkWQm4GHLy8BleP",
"visibility": "private",
"public_name": null,
"public_description": null,
"double_opt_in": {
"enabled": false,
"redirect_url": null,
"email": {
"from": null,
"reply_to": null,
"subject": "Confirm your subscription to {{audience_name}}",
"design": "default",
"heading": "Please confirm your subscription",
"body": "Hi {{first_name|\"there\"}},\n\nYou asked to join {{audience_name}}. Confirm your email address to start getting our emails.",
"button_label": "Confirm subscription",
"footer": "Button not working? Open this link: <a href=\"{{confirm_url}}\">{{confirm_url}}</a>\n\nIf you did not ask to subscribe, ignore this email. You will not be added unless you confirm.",
"source": null
}
},
"confirmation_email": {
"enabled": false,
"email": {
"from": null,
"reply_to": null,
"subject": "You're subscribed to {{audience_name}}",
"design": "default",
"heading": "You're subscribed",
"body": "Hi {{first_name|\"there\"}},\n\nThanks for joining {{audience_name}}. You will hear from us soon.",
"button_label": "",
"button_url": "",
"footer": "You are getting this email because you subscribed to {{audience_name}}. <a href=\"{{manage_subscriptions_url}}\">Manage subscriptions</a>",
"source": null
}
},
"unengaged": { "exclude": false, "days": 365 },
"archived": false,
"archived_at": null,
"subscribers_count": 0,
"created_at": "2026-10-01T10:02:44.613207Z",
"updated_at": "2026-10-01T10:02:44.613207Z"
}{
"error": "Audience with this name already exists",
"existing": {
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"token": "4KXUJdXRVlVgbkWQm4GHLy8BleP",
"subscribers_count": 0,
"created_at": "2026-10-01T10:02:44.000000Z",
"updated_at": "2026-10-01T10:02:44.000000Z"
}
}Načtení seznamu kontaktů
Načte seznam kontaktů s jeho nastavením, počty a veřejným tokenem.
/audiences/{id}Vyžaduje API klíč s oprávněním full.
Parametry v cestě
idstringpovinnéaud_…), nebo jeho přesný název zakódovaný do URL.Odpověď
Vrací objekt seznamu kontaktů.
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic, nebo private. Veřejné seznamy se na stránce pro správu odběrů zobrazují všem, soukromé jen lidem, kteří jsou k nim přihlášení.public_namestring | nullnull, pokud se má zobrazit name.public_descriptionstring | nulldouble_opt_inobjectenabled, redirect_url (kam lidé po potvrzení přejdou, nebo null) a email, tedy e-mail pro double opt-in s poli from, reply_to, subject, design (default, nebo custom), heading, body, button_label, footer a source (MJML vlastního designu, nebo null; výpisy ho vynechávají). Pole, která jste nikdy nenastavili, obsahují výchozí hodnoty.
confirmation_emailobjectenabled a email, tedy potvrzovací e-mail, se stejnými poli jako výše a navíc button_url.
unengagedobjectarchivedbooleanarchived_at obsahuje čas archivace, nebo null.subscribers_countintegerusageobjectused (stejný počet), limit (nejvyšší počet odběratelů, který může seznam ve vašem tarifu mít, nebo null, pokud limit není) a plan. Viz Limity.
unengaged_countintegerpending_confirmations_countintegercreated_atstringupdated_atstring{
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"visibility": "public",
"public_name": "Monthly newsletter",
"public_description": "Product news and tips, once a month.",
"double_opt_in": {
"enabled": true,
"redirect_url": null,
"email": {
"from": "News <news@example.com>",
"reply_to": null,
"subject": "Confirm your subscription to {{audience_name}}",
"design": "default",
"heading": "Please confirm your subscription",
"body": "Hi {{first_name|\"there\"}},\n\nYou asked to join {{audience_name}}. Confirm your email address to start getting our emails.",
"button_label": "Confirm subscription",
"footer": "Button not working? Open this link: <a href=\"{{confirm_url}}\">{{confirm_url}}</a>\n\nIf you did not ask to subscribe, ignore this email. You will not be added unless you confirm.",
"source": null
}
},
"confirmation_email": {
"enabled": false,
"email": {
"from": null,
"reply_to": null,
"subject": "You're subscribed to {{audience_name}}",
"design": "default",
"heading": "You're subscribed",
"body": "Hi {{first_name|\"there\"}},\n\nThanks for joining {{audience_name}}. You will hear from us soon.",
"button_label": "",
"footer": "You are getting this email because you subscribed to {{audience_name}}. <a href=\"{{manage_subscriptions_url}}\">Manage subscriptions</a>",
"button_url": "",
"source": null
}
},
"unengaged": { "exclude": true, "days": 365 },
"archived": false,
"archived_at": null,
"token": "4KXUJdXRVlVgbkWQm4GHLy8BleP",
"subscribers_count": 1284,
"unengaged_count": 212,
"pending_confirmations_count": 3,
"usage": {
"used": 1284,
"limit": 50000,
"plan": "pro"
},
"created_at": "2026-10-01T10:02:44.000000Z",
"updated_at": "2026-10-01T10:02:44.000000Z"
}{
"error": "Audience not found"
}Úprava seznamu kontaktů
Přejmenuje seznam kontaktů nebo změní jeho nastavení.
/audiences/{id}Vyžaduje API klíč s oprávněním full. Pošlete jen pole, která chcete změnit. ID, token ani odběratelé se nezmění. Vyvolá událost audience.updated.
Parametry v cestě
idstringpovinnéParametry v těle požadavku
namestringvisibilitystringpublic zobrazí seznam na stránce pro správu odběrů všem, private jen lidem, kteří jsou k němu přihlášení.public_namestring | nullnull se zobrazí name.public_descriptionstring | nulldouble_opt_inboolean | objecttrue, nebo false, případně objekt s kterýmikoli z polí enabled, redirect_url (URL http(s), na kterou lidé po potvrzení přejdou, nebo null) a email. email přijímá from, reply_to, subject, design (default, nebo custom), heading, body, button_label a footer. Pole, která vynecháte, si ponechají uloženou hodnotu. Zapnutí vyžaduje adresu from na ověřené odesílací doméně. Viz Double opt-in.
confirmation_emailboolean | objecttrue, nebo false, případně objekt s poli enabled a email; email přijímá stejná pole jako výše a navíc button_url.unengagedobjectarchivedbooleanNastavení vlastního designu MJML přes email.source je součástí alfaverze MJML a pro API klíče vrací 403 s error: "mjml_alpha".
Odpověď
Vrací seznam kontaktů s jeho nastavením, stejně jako Načtení seznamu kontaktů. V této odpovědi je subscribers_count vždy 0 a počty chybí; ty zjistíte endpointem Načtení seznamu kontaktů. Neplatné nastavení vrací 422 s objektem errors, jehož klíči jsou názvy polí, například double_opt_in.email.from.
{
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Weekly newsletter",
"token": "4KXUJdXRVlVgbkWQm4GHLy8BleP",
"visibility": "public",
"public_name": "Weekly newsletter",
"public_description": null,
"double_opt_in": {
"enabled": true,
"redirect_url": null,
"email": {
"from": "News <news@example.com>",
"reply_to": null,
"subject": "Confirm your subscription to {{audience_name}}",
"design": "default",
"heading": "Please confirm your subscription",
"body": "Hi {{first_name|\"there\"}},\n\nYou asked to join {{audience_name}}. Confirm your email address to start getting our emails.",
"button_label": "Confirm subscription",
"footer": "Button not working? Open this link: <a href=\"{{confirm_url}}\">{{confirm_url}}</a>\n\nIf you did not ask to subscribe, ignore this email. You will not be added unless you confirm.",
"source": null
}
},
"confirmation_email": {
"enabled": false,
"email": {
"from": null,
"reply_to": null,
"subject": "You're subscribed to {{audience_name}}",
"design": "default",
"heading": "You're subscribed",
"body": "Hi {{first_name|\"there\"}},\n\nThanks for joining {{audience_name}}. You will hear from us soon.",
"button_label": "",
"button_url": "",
"footer": "You are getting this email because you subscribed to {{audience_name}}. <a href=\"{{manage_subscriptions_url}}\">Manage subscriptions</a>",
"source": null
}
},
"unengaged": {
"exclude": false,
"days": 365
},
"archived": false,
"archived_at": null,
"subscribers_count": 0,
"created_at": "2026-10-01T10:02:44.000000Z",
"updated_at": "2026-10-01T14:31:09.000000Z"
}{
"error": "No valid fields provided for update. Provide at least one of: name, visibility, public_name, public_description, double_opt_in, confirmation_email, unengaged, archived"
}{
"message": "Validation failed.",
"errors": {
"double_opt_in.email.from": ["Use an address on a verified sending domain of this workspace."]
}
}{
"error": "Audience not found"
}{
"error": "Another audience with this name already exists"
}Výpis seznamů kontaktů
Vrátí stránku seznamů kontaktů, od nejnovějších. Archivované seznamy se vynechávají, pokud o ně výslovně nepožádáte.
/audiencesVyžaduje API klíč s oprávněním full. Položky výpisu neobsahují token seznamu; ten získáte přes Načtení seznamu kontaktů.
Parametry dotazu
pageintegervýchozí: 1limitintegervýchozí: 10searchstringarchivedstringvýchozí: falsefalse pro aktivní seznamy, true jen pro archivované, all pro oboje.visibilitystringpublic, nebo private, pokud chcete vypsat jen tyto seznamy.matchstringvýchozí: allall, nebo or. Jak se kombinují filtry níže.orderstringname, public_name, visibility, subscribers_count nebo created_at.directionstringasc, nebo desc.Filtry
Filtry přidávejte ve tvaru key.condition=value, například name.contains=news. Viz Filtrování.
| Klíč | Typ |
|---|---|
name |
string |
public_name |
string |
visibility |
enum: public, private |
subscribers_count |
number |
created_at |
date |
Odpověď
dataobject[]object, id, name, nastavením (visibility, public_name, public_description, double_opt_in, confirmation_email, unengaged, archived, archived_at), subscribers_count, usage, created_at a updated_at. Viz Načtení seznamu kontaktů. Objekty email ve výpisu neobsahují pole source.total_recordsintegerarchived.next_page_urlstring | nullnull. Viz Stránkování.previous_page_urlstring | nullnull.{
"data": [
{
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"visibility": "public",
"public_name": "Monthly newsletter",
"public_description": "Product news and tips, once a month.",
"double_opt_in": {
"enabled": true,
"redirect_url": null,
"email": {
"from": "News <news@example.com>",
"reply_to": null,
"subject": "Confirm your subscription to {{audience_name}}",
"design": "default",
"heading": "Please confirm your subscription",
"body": "Hi {{first_name|\"there\"}},\n\nYou asked to join {{audience_name}}. Confirm your email address to start getting our emails.",
"button_label": "Confirm subscription",
"footer": "Button not working? Open this link: <a href=\"{{confirm_url}}\">{{confirm_url}}</a>\n\nIf you did not ask to subscribe, ignore this email. You will not be added unless you confirm."
}
},
"confirmation_email": {
"enabled": false,
"email": {
"from": "News <news@example.com>",
"reply_to": null,
"subject": "You're subscribed to {{audience_name}}",
"design": "default",
"heading": "You're subscribed",
"body": "Hi {{first_name|\"there\"}},\n\nThanks for joining {{audience_name}}. You will hear from us soon.",
"button_label": "",
"footer": "You are getting this email because you subscribed to {{audience_name}}. <a href=\"{{manage_subscriptions_url}}\">Manage subscriptions</a>",
"button_url": ""
}
},
"unengaged": {
"exclude": false,
"days": 365
},
"archived": false,
"archived_at": null,
"subscribers_count": 1284,
"usage": {
"used": 1284,
"limit": 50000,
"plan": "pro"
},
"created_at": "2026-10-01T10:02:44.000000Z",
"updated_at": "2026-10-01T10:02:44.000000Z"
},
{
"object": "audience",
"id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2",
"name": "Customers",
"visibility": "private",
"public_name": null,
"public_description": null,
"double_opt_in": {
"enabled": false,
"redirect_url": null,
"email": {
"from": null,
"reply_to": null,
"subject": "Confirm your subscription to {{audience_name}}",
"design": "default",
"heading": "Please confirm your subscription",
"body": "Hi {{first_name|\"there\"}},\n\nYou asked to join {{audience_name}}. Confirm your email address to start getting our emails.",
"button_label": "Confirm subscription",
"footer": "Button not working? Open this link: <a href=\"{{confirm_url}}\">{{confirm_url}}</a>\n\nIf you did not ask to subscribe, ignore this email. You will not be added unless you confirm."
}
},
"confirmation_email": {
"enabled": false,
"email": {
"from": null,
"reply_to": null,
"subject": "You're subscribed to {{audience_name}}",
"design": "default",
"heading": "You're subscribed",
"body": "Hi {{first_name|\"there\"}},\n\nThanks for joining {{audience_name}}. You will hear from us soon.",
"button_label": "",
"footer": "You are getting this email because you subscribed to {{audience_name}}. <a href=\"{{manage_subscriptions_url}}\">Manage subscriptions</a>",
"button_url": ""
}
},
"unengaged": {
"exclude": false,
"days": 365
},
"archived": false,
"archived_at": null,
"subscribers_count": 312,
"usage": {
"used": 312,
"limit": 50000,
"plan": "pro"
},
"created_at": "2026-09-20T16:45:10.000000Z",
"updated_at": "2026-09-20T16:45:10.000000Z"
}
],
"total_records": 2,
"next_page_url": null,
"previous_page_url": null
}Sloučení seznamů kontaktů
Zkopíruje do tohoto seznamu kontaktů odběratele jiných seznamů.
/audiences/{id}/mergeVyžaduje API klíč s oprávněním full. Lidé, kteří už v cílovém seznamu jsou, si v něm ponechají svůj stav, takže nikdo, kdo se odhlásil, se znovu nepřihlásí. Osoba, která je ve více slučovaných seznamech, se přidá se zapnutým Subscribed, pokud je přihlášená alespoň v jednom z nich. S delete_sources se sloučené seznamy potom smažou a kampaně, jejichž odesílání ještě neskončilo (koncepty, naplánované kampaně, kampaně ve frontě, právě odesílané kampaně a A/B testy čekající na vítěze), se místo toho pošlou na cílový seznam. Pokud taková kampaň jeden ze sloučených seznamů zahrnovala a jiný vylučovala, cílový seznam zůstane zahrnutý. Segmenty, které čerpají ze smazaného seznamu nebo na něj mají pravidlo, místo něj použijí cílový seznam, stejně jako spouštěče, kroky, podmínky a podmínky ukončení automatizací, které ho uvádějí. Totéž platí pro formuláře, které do něj přidávají lidi nebo ho nabízejí k výběru, pro dosud nepotvrzené odkazy double opt-inu a pro spuštění automatizací čekající na podmínku, která se ho týká. Každé smazání vyvolá audience.deleted.
Sloučení nevyvolává události subscriber.*, nespouští automatizace a neposílá e-maily pro double opt-in ani potvrzovací e-maily. Pokud by noví odběratelé dostali cílový seznam přes limit odběratelů vašeho tarifu, nic se nesloučí a požadavek vrátí 422 s vaším usage. Neplatný vstup, například sloučení seznamu do sebe sama, vrací také 422. Viz Sloučení seznamů.
Parametry v cestě
idstringpovinnéParametry v těle požadavku
source_idsstring[]povinnédelete_sourcesbooleanvýchozí: falseOdpověď
objectstringaudience_merge.audienceobjectobject, id, name a jeho nový subscribers_count.addedintegeralready_in_audienceintegerdeleted_source_idsstring[]{
"object": "audience_merge",
"audience": {
"object": "audience",
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscribers_count": 1503
},
"added": 219,
"already_in_audience": 93,
"deleted_source_ids": ["aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
}{
"error": "One or more audiences were not found",
"missing": ["aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
}{
"message": "Validation failed.",
"errors": {
"source_ids": ["An audience cannot be merged into itself."]
}
}Hromadná úprava seznamů kontaktů
Archivuje, vrátí z archivu nebo smaže několik seznamů kontaktů najednou.
/audiences/bulkVyžaduje API klíč s oprávněním full. Všechna ID musí patřit do workspace, jinak se nic nezmění a požadavek vrátí 404 s chybějícími ID v poli missing. Archivace a vrácení z archivu vyvolají audience.updated; smazání vyvolá audience.deleted a odebere odběratele seznamů, stejně jako Smazání seznamu kontaktů. Viz Archivace seznamu.
Parametry v těle požadavku
actionstringpovinnéarchive, unarchive nebo delete.idsstring[]povinnéOdpověď
objectstringaudience_bulk.actionstringprocessedintegerchangedintegeridsstring[]{
"object": "audience_bulk",
"action": "archive",
"processed": 2,
"changed": 2,
"ids": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2", "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
}{
"error": "One or more audiences were not found",
"missing": ["aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
}Smazání seznamu kontaktů
Natrvalo smaže seznam kontaktů a všechny z něj odebere.
/audiences/{id}Vyžaduje API klíč s oprávněním full. Spolu se seznamem se smažou i členství jeho odběratelů, ale kontakty zůstanou ve vašem workspace i ve svých ostatních seznamech. Hostovaná URL pro přihlášení k seznamu přestane fungovat. Vyvolá událost audience.deleted. Za odebraná členství se neposílají žádné události subscriber.deleted.
Parametry v cestě
idstringpovinnéOdpověď
objectstringaudience.idstringnamestringdeletedbooleantrue.{
"object": "audience",
"id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2",
"name": "Customers",
"deleted": true
}{
"error": "Audience not found"
}