Segmente
API-Endpunkte
| Rechenzentrum | URL |
|---|---|
| Singapur | https://email.api.engagelab.cc |
| Türkei | https://emailapi-tr.engagelab.com |
Beim Einsatz der REST API ist sicherzustellen, dass das gewählte Rechenzentrum zur entsprechenden Basis-URL passt.
POST/v1/marketing/lists/segments
Erstellen
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments
HTTP-Request-Methode
POST
Content-Type
application/json; charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| segment_name | string | ja | Segmentname (maximal 48 Zeichen, folgende Zeichen sind nicht erlaubt: ^,?,+,.,*,,[,],(,) ) |
| type | integer | ja | Segmenttyp (0 oder 1) 0: nach Feld; 1: nach Kampagne |
| condition | object | ja | Segment-Bedingung |
| relation | string | ja | Bedingungslogik (and/oder) |
| items | object[] | ja | Bedingungen (maximal 10 Filterbedingungen, alle Bedingungen haben die gleiche Logik) |
| campaign_id | integer | nein | Kampagnen-ID Wenn field_name=campaign, ist dieser Wert erforderlich und der Status der Kampagne muss „in Bearbeitung“ oder „abgeschlossen“ sein |
| field_name | string | ja | 1. Wenn type=0 field_name ist der Feldname, value ist der Feldwert; field_name ist "tag", value=Tag-Name 2. Wenn type=1 field_name muss campaign sein, value ist einer von "sent","open","click","unopen","unclick","notsent", in diesem Fall ist campaign_id erforderlich und entspricht der ID der Kampagne |
| op | string | ja | Operator (== , != , > , >= , < , <= , contain , does not contain) Wenn field_name=campaign, muss op == sein; bei Feldname oder Tag siehe Filterbedingungen |
| value | string | ja | Wenn fieldName "tag", value=Tag-Name; bei Feldname siehe Filterbedingungen; bei fieldName = "campaign", value ist einer von sent, open, click, unopen, unclick, notsent |
Hinweis:
- Bitte beachten Sie die Beziehung zwischen field_name und op unter Filterbedingungen.
Request-Beispiel
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments --data '{
"segment_name": "Hubei user",
"type": 0,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Name",
"op": "contain",
"value": "Lei Li"
}
]
}
}'
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"result": {
"segment_id": "6566f6392c16e71300b1b1e9",
"user_id": 104201,
"segment_name": "MyCustomField",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Name",
"op": "contain",
"value": "Lei li"
}
]
},
"process": {
"statusDesc": "Segmentierung abgeschlossen",
"complete": true,
"percent": 100
}
}
}
Fehler
{
"code": 30035,
"message": "[segment_name]:Sonderzeichen wie ^, ?, +, ., \\, [, ], (, ) dürfen nicht verwendet werden"
}
Löschen
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
HTTP-Request-Methode
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Request-Beispiel
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/6566f12d1e9adc15e3efd4
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"count": 1
}
Fehler
{
"code": 30036,
"message": "not found"
}
Aktualisieren
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
HTTP-Request-Methode
PUT
Content-Type
application/json; charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| segment_name | string | nein | Gruppenname (maximal 48 Zeichen) |
| type | integer | ja | Gruppentyp (0 oder 1) 0: nach Feld (nach Attribut gruppiert); 1: nach Kampagne (nach Performance gruppiert) |
| condition | object | ja | Gruppierungsbedingung |
| relation | string | ja | Bedingungslogik (and/oder) |
| items | object[] | ja | Bedingungen (maximal 10 Filterbedingungen, alle müssen die gleiche Logik haben) |
| campaign_id | integer | nein | Marketing-Task-ID Wenn field_name=campaign, ist dieser Wert erforderlich und der Task-Status muss „in Bearbeitung“ oder „abgeschlossen“ sein |
| field_name | string | ja | 1. Wenn type=0 2. Wenn type=1 field_name muss campaign sein, value kann "sent", "open", "click", "unopen", "unclick", "notsent" sein, in diesem Fall ist campaignId erforderlich und entspricht der Kampagnen-ID |
| op | string | ja | Operator (==, !=, >, >=, <, <=, contain, does not contain) Wenn field_name=campaign, muss op == sein; bei Attributname oder Tag siehe Filterbedingungen |
| value | string | ja | Wenn field_name "tag", value=Tag-Name; bei Attributname siehe Filterbedingungen; bei field_name = "campaign", value muss einer von sent, open, click, unopen, unclick, notsent sein |
Hinweis:
- Bitte beachten Sie die Beziehung zwischen field_name und op unter Filterbedingungen.
Request-Beispiel
curl -X PUT -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d --data '{
"segment_name": "Age between 13 and 45",
"type": 0,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Age",
"op": ">=",
"value": "13"
},
{
"field_name": "Age",
"op": "<=",
"value": "45"
}
]
}
}'
Antwort-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| segment_id | string | Segment-ID |
| segment_name | string | Segmentname |
| list_id | integer | Zugehörige Listen-ID |
| status | string | Segmentstatus (-1: Fehlgeschlagen, 1: Wird aktualisiert, 2: Aktualisierung abgeschlossen) |
| create_time | string | Erstellungszeit (UTC+8) |
| update_time | string | Aktualisierungszeit (UTC+8) |
| member_total | integer | Gesamtzahl der Mitglieder in der Gruppe |
| type | integer | Segmenttyp (0 oder 1) |
| condition | object | Segmentbedingung |
| relation | string | Bedingungslogik (and/oder) |
| items | object[] | Bedingungen |
| campaign_id | integer | Kampagnen-ID |
| field_name | string | Feldname |
| op | string | Operator |
| value | string | Feldwert |
| process | object | Gruppenverarbeitungsfortschritt |
| status_desc | string | Statusbeschreibung |
| complete | Boolean | true: abgeschlossen, false: nicht abgeschlossen |
| percent | integer | Prozentsatz der Fertigstellung |
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"result": {
"segment_id": "6566f91fceac8f702f24dbba",
"user_id": 104201,
"segment_name": "Age between 13 and 45",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:41:03+0800",
"update_time": "2023-11-29 17:08:43+0800",
"member_total": 10,
"condition":{
"relation": "and",
"items":[
{
"campaign_id": null,
"field_name": "Age",
"op": ">=",
"value": "13"
},
{
"campaign_id": null,
"field_name": "Age",
"op": "<=",
"value": "45"
}
]
},
"process": {
"statusDesc": "Segmentierung abgeschlossen",
"complete": true,
"percent": 100
}
}
}
Fehler
{
"code": 30036,
"message": "not found"
}
Segmentdetails
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
HTTP-Request-Methode
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Request-Beispiel
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d
Antwort-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| segment_id | string | Segment-ID |
| segment_name | string | Segmentname |
| list_id | integer | Zugehörige Listen-ID |
| status | string | Segmentstatus (-1: Fehlgeschlagen, 1: Wird aktualisiert, 2: Aktualisierung abgeschlossen) |
| create_time | string | Erstellungszeit (UTC+8) |
| update_time | string | Aktualisierungszeit (UTC+8) |
| member_total | integer | Gesamtzahl der Mitglieder in der Gruppe |
| type | integer | Segmenttyp (0 oder 1) |
| condition | object | Segmentbedingungen |
| relation | string | Bedingungslogik (and/oder) |
| items | object[] | Bedingungen |
| campaign_id | integer | Kampagnen-ID |
| field_name | string | Feldname |
| op | string | Operator |
| value | string | Feldwert |
| process | object | Segmentverarbeitungsfortschritt |
| status_desc | string | Statusbeschreibung |
| complete | Boolean | true, wenn abgeschlossen, false, wenn nicht abgeschlossen |
| percent | integer | Fortschrittsprozentsatz |
Antwort-Beispiel
Erfolg
HttpStatus:200
{
"result": {
"segment_id": "6566f6392c16e71300b1b1e9",
"user_id": 104201,
"segment_name": "MyCustomField",
"relation": "and",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items":[{
"campaign_id": null,
"field_name": "CustomField",
"op": "contain",
"value": "CustomField"
}
]
},
"process": {
"statusDesc": "Segmentierung abgeschlossen",
"complete": true,
"percent": 100
}
}
}
Fehler
{
"code": 30036,
"message": "not found"
}
Segmentliste
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments
HTTP-Request-Methode
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Query-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| segment_name | string | nein | Segmentname, unterstützt unscharfe Suche |
| type | integer | nein | Segmenttyp (0 oder 1) 0: nach Feld (Gruppierung nach Feld); 1: nach Kampagne (Gruppierung nach Performance) |
| offset | integer | nein | Startposition der Abfrage, Wertebereich [0-], Standard: 0 |
| limit | integer | nein | Anzahl der Abfrageergebnisse, Wertebereich [1-100], Standard: 10 |
Request-Beispiel
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments?offset=0&limit=10&segmentName=abc_by_name&type=0
Antwort-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| list | array | Mitgliederliste |
| segment_id | string | Segment-ID |
| segment_name | string | Segmentname |
| list_id | integer | Listen-Zuordnung |
| status | string | Segmentstatus (-1: Fehlgeschlagen, 1: Wird aktualisiert, 2: Aktualisiert) |
| create_time | string | Erstellungszeit (UTC+8) |
| update_time | string | Aktualisierungszeit (UTC+8) |
| member_total | integer | Gesamtzahl der Mitglieder im Segment |
| type | integer | Segmenttyp (0 oder 1) - 0: nach Feld, 1: nach Kampagne |
| condition | object | Segmentbedingungen |
| relation | string | Bedingungslogik (and/oder) |
| items | object[] | Bedingungen |
| campaign_id | integer | Kampagnen-ID |
| field_name | string | Feldname |
| op | string | Operator |
| value | string | Feldwert |
| process | object | Segmentverarbeitungsfortschritt |
| status_desc | string | Statusbeschreibung |
| complete | Boolean | true, wenn abgeschlossen, false, wenn nicht abgeschlossen |
| percent | integer | Fortschrittsprozentsatz |
| total | integer | Gesamtanzahl der Datensätze |
| count | integer | Anzahl der Ergebnisdatensätze |
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"result": [
{
"segment_id": "6566f6392c16e71300b1b1e9",
"segment_name": "MyCustomField",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items": [
{
"campaign_id": null,
"field_name": "CustomField",
"op": "contain",
"value": "CustomField"
}
]
},
"process": {
"statusDesc": "Segmentierung abgeschlossen",
"complete": true,
"percent": 100
}
},
{
"segment_id": "6566f2dd1e9adc15e3efd47e",
"segment_name": "Age>=20用户组",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:14:21+0800",
"update_time": "2023-11-29 16:14:23+0800",
"member_total": 10,
"condition": {
"relation": "and",
"items": [
{
"campaign_id": null,
"field_name": "Age",
"op": ">=",
"value": "20"
}
]
},
"process": {
"statusDesc": "Segmentierung abgeschlossen",
"complete": true,
"percent": 100
}
}
],
"total": 4,
"count": 2
}
Fehler
{
"code": 30035,
"message": "type only be 0 (by field) or 1 (by campaign)"
}
Segmentprozess abfragen
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/process
HTTP-Request-Methode
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Request-Beispiel
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d/process
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"result": {
"percent": 68,
"complete": false,
"statusDesc": "Segmentierung läuft, bitte dieses Segment nicht zum Versand verwenden"
}
}
Fehler
{
"code": 30036,
"message": "not found"
}
Segment-Mitgliederliste
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/members
HTTP-Request-Methode
POST
Content-Type
application/json; charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Query-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| offset | integer | nein | Startposition der Abfrage, Wertebereich: [0-], Standard: 0 |
| limit | integer | nein | Anzahl der Einträge, Wertebereich: [1-100], Standard: 10 |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| condition | object | nein | Gruppierungsbedingung |
| relation | string | ja | Bedingungslogik (and/oder) |
| items | object[] | ja | Bedingungen (maximal 10 Filterbedingungen, alle mit gleicher Logik) |
| field_name | string | ja | field_name ist der Attributname, value ist der Attributwert; wenn field_name "tag", value=Tag-Name |
| op | string | ja | Operator (==, !=, >, >=, <, <=, contain, does not contain) |
| value | string | ja | Wenn field_name = "tag", value = Tag-Name; bei Attributname siehe Filterbedingungen |
Hinweis:
- Bitte beachten Sie die Beziehung zwischen field_name und op unter Filterbedingungen.
Request-Beispiel
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62908150eb5e955d6d214da6/members?offset=0&limit=10 --data '{
"condition": {
"relation": "and",
"items": [
{
"field_name": "Email",
"op": "contain",
"value": "tw"
}
]
}
}'
Antwort-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| list | array[object] | Ergebnisliste |
| id | string | Mitglieds-ID |
| list_id | integer | Listen-ID |
| string | E-Mail-Adresse | |
| phone | string | Telefonnummer |
| name | string | Name |
| create_time | string | Erstellungszeit (UTC+8) |
| update_time | string | Aktualisierungszeit (UTC+8) |
| unsubscribe_time | string | Abmeldezeitpunkt (UTC+8) |
| fields | object | Mitgliederfelder |
| tag_ids | string[] | Tag-ID-Set |
| tag_names | string[] | Tag-Namen-Set |
| total | integer | Gesamtanzahl der Datensätze |
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"result": [
{
"id": "629d6650490f33c5eef1caa6",
"list_id": 63486,
"email": "paulchen0518@yahoo.com.tw",
"phone": null,
"name": "shanshan",
"create_time": "2022-06-06T10:28:32+0800",
"update_time": "2022-06-06T10:28:32+0800",
"unsubscribe_time": null,
"fields": {
"Gender": "Female"
},
"tags": null,
"tag_names": []
},
{
"id": "629d665a490f33c5eef2932f",
"list_id": 63486,
"email": "q510518@yahoo.com.tw",
"phone": null,
"name": "",
"create_time": "2022-06-06T10:28:42+0800",
"update_time": "2022-06-06T10:28:42+0800",
"unsubscribe_time": null,
"fields": {
"Gender": ""
},
"tag_ids": null,
"tag_names": []
}
],
"total": 2
}
Fehler
{
"code": 30000,
"message": "Authentifizierung fehlgeschlagen"
}
Segmentmitglieder löschen
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/members
HTTP-Request-Methode
DELETE
Content-Type
application/json; charset=utf-8
Request-Headers
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| member_ids | string[] | ja | Liste der Mitglieds-IDs |
Request-Beispiel
curl -X DELETE -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/ 62849dc690d79d4947dd033d/members --data '{
"member_ids": [
"asdfsdf2211212aa",
"2sadfs288332223s"
]
}'
Antwort-Beispiel
Erfolg
HttpStatus: 200
{
"count": 100
}
Fehler
{
"code": 30000,
"message": "Authentifizierung fehlgeschlagen"
}

