Segmente
Filter über Ihre Kontakte speichern, die passenden Kontakte auflisten und Segmente mit Tracking über die Zeit verfolgen.
Segment erstellen
Erstellt ein Segment: einen gespeicherten Filter über die Kontakte des Workspaces. Erfordert einen API-Schlüssel mit dem Scope full.
Ein Segment enthält die Kontakte aus seiner Quelle (den Abonnenten der Kontaktlisten in audience_ids oder allen Kontakten, wenn das Feld leer ist), die seinen conditions entsprechen. Die Mitgliedschaft wird jedes Mal live ausgewertet, wenn das Segment gezählt, aufgelistet, in der Vorschau geprüft oder von einer Kampagne beim Senden verwendet wird. Siehe Segmente.
Jeder Tarif enthält eine bestimmte Anzahl von Segmenten pro Workspace, mit oder ohne Tracking. Siehe Limits.
/segmentsBody-Parameter
namestringerforderlichdescriptionstring | nullaudience_idsstring[]aud_…) in diesem Workspace, bis zu 100. Das Segment enthält nur Kontakte, die bei mindestens einer davon angemeldet sind. Leer oder weggelassen bedeutet alle Kontakte im Workspace.conditionsobjecttrackedbooleanStandardwert: falseBedingungen
conditions enthält Gruppen von Regeln. Das match der obersten Ebene verknüpft die Gruppen, und das match jeder Gruppe verknüpft ihre Regeln:
{
"match": "all",
"groups": [
{ "match": "any", "rules": [{ "field": "email_domain", "operator": "in", "value": ["acme.com", "globex.io"] }] },
{ "match": "all", "rules": [{ "field": "status", "operator": "equals", "value": "subscribed" }] }
]
}matchistall(Standardwert) oderany, auf der obersten Ebene und in jeder Gruppe.- Lassen Sie
conditionsweg oder senden Sie keine Gruppen, um alle Kontakte aus der Quelle aufzunehmen. Leere Gruppen werden verworfen. - Die flache Form
{ "match": "any", "rules": [...] }wird ebenfalls akzeptiert und als eine Gruppe gespeichert. - Ein Segment kann bis zu 10 Gruppen und insgesamt 50 Regeln haben.
Felder
| Feld | Typ | Hinweise |
|---|---|---|
email |
string | |
email_domain |
string | Der Teil der Adresse nach @. |
first_name, last_name |
string | |
status |
enum | subscribed (nicht global abgemeldet und bei mindestens einer Kontaktliste angemeldet, sodass Kampagnen den Kontakt erreichen können) oder unsubscribed. Operatoren: equals, not_equals. |
created_at, updated_at |
datetime | Zeitpunkt, zu dem der Kontakt erstellt oder zuletzt geändert wurde, in UTC verglichen. |
audience |
audience | Angemeldete Mitgliedschaft. in trifft auf Kontakte zu, die bei einer der angegebenen Kontaktlisten angemeldet sind, not_in auf Kontakte, die bei keiner davon angemeldet sind. |
tags |
tags | Die Tags des Kontakts. Werte werden in Kleinbuchstaben verglichen. |
score |
score | Der Lead-Score des Kontakts. |
custom_fields.<key> |
hängt vom Feld ab | Textfelder sind string, Zahlenfelder number, Datumsfelder date (YYYY-MM-DD), Boolean-Felder boolean, Auswahlfelder enum und Mehrfachauswahlfelder multi. |
orders_count, total_spent, average_order_value |
metric | Aus den Bestellungen des Kontakts. 0 bei Kontakten ohne Bestellungen. Beträge sind in der Bestellwährung des Kontakts. |
first_order_at, last_order_at |
moment | Bei Kontakten ohne Bestellungen nicht gesetzt. |
expected_next_order_at |
moment | Die letzte Bestellung plus der durchschnittliche Abstand zwischen den Bestellungen des Kontakts. Ab der zweiten Bestellung gesetzt; kann in der Zukunft liegen. |
churn_risk |
enum | low, medium oder high: die Zeit seit der letzten Bestellung im Vergleich zum üblichen Abstand des Kontakts (mindestens 14 Tage) oder bei Einmalkäufern zu 90 Tagen. Ohne Bestellungen nicht gesetzt. |
last_active_at |
moment | Wann das Tracking-Skript den Kontakt zuletzt auf Ihrer Website gesehen hat. |
purchased |
purchase | Bestellungen, siehe Aktivitätsregeln. |
viewed_product |
view | Vom Tracking-Skript erfasste Produktaufrufe. |
cart |
cart | Offene und abgebrochene Warenkörbe. |
used_coupon |
coupon | Bestellungen, in denen ein Gutscheincode verwendet wurde. |
campaign_activity |
campaign_activity | Empfangene, geöffnete oder geklickte Kampagnen-E-Mails. |
Segmentfelder auflisten gibt die Felder Ihres Workspaces zurück, einschließlich seiner eigenen Felder und Kontaktlisten, mit den Operatoren, die jedes Feld akzeptiert.
Operatoren
| Typ | Operatoren |
|---|---|
| string | equals, not_equals, contains, not_contains, starts_with, ends_with, in, not_in, is_set, is_not_set |
| number | equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, between, is_set, is_not_set |
| date | on, before, after, between, in_last_days, more_than_days_ago, in_next_days, is_set, is_not_set |
| datetime | on, before, after, between, in_last_days, more_than_days_ago |
| boolean | is_true, is_false, is_set, is_not_set |
| enum | in, not_in, is_set, is_not_set |
| multi | in (enthält mindestens einen), contains_all (enthält alle), not_in (enthält keinen), is_set, is_not_set |
| audience | in, not_in |
| tags | in (enthält mindestens eines), contains_all (enthält alle), not_in (enthält keines), is_set (hat mindestens ein Tag), is_not_set (hat keine Tags) |
| score | equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, between |
| metric | equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, between |
| moment | on, before, after, between, in_last_days, more_than_days_ago, in_next_days, is_set, is_not_set |
| purchase, view, coupon | has, has_not |
| cart | has_open_cart, has_abandoned_cart, has_no_open_cart |
| campaign_activity | received, not_received, opened, not_opened, clicked, not_clicked, received_not_opened, received_not_clicked |
Werte
- Textvergleiche bei String-Feldern ignorieren die Groß-/Kleinschreibung. Werte von Auswahl- und Mehrfachauswahlfeldern müssen exakt übereinstimmen.
not_equals,not_containsundnot_intreffen auch auf Kontakte zu, die keinen Wert haben.in,not_inundcontains_allnehmen eine Liste mit bis zu 100 Werten an. Textwerte können bis zu 500 Zeichen lang sein.betweennimmt[from, to]an, beide einschließlich: zwei Zahlen oder zwei Datumsangaben im FormatYYYY-MM-DD.on,beforeundafternehmen ein Datum im FormatYYYY-MM-DDan.beforeundafterschließen diesen Tag nicht ein.in_last_days,more_than_days_agoundin_next_daysnehmen eine ganze Zahl von Tagen von 1 bis 3650 an, gezählt ab dem Moment, in dem das Segment ausgewertet wird. Eigene Felder vom Typ Datum vergleichen Kalendertage in UTC;created_atundupdated_atverwenden exakte Zeitpunkte, daher bedeutetin_last_daysmit7die letzten 7 × 24 Stunden.is_set,is_not_set,is_trueundis_falsenehmen keinen Wert an.is_truetrifft auftrue,1,yesundonzu,is_falseauffalse,0,noundoff.- Eine gespeicherte Regel, die nicht mehr anwendbar ist, etwa weil sich der Typ ihres eigenen Felds geändert hat, trifft auf keine Kontakte zu. Regeln für ein gelöschtes eigenes Feld funktionieren mit den Werten weiter, die Kontakte noch haben, aber neue Regeln müssen ein bestehendes Feld verwenden.
Aktivitätsregeln
purchased, viewed_product, cart, used_coupon und campaign_activity nehmen ein Objekt als value an. Jeder Schlüssel ist optional.
| Feld | Schlüssel in value |
|---|---|
purchased |
days: nur Bestellungen der letzten N Tage. product_ids: Bestellungen mit einem dieser Produkte (die Produkt-IDs Ihres Shops). categories: Bestellungen mit einem Produkt in einer dieser Kategorien. min_count: mindestens so viele passende Bestellungen (Standardwert 1, bis zu 1000). Stornierte Bestellungen zählen nicht. |
viewed_product |
days, product_ids, categories und min_count wie oben, gezählt werden Produktaufrufe. |
cart |
days nur mit has_abandoned_cart: in den letzten N Tagen abgebrochene Warenkörbe. has_open_cart trifft auf einen aktiven Warenkorb zu, has_no_open_cart auf Kontakte ohne aktiven oder abgebrochenen Warenkorb. |
used_coupon |
days und coupon: der Schlüssel eines Gutscheins. Ohne coupon zählt jeder Code. |
campaign_activity |
campaign_id: eine Kampagne (cmp_...), ohne Angabe jede Kampagne. days: nur die letzten N Tage, ohne Angabe der gesamte Zeitraum. |
days ist eine ganze Zahl von 1 bis 3650. has_not ist das Gegenteil von has mit demselben Wert.
{
"match": "all",
"groups": [
{ "match": "all", "rules": [
{ "field": "purchased", "operator": "has", "value": { "categories": ["Shoes"], "days": 180 } },
{ "field": "churn_risk", "operator": "in", "value": ["medium", "high"] },
{ "field": "campaign_activity", "operator": "clicked", "value": { "days": 90 } }
] }
]
}received_not_opened und received_not_clicked treffen auf Kontakte zu, die mindestens eine passende Kampagnen-E-Mail erhalten und keine davon geöffnet bzw. geklickt haben. Öffnungen sind ungenau: Apple Mail lädt die Bilder jeder E-Mail, die es empfängt.
Rückgabe
Gibt 201 Created mit dem Segment-Objekt zurück, einschließlich contacts_count und subscribed_count. Ein neues Segment mit Tracking beginnt mit tracking.status auf syncing, während Emailit seine aktuellen Mitglieder erfasst.
| Status | Wann |
|---|---|
400 |
name fehlt oder ein Feld hat den falschen Typ. |
403 |
tracked ist true und der Tarif enthält keine Segmente mit Tracking. Der Body ist {"error": "plan_required", "required_plan": "pro", ...}. |
422 |
Ein Feld oder eine Regel ist ungültig: errors ist nach dem Pfad geschlüsselt, etwa conditions.groups.0.rules.1.value, und message wiederholt das erste Problem. Wird auch zurückgegeben, wenn der Workspace das Segmentlimit seines Tarifs erreicht hat; dieser Body enthält usage.used und usage.limit. |
{
"object": "segment",
"id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"name": "Pro customers renewing soon",
"description": null,
"audience_ids": ["aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a"],
"conditions": {
"match": "all",
"groups": [
{
"match": "all",
"rules": [
{ "field": "custom_fields.plan", "operator": "in", "value": ["pro", "enterprise"] },
{ "field": "custom_fields.renews_on", "operator": "in_next_days", "value": 30 }
]
}
]
},
"tracked": true,
"tracking": {
"status": "syncing",
"synced_at": null
},
"contacts_count": 412,
"subscribed_count": 398,
"created_at": "2026-10-18T12:00:00.000000+00:00",
"updated_at": "2026-10-18T12:00:00.000000+00:00"
}{
"error": "plan_required",
"message": "Tracked segments are included with Pro and Business.",
"required_plan": "pro"
}{
"message": "Validation failed. conditions.groups.0.rules.1.value: Enter a whole number of days between 1 and 3650.",
"errors": {
"conditions.groups.0.rules.1.value": [
"Enter a whole number of days between 1 and 3650."
]
}
}{
"error": "Pay as you go includes 3 segments.",
"message": "Pay as you go includes 3 segments.",
"usage": {
"used": 3,
"limit": 3
}
}Segment abrufen
Ruft ein Segment ab und zählt seine Kontakte zum Zeitpunkt des Aufrufs. Erfordert einen API-Schlüssel mit dem Scope full.
/segments/{id}Pfadparameter
idstringerforderlichseg_…).Rückgabe
Gibt das Segment-Objekt zurück.
objectstringsegment.idstringseg_.namestringdescriptionstring | nullaudience_idsstring[]conditionsobject{ "match", "groups": [{ "match", "rules": [...] }] }. Siehe Segment erstellen.trackedbooleantrackingobject | nullnull bei Segmenten ohne Tracking. Bei Segmenten mit Tracking:
status:active, wenn die Mitglieder aktuell gehalten werden,syncing, während Emailit die aktuellen Mitglieder erfasst, nachdem das Segment erstellt oder das Tracking fortgesetzt wurde, oderpaused, wenn der Tarif des Workspaces keine Segmente mit Tracking mehr enthält.synced_at: Zeitpunkt, zu dem das ganze Segment zuletzt mit seinen Regeln abgeglichen wurde, odernullvor dem ersten Abgleich.
contacts_countintegersubscribed_countintegercontacts_count, an den Kampagnen senden können: Kontakte, die nicht global abgemeldet und bei mindestens einer Kontaktliste angemeldet sind. Gesperrte Adressen werden trotzdem mitgezählt.created_at, updated_atstringGibt 404 zurück, wenn das Segment nicht existiert.
{
"object": "segment",
"id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"name": "Pro customers renewing soon",
"description": "Pro and Enterprise plans that renew in the next 30 days.",
"audience_ids": ["aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a"],
"conditions": {
"match": "all",
"groups": [
{
"match": "all",
"rules": [
{ "field": "custom_fields.plan", "operator": "in", "value": ["pro", "enterprise"] },
{ "field": "custom_fields.renews_on", "operator": "in_next_days", "value": 30 }
]
}
]
},
"tracked": true,
"tracking": {
"status": "active",
"synced_at": "2026-10-18T00:30:04.211000+00:00"
},
"contacts_count": 412,
"subscribed_count": 398,
"created_at": "2026-10-02T09:14:03.551000+00:00",
"updated_at": "2026-10-02T09:14:03.551000+00:00"
}{
"error": "Segment not found"
}Segment aktualisieren
Aktualisiert die übergebenen Felder und lässt die übrigen unverändert. audience_ids und conditions werden als Ganzes ersetzt. Erfordert einen API-Schlüssel mit dem Scope full.
Kampagnen werten ein Segment beim Senden aus, daher gelten neue Regeln für jede Kampagne, die noch nicht gesendet wurde, auch für geplante.
Bei einem Segment mit Tracking gleicht eine Änderung von audience_ids oder conditions die gespeicherten Mitglieder mit den neuen Regeln ab. Für Kontakte, die durch die Änderung dem Segment beitreten oder es verlassen, werden die Events segment.contact_added und segment.contact_removed mit reason auf segment_updated gesendet. Webhooks erhalten sie, aber sie starten keine Automatisierungen.
/segments/{id}Pfadparameter
idstringerforderlichseg_…).Body-Parameter
namestringdescriptionstring | nullnull oder ein leerer String löscht sie.audience_idsstring[][] bedeutet alle Kontakte im Workspace.conditionsobjecttrackedbooleanRückgabe
Gibt das aktualisierte Segment-Objekt mit neu gezählten Kontakten zurück.
| Status | Wann |
|---|---|
404 |
Das Segment existiert nicht. |
422 |
Ein Feld oder eine Regel ist ungültig, oder tracked weicht vom aktuellen Wert des Segments ab. errors ist nach Feldpfad geschlüsselt. |
{
"object": "segment",
"id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"name": "Pro customers renewing this month",
"description": "Pro and Enterprise plans that renew in the next 30 days.",
"audience_ids": ["aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a"],
"conditions": {
"match": "all",
"groups": [
{
"match": "all",
"rules": [
{ "field": "custom_fields.plan", "operator": "in", "value": ["pro", "enterprise"] },
{ "field": "custom_fields.renews_on", "operator": "in_next_days", "value": 30 }
]
}
]
},
"tracked": true,
"tracking": {
"status": "active",
"synced_at": "2026-10-18T00:30:04.211000+00:00"
},
"contacts_count": 412,
"subscribed_count": 398,
"created_at": "2026-10-02T09:14:03.551000+00:00",
"updated_at": "2026-10-18T12:00:00.000000+00:00"
}{
"error": "Segment not found"
}{
"message": "Validation failed. tracked: Tracking is chosen when a segment is created and can't be changed. Create a new segment instead.",
"errors": {
"tracked": [
"Tracking is chosen when a segment is created and can't be changed. Create a new segment instead."
]
}
}Segmente auflisten
Gibt die Segmente des Workspaces zurück, die neuesten zuerst, und dazu, wie viele der im Tarif enthaltenen Segmente belegt sind. Erfordert einen API-Schlüssel mit dem Scope full.
/segmentsQuery-Parameter
pageintegerStandardwert: 1limitintegerStandardwert: 10searchstringwith_countsbooleanStandardwert: falsecontacts_count und subscribed_count hinzu. Das Zählen wertet jedes Segment auf der Seite aus und ist daher standardmäßig deaktiviert.matchstringall (Standardwert) verlangt, dass alle Filter zutreffen. or trifft zu, wenn ein beliebiger Filter passt. Siehe Filtern und Sortieren.
orderstringSortierschlüssel für diese Liste. Siehe die Sortierschlüssel unten.
directionstringasc oder desc.
Filterschlüssel
Filter verwenden Query-Parameter der Form key.condition=value, zum Beispiel name.contains=customers oder created_at.after=2026-09-01. Die Bedingungen je Typ finden Sie unter Filtern.
| Schlüssel | Typ | Hinweise |
|---|---|---|
name |
string | |
created_at |
date | |
updated_at |
date |
Sortierschlüssel für order: name, created_at, updated_at.
Rückgabe
dataobject[]contacts_count und subscribed_count sind nur mit with_counts enthalten.total_recordsintegerusageobjectused (alle Segmente, mit oder ohne Tracking), limit (im Tarif enthaltene Segmente) und tracking_allowed (ob der Tarif Segmente mit Tracking enthält). Siehe Limits.next_page_urlstring | nullnull auf der letzten Seite. Er enthält nur page und limit; fügen Sie Ihre Suche und Filter erneut hinzu, wenn Sie ihm folgen.previous_page_urlstring | nullnull auf der ersten Seite.{
"data": [
{
"object": "segment",
"id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"name": "Pro customers renewing soon",
"description": "Pro and Enterprise plans that renew in the next 30 days.",
"audience_ids": ["aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a"],
"conditions": {
"match": "all",
"groups": [
{
"match": "all",
"rules": [
{ "field": "custom_fields.plan", "operator": "in", "value": ["pro", "enterprise"] },
{ "field": "custom_fields.renews_on", "operator": "in_next_days", "value": 30 }
]
}
]
},
"tracked": true,
"tracking": {
"status": "active",
"synced_at": "2026-10-18T00:30:04.211000+00:00"
},
"contacts_count": 412,
"subscribed_count": 398,
"created_at": "2026-10-02T09:14:03.551000+00:00",
"updated_at": "2026-10-02T09:14:03.551000+00:00"
}
],
"total_records": 1,
"usage": {
"used": 1,
"limit": 10,
"tracking_allowed": true
},
"next_page_url": null,
"previous_page_url": null
}Segment löschen
Löscht ein Segment. Erfordert einen API-Schlüssel mit dem Scope full.
- Ein Segment, das eine Kampagne verwendet, während sie geplant ist, in der Warteschlange steht, gesendet oder getestet wird, lässt sich nicht löschen. Ändern Sie zuerst die Empfänger der Kampagne.
- Ein Segment lässt sich nicht löschen, solange eine nicht gelöschte Automatisierung, egal in welchem Status, es verwendet: in einem Trigger Added to segment oder Removed from segment, in einem Ziel, einem Schritt Wait until oder einer Ausstiegsbedingung zu diesen Events oder in einer Regel Segment einer Bedingung. Ändern Sie zuerst diese Automatisierungen.
- Kampagnenentwürfe, die an das Segment senden, verlieren es aus ihren Empfängern, und
removed_from_campaignsgibt an, wie viele es sind. Entwürfe, die das Segment ausschließen, behalten den Ausschluss und lassen sich daher erst senden, wenn Sie ihn ersetzen: Ohne ihn würden sie an die Personen gehen, die Sie ausschließen wollten. Gesendete, stornierte und archivierte Kampagnen behalten den Verweis als Verlauf. - Bei einem Segment mit Tracking werden auch seine gespeicherten Mitglieder und sein Wachstumsverlauf gelöscht.
/segments/{id}Pfadparameter
idstringerforderlichseg_…).Rückgabe
objectstringsegment.idstringnamestringdeletedbooleantrue.removed_from_campaignsinteger| Status | Wann |
|---|---|
404 |
Das Segment existiert nicht. |
409 |
Eine Kampagne, die geplant ist, in der Warteschlange steht, gerade sendet oder getestet wird, verwendet das Segment, oder eine Automatisierung startet damit. Die Meldung nennt sie. |
{
"object": "segment",
"id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"name": "Pro customers renewing soon",
"deleted": true,
"removed_from_campaigns": 1
}{
"error": "This segment is used by campaigns that are scheduled or sending: October launch. Change their recipients first.",
"message": "This segment is used by campaigns that are scheduled or sending: October launch. Change their recipients first."
}{
"error": "This segment is used by automations: Renewal reminder. Change their triggers, conditions or exit conditions first.",
"message": "This segment is used by automations: Renewal reminder. Change their triggers, conditions or exit conditions first."
}{
"error": "Segment not found"
}Kontakte eines Segments auflisten
Gibt die Kontakte zurück, die dem Segment zum Zeitpunkt des Aufrufs entsprechen, die neuesten zuerst. Erfordert einen API-Schlüssel mit dem Scope full.
/segments/{id}/contactsPfadparameter
idstringerforderlichseg_…).Query-Parameter
pageintegerStandardwert: 1limitintegerStandardwert: 25searchstringmatchstringall (Standardwert) verlangt, dass alle Filter zutreffen. or trifft zu, wenn ein beliebiger Filter passt. Siehe Filtern und Sortieren.
orderstringSortierschlüssel für diese Liste. Siehe die Sortierschlüssel unten.
directionstringasc oder desc.
Filterschlüssel
Die Kontakte eines Segments akzeptieren dieselben Filter- und Sortierschlüssel wie Kontakte auflisten, angewendet zusätzlich zum Segment, zum Beispiel email.ends_with=acme.com.
Listenfilter sind Query-Parameter der Form key.condition=value auf einer einzigen Ebene. match, order, direction und die Bedingungen pro Typ finden Sie unter Filtern und Sortieren.
Filterschlüssel
| Schlüssel | Typ | Bedingungen | Hinweise |
|---|---|---|---|
email | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
first_name | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
last_name | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
name | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | Vorname plus Nachname, ohne Leerzeichen am Anfang und Ende. |
audiences | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | Vergleicht mit dem alphabetisch ersten Namen der Kontaktlisten des Kontakts. |
created_at | date | exact, before, after, empty, not_empty | |
updated_at | date | exact, before, after, empty, not_empty | |
unsubscribed | boolean | exact, not_exact | |
audience_id | string | exact, not_exact | Nur exact und not_exact. Der Wert ist eine Kontaktlisten-ID (aud_...). |
custom_fields.* | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | Ersetzen Sie * durch den Schlüssel eines eigenen Felds, zum Beispiel custom_fields.company.contains=Acme. |
Sortierschlüssel
Übergeben Sie in order einen dieser Schlüssel und in direction den Wert asc oder desc: email, first_name, last_name, name, audiences, created_at, updated_at, unsubscribed
Rückgabe
dataobject[]object, id, email, first_name, last_name, custom_fields, unsubscribed, audiences (id, name, subscribed), created_at und updated_at. Kontakte eines Segments mit Tracking haben außerdem joined_at.data[].joined_atstring | nullnull, bis das Tracking den Kontakt erfasst hat, zum Beispiel direkt nachdem er dem Segment zu entsprechen begann, während das Segment syncing ist oder während das Tracking paused ist.total_recordsintegersubscribed_countintegernext_page_urlstring | nullnull auf der letzten Seite. Er enthält page, limit und search; fügen Sie Ihre Filter erneut hinzu, wenn Sie ihm folgen.previous_page_urlstring | nullnull auf der ersten Seite.Gibt 404 zurück, wenn das Segment nicht existiert.
{
"data": [
{
"object": "contact",
"id": "con_2nYs7Ab3Kd9Lm1Qw5Er8Ty2Ui4o",
"email": "ada@acme.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"plan": "pro",
"renews_on": "2026-10-20"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a",
"name": "Customers",
"subscribed": true
}
],
"created_at": "2026-03-11T08:00:00.000000+00:00",
"updated_at": "2026-09-30T16:42:10.000000+00:00",
"joined_at": "2026-10-03T00:30:02.874000+00:00"
}
],
"total_records": 1,
"subscribed_count": 1,
"next_page_url": null,
"previous_page_url": null
}{
"error": "Segment not found"
}Wachstum eines Segments abrufen
Gibt den Verlauf eines Segments mit Tracking zurück: eine Zeile pro UTC-Tag, die ältesten zuerst, bis einschließlich heute. Das sind die Daten hinter dem Diagramm Growth auf der Seite des Segments. Erfordert einen API-Schlüssel mit dem Scope full.
Der Verlauf beginnt, wenn das Tracking beginnt. Kontakte, die bei der ersten Zählung nach dem Erstellen des Segments oder nach dem Fortsetzen des Trackings erfasst werden, zählen als Mitglieder, aber nicht als Beitritte.
/segments/{id}/growthPfadparameter
idstringerforderlichseg_…).Query-Parameter
daysintegerStandardwert: 30Rückgabe
objectstringsegment_growth.segment_idstringdataobject[]data[].datestringYYYY-MM-DD.data[].members_countinteger | nullnull vor Beginn des Trackings.data[].joined_countintegerdata[].left_countinteger| Status | Wann |
|---|---|
404 |
Das Segment existiert nicht. |
422 |
Das Segment hat kein Tracking. |
{
"object": "segment_growth",
"segment_id": "seg_2nYs9Kd1Lq3vB8wXcE4fT7uRm0p",
"data": [
{ "date": "2026-10-12", "members_count": null, "joined_count": 0, "left_count": 0 },
{ "date": "2026-10-13", "members_count": 380, "joined_count": 0, "left_count": 0 },
{ "date": "2026-10-14", "members_count": 391, "joined_count": 14, "left_count": 3 },
{ "date": "2026-10-15", "members_count": 391, "joined_count": 0, "left_count": 0 },
{ "date": "2026-10-16", "members_count": 402, "joined_count": 12, "left_count": 1 },
{ "date": "2026-10-17", "members_count": 405, "joined_count": 6, "left_count": 3 },
{ "date": "2026-10-18", "members_count": 412, "joined_count": 9, "left_count": 2 }
]
}{
"error": "Growth is recorded for tracked segments only.",
"message": "Growth is recorded for tracked segments only."
}{
"error": "Segment not found"
}Segmentvorschau abrufen
Prüft eine Segmentdefinition, ohne sie zu speichern: Gibt zurück, wie viele Kontakte ihr entsprechen, und eine Stichprobe davon. Die Definition wird wie bei Segment erstellen validiert, und eine Vorschau zählt nicht zum Segmentlimit des Tarifs. Erfordert einen API-Schlüssel mit dem Scope full.
/segments/previewBody-Parameter
audience_idsstring[]conditionsobjectlimitintegerStandardwert: 10Rückgabe
objectstringsegment_preview.audience_idsstring[]conditionsobject{ match, rules } wird zu einer Gruppe, und leere Gruppen werden verworfen.contacts_countintegersubscribed_countintegercontactsobject[]Gibt 422 mit errors, geschlüsselt nach Feldpfad, zurück, wenn die Definition ungültig ist.
{
"object": "segment_preview",
"audience_ids": [],
"conditions": {
"match": "all",
"groups": [
{
"match": "all",
"rules": [
{ "field": "email_domain", "operator": "equals", "value": "acme.com" }
]
}
]
},
"contacts_count": 8,
"subscribed_count": 8,
"contacts": [
{
"object": "contact",
"id": "con_2nYs7Ab3Kd9Lm1Qw5Er8Ty2Ui4o",
"email": "ada@acme.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"plan": "pro",
"renews_on": "2026-10-20"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a",
"name": "Customers",
"subscribed": true
}
],
"created_at": "2026-03-11T08:00:00.000000+00:00",
"updated_at": "2026-09-30T16:42:10.000000+00:00"
}
]
}{
"message": "Validation failed. conditions.groups.0.rules.0.operator: \"greater_than\" does not apply to Email domain.",
"errors": {
"conditions.groups.0.rules.0.operator": [
"\"greater_than\" does not apply to Email domain."
]
}
}Segmentfelder auflisten
Gibt die Felder zurück, die Segmentregeln in diesem Workspace verwenden können: die Kontaktfelder, jedes eigene Feld (typisiert nach seinem Feldtyp), die Mitgliedschaft in Kontaktlisten, Kaufdaten und das Engagement mit Kampagnen. Erfordert einen API-Schlüssel mit dem Scope full.
/segments/fieldsRückgabe
dataobject[]data[].keystringfield einer Regel verwenden, zum Beispiel email_domain oder custom_fields.plan.data[].labelstringdata[].typestringstring, number, date, datetime, boolean, enum, multi, audience, metric, moment, purchase, view, cart, coupon oder campaign_activity. Siehe Segment erstellen. Aktivitätsfelder wie purchased nehmen ein Objekt als Wert an, siehe Aktivitätsregeln.data[].groupstringcontact, custom_fields, audiences, commerce (Kaufdaten) oder engagement (Kampagnenaktivität).data[].operatorsstring[]data[].valuesobject[]value und label: die Optionen eigener Felder vom Typ Auswahl und Mehrfachauswahl, subscribed und unsubscribed für status sowie die Kontaktlisten des Workspaces für audience. Fehlt bei anderen Feldern.{
"data": [
{
"key": "email",
"label": "Email",
"type": "string",
"group": "contact",
"operators": ["equals", "not_equals", "contains", "not_contains", "starts_with", "ends_with", "in", "not_in", "is_set", "is_not_set"]
},
{
"key": "status",
"label": "Subscription status",
"type": "enum",
"group": "contact",
"operators": ["equals", "not_equals"],
"values": [
{ "value": "subscribed", "label": "Subscribed" },
{ "value": "unsubscribed", "label": "Unsubscribed" }
]
},
{
"key": "audience",
"label": "Audience",
"type": "audience",
"group": "audiences",
"operators": ["in", "not_in"],
"values": [
{ "value": "aud_2nYs8Qm4Hc1Zx7Vb3Ne6Tg9Lk2a", "label": "Customers" }
]
},
{
"key": "purchased",
"label": "Purchased",
"type": "purchase",
"group": "commerce",
"operators": [
"has",
"has_not"
]
},
{
"key": "custom_fields.renews_on",
"label": "Renews on",
"type": "date",
"group": "custom_fields",
"operators": ["on", "before", "after", "between", "in_last_days", "more_than_days_ago", "in_next_days", "is_set", "is_not_set"]
}
]
}