Liste
Gestisci le liste di iscritti usate da campagne e moduli di iscrizione.
Crea una lista
Crea una lista vuota.
/audiencesRichiede una chiave API full. Aggiungi persone con Aggiungi un iscritto, oppure passando l’ID della lista in audiences quando crei un contatto. Genera un evento audience.created. Vedi Liste.
Parametri del corpo
namestringobbligatorioNewsletter. Deve essere univoco nel workspace.visibilitystringpredefinito: privatepublic mostra la lista a tutti nella pagina di gestione delle iscrizioni; private solo alle persone iscritte.public_namestring | nullnull viene mostrato name.public_descriptionstring | nulldouble_opt_inboolean | objecttrue o false, oppure un oggetto con uno o più tra enabled, redirect_url (un URL http(s) a cui vanno le persone dopo la conferma, oppure null) ed email. email accetta from, reply_to, subject, design (default o custom), heading, body, button_label e footer. I campi che ometti mantengono il valore memorizzato. Per attivarlo serve un indirizzo from su un dominio di invio verificato. Vedi Double opt-in.
confirmation_emailboolean | objecttrue o false, oppure un oggetto con enabled ed email, che accetta gli stessi campi indicati sopra più button_url.unengagedobjectRestituisce
Restituisce 201 con la nuova lista, comprese le sue impostazioni come descritte in Recupera una lista:
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic o 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"
}
}Recupera una lista
Recupera una lista con le sue impostazioni, i conteggi e il token pubblico.
/audiences/{id}Richiede una chiave API full.
Parametri di percorso
idstringobbligatorioaud_…) o il suo nome esatto, codificato per l’URL.Restituisce
Restituisce l’oggetto lista.
objectstringaudience.idstringnamestringtokenstringvisibilitystringpublic o private. Le liste pubbliche compaiono per tutti nella pagina di gestione delle iscrizioni; quelle private solo per le persone iscritte.public_namestring | nullnull per mostrare name.public_descriptionstring | nulldouble_opt_inobjectenabled, redirect_url (dove vanno le persone dopo la conferma, oppure null) ed email, l’email di double opt-in con from, reply_to, subject, design (default o custom), heading, body, button_label, footer e source (l’MJML di un design personalizzato, oppure null; gli elenchi lo omettono). I campi che non hai mai impostato contengono i valori predefiniti.
confirmation_emailobjectenabled ed email, l’email di conferma, con gli stessi campi indicati sopra più button_url.
unengagedobjectexclude (se le campagne saltano gli iscritti inattivi) e days (il periodo, 365 per impostazione predefinita).archivedbooleanarchived_at contiene la data e l’ora, oppure null.subscribers_countintegerusageobjectused (lo stesso conteggio), limit (il numero massimo di iscritti che una lista può avere con il tuo piano, oppure null se non c’è limite) e plan. Vedi Limiti e quote.
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"
}Aggiorna una lista
Rinomina una lista o ne cambia le impostazioni.
/audiences/{id}Richiede una chiave API full. Invia solo i campi che vuoi cambiare. L’ID, il token e gli iscritti non cambiano. Genera un evento audience.updated.
Parametri di percorso
idstringobbligatorioParametri del corpo
namestringvisibilitystringpublic mostra la lista a tutti nella pagina di gestione delle iscrizioni; private solo alle persone iscritte.public_namestring | nullnull viene mostrato name.public_descriptionstring | nulldouble_opt_inboolean | objecttrue o false, oppure un oggetto con uno o più tra enabled, redirect_url (un URL http(s) a cui vanno le persone dopo la conferma, oppure null) ed email. email accetta from, reply_to, subject, design (default o custom), heading, body, button_label e footer. I campi che ometti mantengono il valore memorizzato. Per attivarlo serve un indirizzo from su un dominio di invio verificato. Vedi Double opt-in.
confirmation_emailboolean | objecttrue o false, oppure un oggetto con enabled ed email, che accetta gli stessi campi indicati sopra più button_url.unengagedobjectarchivedbooleanImpostare un design MJML personalizzato con email.source fa parte dell’alpha di MJML e, con le chiavi API, restituisce 403 con error: "mjml_alpha".
Restituisce
Restituisce la lista con le sue impostazioni, come in Recupera una lista. In questa risposta subscribers_count è sempre 0 e i conteggi sono omessi; per ottenerli usa Recupera una lista. Le impostazioni non valide restituiscono 422 con un oggetto errors indicizzato per campo, ad esempio 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"
}Elenca le liste
Restituisce una pagina di liste, a partire dalla più recente. Le liste archiviate sono escluse, a meno che tu non le richieda.
/audiencesRichiede una chiave API full. Gli elementi dell’elenco non includono il token della lista; per ottenerlo usa Recupera una lista.
Parametri di query
pageintegerpredefinito: 1limitintegerpredefinito: 10searchstringarchivedstringpredefinito: falsefalse per le liste attive, true solo per quelle archiviate, all per entrambe.visibilitystringpublic o private per elencare solo quelle.matchstringpredefinito: allall o or. Come si combinano i filtri qui sotto.orderstringname, public_name, visibility, subscribers_count o created_at.directionstringasc o desc.Filtri
Aggiungi i filtri nella forma key.condition=value, ad esempio name.contains=news. Vedi Filtri e ordinamento.
| Chiave | Tipo |
|---|---|
name |
string |
public_name |
string |
visibility |
enum: public, private |
subscribers_count |
number |
created_at |
date |
Restituisce
dataobject[]object, id, name, le impostazioni (visibility, public_name, public_description, double_opt_in, confirmation_email, unengaged, archived, archived_at), subscribers_count, usage, created_at e updated_at. Vedi Recupera una lista. Negli elenchi gli oggetti email non includono source.total_recordsintegerarchived.next_page_urlstring | nullnull. Vedi Paginazione.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
}Unisci le liste
Copia in questa lista gli iscritti di altre liste.
/audiences/{id}/mergeRichiede una chiave API full. Le persone già presenti nella lista di destinazione mantengono lì il loro stato, quindi nessuno che si è disiscritto viene iscritto di nuovo. Una persona presente in più liste unite entra con Subscribed attivo se è iscritta ad almeno una di esse. Con delete_sources, le liste unite vengono poi eliminate e le campagne destinate a quelle liste che non hanno ancora finito l’invio (bozze, campagne programmate, in coda e in invio, e test A/B in attesa della variante vincente) vengono inviate alla lista di destinazione. Se una di queste campagne includeva una lista unita e ne escludeva un’altra, la lista di destinazione resta inclusa. I segmenti che hanno come origine una lista eliminata, o che hanno una regola su di essa, usano al suo posto la lista di destinazione, e lo stesso vale per i trigger, i passaggi, le condizioni e le condizioni di uscita delle automazioni che la indicano. Lo stesso vale per i moduli che vi aggiungono persone o la propongono come scelta, per i link di double opt-in non ancora confermati e per le esecuzioni delle automazioni in attesa di una condizione su quella lista. Ogni eliminazione genera audience.deleted.
L’unione non genera eventi subscriber.*, non avvia automazioni e non invia email di double opt-in o di conferma. Se i nuovi iscritti portassero la lista di destinazione oltre il limite di iscritti del piano, non viene unito nulla e la richiesta restituisce 422 con il tuo usage. Anche un input non valido, ad esempio unire una lista in sé stessa, restituisce 422. Vedi Unisci le liste.
Parametri di percorso
idstringobbligatorioParametri del corpo
source_idsstring[]obbligatoriodelete_sourcesbooleanpredefinito: falseRestituisce
objectstringaudience_merge.audienceobjectobject, id, name e il suo nuovo 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."]
}
}Aggiorna le liste in blocco
Archivia, toglie dall’archivio o elimina più liste in una volta.
/audiences/bulkRichiede una chiave API full. Ogni ID deve appartenere al workspace, altrimenti non cambia nulla e la richiesta restituisce 404 con gli ID in missing. L’archiviazione e la rimozione dall’archivio generano audience.updated; l’eliminazione genera audience.deleted e rimuove gli iscritti delle liste, come Elimina una lista. Vedi Archivia una lista.
Parametri del corpo
actionstringobbligatorioarchive, unarchive o delete.idsstring[]obbligatorioRestituisce
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"]
}Elimina una lista
Elimina definitivamente una lista e ne rimuove tutti gli iscritti.
/audiences/{id}Richiede una chiave API full. Le iscrizioni alla lista vengono eliminate insieme a essa, ma i contatti restano nel workspace e nelle loro altre liste. Il suo URL di iscrizione ospitato smette di funzionare. Genera un evento audience.deleted. Per le iscrizioni rimosse non viene inviato alcun evento subscriber.deleted.
Parametri di percorso
idstringobbligatorioRestituisce
objectstringaudience.idstringnamestringdeletedbooleantrue.{
"object": "audience",
"id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2",
"name": "Customers",
"deleted": true
}{
"error": "Audience not found"
}