Kontaktlisten
Abonnentenlisten für Kampagnen und Anmeldeformulare verwalten.
Kontaktliste erstellen
Erstellt eine leere Kontaktliste.
/audiencesErfordert einen API-Schlüssel mit dem Scope full. Personen fügen Sie mit Abonnent hinzufügen hinzu oder indem Sie beim Erstellen eines Kontakts die ID der Kontaktliste in audiences übergeben. Löst das Event audience.created aus. Siehe Kontaktlisten.
Body-Parameter
namestringerforderlichNewsletter. Muss im Workspace eindeutig sein.visibilitystringStandardwert: privatepublic zeigt die Kontaktliste auf der Seite zur Abonnementverwaltung allen an; private nur Personen, die bei ihr angemeldet sind.public_namestring | nullnull wird name angezeigt.public_descriptionstring | nulldouble_opt_inboolean | objecttrue oder false oder ein Objekt mit beliebigen der Felder enabled, redirect_url (eine http(s)-URL, zu der Personen nach der Bestätigung weitergeleitet werden, oder null) und email. email akzeptiert from, reply_to, subject, design (default oder custom), heading, body, button_label und footer. Felder, die Sie weglassen, behalten ihren gespeicherten Wert. Zum Aktivieren ist eine Adresse in from auf einer verifizierten Versanddomain nötig. Siehe Double-Opt-in.
confirmation_emailboolean | objecttrue oder false oder ein Objekt mit enabled und email. email akzeptiert dieselben Felder wie oben und zusätzlich button_url.unengagedobjectRückgabe
Gibt 201 mit der neuen Kontaktliste zurück, einschließlich ihrer Einstellungen, wie unter Kontaktliste abrufen beschrieben:
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic oder 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"
}
}Kontaktliste abrufen
Ruft eine Kontaktliste mit ihren Einstellungen, Zählern und ihrem öffentlichen Token ab.
/audiences/{id}Erfordert einen API-Schlüssel mit dem Scope full.
Pfadparameter
idstringerforderlichaud_…) oder ihr exakter Name, URL-kodiert.Rückgabe
Gibt das Kontaktlisten-Objekt zurück.
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic oder private. Öffentliche Kontaktlisten werden auf der Seite zur Abonnementverwaltung allen angezeigt, private nur Personen, die bei ihnen angemeldet sind.public_namestring | nullnull, um name anzuzeigen.public_descriptionstring | nulldouble_opt_inobjectenabled, redirect_url (wohin Personen nach der Bestätigung weitergeleitet werden, oder null) und email, die Double-Opt-in-E-Mail mit from, reply_to, subject, design (default oder custom), heading, body, button_label, footer und source (das MJML eines eigenen Designs oder null; in Listen fehlt es). Felder, die Sie nie gesetzt haben, enthalten die Standardwerte.
confirmation_emailobjectenabled und email, die Anmeldebestätigung, mit denselben Feldern wie oben und zusätzlich button_url.
unengagedobjectexclude (ob Kampagnen inaktive Abonnenten überspringen) und days (das Zeitfenster, standardmäßig 365).archivedbooleanarchived_at enthält den Zeitpunkt oder null.subscribers_countintegerusageobjectused (dieselbe Anzahl), limit (die maximale Anzahl Abonnenten pro Kontaktliste in Ihrem Tarif oder null ohne Limit) und plan. Siehe Limits.
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"
}Kontaktliste aktualisieren
Benennt eine Kontaktliste um oder ändert ihre Einstellungen.
/audiences/{id}Erfordert einen API-Schlüssel mit dem Scope full. Senden Sie nur die Felder, die Sie ändern möchten. ID, Token und Abonnenten ändern sich nicht. Löst das Event audience.updated aus.
Pfadparameter
idstringerforderlichBody-Parameter
namestringvisibilitystringpublic zeigt die Kontaktliste auf der Seite zur Abonnementverwaltung allen an; private nur Personen, die bei ihr angemeldet sind.public_namestring | nullnull wird name angezeigt.public_descriptionstring | nulldouble_opt_inboolean | objecttrue oder false oder ein Objekt mit beliebigen der Felder enabled, redirect_url (eine http(s)-URL, zu der Personen nach der Bestätigung weitergeleitet werden, oder null) und email. email akzeptiert from, reply_to, subject, design (default oder custom), heading, body, button_label und footer. Felder, die Sie weglassen, behalten ihren gespeicherten Wert. Zum Aktivieren ist eine Adresse in from auf einer verifizierten Versanddomain nötig. Siehe Double-Opt-in.
confirmation_emailboolean | objecttrue oder false oder ein Objekt mit enabled und email. email akzeptiert dieselben Felder wie oben und zusätzlich button_url.unengagedobjectarchivedbooleanEin eigenes MJML-Design mit email.source festzulegen, ist Teil der MJML-Alpha und gibt für API-Schlüssel 403 mit error: "mjml_alpha" zurück.
Rückgabe
Gibt die Kontaktliste mit ihren Einstellungen zurück, wie bei Kontaktliste abrufen. In dieser Antwort ist subscribers_count immer 0, und die Zähler fehlen; dafür nutzen Sie Kontaktliste abrufen. Ungültige Einstellungen geben 422 mit einem Objekt errors zurück, dessen Schlüssel die Felder sind, etwa 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"
}Kontaktlisten auflisten
Gibt eine Seite mit Kontaktlisten zurück, die neuesten zuerst. Archivierte Kontaktlisten werden weggelassen, sofern Sie sie nicht anfordern.
/audiencesErfordert einen API-Schlüssel mit dem Scope full. Die Listeneinträge enthalten nicht das token der Kontaktliste; dafür nutzen Sie Kontaktliste abrufen.
Query-Parameter
pageintegerStandardwert: 1limitintegerStandardwert: 10searchstringarchivedstringStandardwert: falsefalse für aktive Kontaktlisten, true nur für archivierte, all für beide.visibilitystringpublic oder private, um nur diese aufzulisten.matchstringStandardwert: allall oder or. Wie die Filter unten kombiniert werden.orderstringname, public_name, visibility, subscribers_count oder created_at.directionstringasc oder desc.Filter
Fügen Sie Filter als key.condition=value hinzu, zum Beispiel name.contains=news. Siehe Filtern und Sortieren.
| Schlüssel | Typ |
|---|---|
name |
string |
public_name |
string |
visibility |
enum: public, private |
subscribers_count |
number |
created_at |
date |
Rückgabe
dataobject[]object, id, name, den Einstellungen (visibility, public_name, public_description, double_opt_in, confirmation_email, unengaged, archived, archived_at), subscribers_count, usage, created_at und updated_at. Siehe Kontaktliste abrufen. Die Objekte email lassen in Listen source weg.total_recordsintegerarchived entsprechen.next_page_urlstring | nullnull. Siehe Paginierung.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
}Kontaktlisten zusammenführen
Kopiert die Abonnenten anderer Kontaktlisten in diese.
/audiences/{id}/mergeErfordert einen API-Schlüssel mit dem Scope full. Personen, die bereits auf der Zielliste stehen, behalten dort ihren Status. So wird niemand, der sich abgemeldet hat, erneut angemeldet. Eine Person auf mehreren der zusammengeführten Kontaktlisten tritt mit aktiviertem Subscribed bei, wenn sie bei mindestens einer davon angemeldet ist. Mit delete_sources werden die zusammengeführten Kontaktlisten danach gelöscht, und Kampagnen, deren Versand noch nicht abgeschlossen ist (Entwürfe, geplante Kampagnen, Kampagnen in der Warteschlange und Kampagnen im Versand sowie A/B-Tests, die auf ihre Gewinnervariante warten), senden stattdessen an die Zielliste. Hat eine solche Kampagne eine zusammengeführte Kontaktliste eingeschlossen und eine andere ausgeschlossen, bleibt die Zielliste eingeschlossen. Segmente, die aus einer gelöschten Kontaktliste schöpfen oder eine Regel zu ihr haben, verwenden stattdessen die Zielliste, ebenso Trigger, Schritte, Bedingungen und Ausstiegsbedingungen von Automatisierungen, die sie nennen. Das gilt auch für Formulare, die Personen zu ihr hinzufügen oder sie zur Auswahl anbieten, für Double-Opt-in-Links, die noch nicht bestätigt wurden, und für Durchläufe von Automatisierungen, die auf eine Bedingung zu ihr warten. Jede Löschung löst das Event audience.deleted aus.
Zusammenführen löst keine subscriber.*-Events aus, startet keine Automatisierungen und sendet weder Double-Opt-in-E-Mails noch Anmeldebestätigungen. Würden die neuen Abonnenten die Zielliste über das Abonnentenlimit Ihres Tarifs bringen, wird nichts zusammengeführt, und die Anfrage gibt 422 mit Ihrer Nutzung in usage zurück. Ungültige Eingaben, etwa das Zusammenführen einer Kontaktliste mit sich selbst, geben ebenfalls 422 zurück. Siehe Kontaktlisten zusammenführen.
Pfadparameter
idstringerforderlichBody-Parameter
source_idsstring[]erforderlichdelete_sourcesbooleanStandardwert: falseRückgabe
objectstringaudience_merge.audienceobjectobject, id, name und ihr neuer 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."]
}
}Kontaktlisten gesammelt aktualisieren
Archiviert mehrere Kontaktlisten auf einmal, hebt ihre Archivierung auf oder löscht sie.
/audiences/bulkErfordert einen API-Schlüssel mit dem Scope full. Jede ID muss zum Workspace gehören, sonst ändert sich nichts, und die Anfrage gibt 404 mit den fehlenden IDs in missing zurück. Archivieren und das Aufheben der Archivierung lösen audience.updated aus; Löschen löst audience.deleted aus und entfernt die Abonnenten der Kontaktlisten, wie Kontaktliste löschen. Siehe Kontaktliste archivieren.
Body-Parameter
actionstringerforderlicharchive, unarchive oder delete.idsstring[]erforderlichRückgabe
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"]
}Kontaktliste löschen
Löscht eine Kontaktliste endgültig und entfernt alle Abonnenten daraus.
/audiences/{id}Erfordert einen API-Schlüssel mit dem Scope full. Die Mitgliedschaften der Abonnenten werden mit der Kontaktliste gelöscht, die Kontakte bleiben aber in Ihrem Workspace und in ihren anderen Kontaktlisten. Die gehostete Anmelde-URL der Kontaktliste funktioniert nicht mehr. Löst das Event audience.deleted aus. Für die entfernten Mitgliedschaften werden keine subscriber.deleted-Events gesendet.
Pfadparameter
idstringerforderlichRückgabe
objectstringaudience.idstringnamestringdeletedbooleantrue.{
"object": "audience",
"id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2",
"name": "Customers",
"deleted": true
}{
"error": "Audience not found"
}