E-Mail-Marketingkampagnen mit der EngageLab API verwalten
In dieser Dokumentation erfahren Sie, wie Sie E-Mail-Marketingkampagnen über die EngageLab API verwalten, erstellen, aktualisieren und löschen. Sie erhalten praxisnahe Beispiele für die Integration von A/B-Tests, Google Analytics Tracking (UTM-Parameter) sowie Warm-up-Konfigurationen zur Optimierung Ihrer Zustellraten. Die API ist speziell für technisch versierte Marketing-Teams und IT-Professionals konzipiert, die Wert auf Effizienz, ROI und strategische Steuerung legen.
Aufrufadresse
| Rechenzentrum | URL |
|---|---|
| Singapur | https://email.api.engagelab.cc |
| Türkei | https://emailapi-tr.engagelab.com |
Wichtiger Hinweis: Das gewählte Rechenzentrum muss zur jeweiligen Basis-URL passen.
Kampagne erstellen
Mit diesem Endpunkt können Sie neue E-Mail-Marketingkampagnen über die EngageLab API erstellen.
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
HTTP-Request-Methode
POST
Content-Type
application/json; charset=utf-8
Request-Header
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| campaign_type | integer | ja | Kampagnentyp: 1 für A/B-Test, 2 für reguläre Kampagne |
| name | string | ja | Kampagnenname (max. 64 Zeichen) |
| to | object[] | ja | Empfänger:innen (derzeit wird nur ein Empfänger-Array der Länge 1 unterstützt) |
| reply_to | string | nein | Antwortadresse |
| sender_id | string | * | Absender-ID (nur für reguläre Kampagnen unterstützt) |
| template_invoke_name | string | * | Name des zu verwendenden E-Mail-Templates (nur für reguläre Kampagnen unterstützt) |
| subject | string | * | Betreff, überschreibt den Betreff der Vorlage. Erforderlich, wenn A/B-Test ein Content-Test ist |
| send_time | string | * | Versandzeit (nur für reguläre Kampagnen unterstützt), Format: "YYYY-MM-DD HH:mm:ss" |
| time_zone | integer | * | Standard-Zeitzone (standardmäßig +8) |
| attachments | object[] | nein | E-Mail-Anhänge (max. 10 Anhänge, Gesamtgröße vor Codierung max. 10 MB) |
| filename | string | nein | Dateiname des Anhangs, z. B. example.pdf |
| content | string | nein | Inhalt des Anhangs, base64-codiert |
| ab_test | object | * | A/B-Test-Konfigurationsparameter (nur für A/B-Test unterstützt) |
| google_track | object | nein | Google-Tracking-Konfiguration (UTM-Parameter für Google Analytics, nur für reguläre Kampagnen unterstützt) |
| warm_up | object[] | nein | Warm-up-Konfiguration (nur für reguläre Kampagnen unterstützt) |
Wichtiger Hinweis:
- Die Gesamtgröße aller Anhänge darf 10 MB nicht überschreiten (vor base64-Codierung). Durch die Codierung kann die Dateigröße leicht ansteigen.
Empfänger:innen-Format („to“-Parameter)
Derzeit wird nur ein Empfänger-Array der Länge 1 unterstützt. Drei Formate sind möglich:
[
{
"type": "list",
"value": ["all"]
}
]
[
{
"type": "tag",
"value": ["tag1"]
}
]
[
{
"type": "segment",
"value": ["segment1"]
}
]
A/B-Test-Konfigurationsparameter („ab_test“-Parameter)
Bei einer A/B-Test-Kampagne ist der Parameter „ab_test“ erforderlich.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| ab_test | object | ja | Konfigurationsdaten für den A/B-Test |
| percent | integer | ja | Prozent-Einstellung, Bereich [1, 100]. Beispiel: 20 bedeutet, 20 % der Kontakte werden als Testempfänger:innen ausgewählt, der Rest erhält die Gewinner-Variante |
| win_condition | object | ja | Gewinnbedingung für den A/B-Test |
| time_unit | string | ja | Zeiteinheit: day, hour |
| after_time | integer | ja | Wartezeit bis zur Auswertung der Gewinnbedingung. Bei Stunden [0-23], bei Tagen [0-10] |
| compare | string | ja | Vergleichsfeld: open_percent, click_percent, uni_open_percent, uni_click_percent, delivered_percent |
| template_invoke_names | string[] | * | Template-Test. Der Wert von template_invoke_name wird ignoriert, subject ist erforderlich |
| sender_ids | string[] | * | Absender-Test. Der Wert von sender_id wird ignoriert |
| send_times | string[] | * | Versandzeit-Test. Der Wert von send_time wird ignoriert |
| subjects | string[] | * | Betreff-Test. Der Wert von subject wird ignoriert |
Wichtiger Hinweis: Die Konfiguration von „ab_test“ unterstützt derzeit nur ein einzelnes Testelement.
Beispiele:
// A/B-Test mit unterschiedlichen Betreffzeilen
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"subjects": []
}
// A/B-Test mit unterschiedlichen E-Mail-Templates
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
// A/B-Test mit unterschiedlichen Absendern
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"sender_ids": []
}
// A/B-Test mit unterschiedlichen Versandzeiten
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"send_times": []
}
Google Analytics Tracking („google_track“-Parameter)
Mit der Konfiguration von „google_track“ (UTM-Parameter) können Sie den Traffic Ihrer Kampagnen in Google Analytics auswerten.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| google_track | object | nein | Google-Tracking-Konfigurationsparameter (UTM) |
| campaign_name | string | nein | Kampagnenname (max. 64 Zeichen) |
| campaign_source | string | nein | Quelle (max. 64 Zeichen) |
| campaign_medium | string | nein | Medium (max. 64 Zeichen) |
| campaign_term | string | nein | Keyword (max. 64 Zeichen) |
| campaign_content | string | nein | Inhalt (max. 64 Zeichen) |
Beispiel:
"google_track": {
"campaign_name": "",
"campaign_source": "",
"campaign_medium": "",
"campaign_term": "",
"campaign_content": ""
}
Warm-up-Konfiguration („warm_up“-Parameter)
Mit dem Warm-up-Versand können Sie die Anzahl der E-Mails pro Stunde oder Tag für bestimmte Empfängerdomains festlegen, um die Zustellbarkeit zu verbessern. Die Versandrate kann je nach Zustellbarkeit angepasst werden.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| warm_up | object[] | nein | Warm-up-Konfigurationsparameter, max. Länge 20 |
| domain | string | ja | Empfängerdomain |
| rate | integer | ja | Versandrate (Anzahl der E-Mails pro Stunde/Tag) |
| upgrade_value | float | ja | Schwellenwert für Rate-Upgrade, Dezimalwert zwischen (0,1] |
| downgrade_value | float | ja | Schwellenwert für Rate-Downgrade, Dezimalwert zwischen (0,1] |
Beispiel:
"warm_up": [
{
"domain": "gmail.com",
"rate": 1,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
},
{
"domain": "hotmail.com",
"rate": 3,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
}
]
Beispiel-Request: Reguläre Kampagne erstellen
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 1,
"name": "11.11_leon_api8",
"to":[{
"type": "tag",
"value": ["tag1"]
}],
"sender_id": "53",
"reply_to": "",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"run_time": "2022-10-26 17:10:20",
"time_zone": "8",
"attachments":[{
"content": "base64 content",
"file_name": "1.jpg"
},{
"content": "base64 content",
"file_name": "2.jpg"
}],
"warm_up": [{
"domain": "gmail.com",
"rate": 1,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
},{
"domain": "hotmail.com",
"rate": 1,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
}],
"google_track": {
"campaign_name": "",
"campaign_source": "",
"campaign_medium": "",
"campaign_term": "",
"campaign_content": ""
}
}'
Beispiel-Request: A/B-Test-Kampagne erstellen
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 2,
"name": "11.11_leon_api9",
"to":[{
"type": "list",
"value": ["all"]
}],
"sender_id": "53",
"reply_to": "reply@sendcloud.im",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"run_time": "2022-10-26T17:10:20+0800",
"time_zone": "8",
"attachments":[{
"content": "base64 content",
"file_name": "1.jpg"
}],
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track": {
"campaign_name": "",
"campaign_source": "",
"campaign_medium": "",
"campaign_term": "",
"campaign_content": ""
}
}'
Erfolgreiche Antwort
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 2,
"name": "testddd",
"to": {
"type": "tag",
"value": ["tag1"]
},
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"sender_id": 21,
"google_track": {
"campaign_name": "",
"campaign_source": "",
"campaign_medium": "",
"campaign_term": "",
"campaign_content": ""
},
"warm_up": [{
"domain": "hotmail.com",
"rate": 1,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
},{
"domain": "hotmail.com",
"rate": 1,
"upgrade_value": "0,95",
"downgrade_value": "0,75"
}]
}
}
Erfolgreiche Antwort (A/B-Test-Kampagne)
{
"result": {
"campaign_id": 34009,
"campaign_type": 2,
"name": "testddd",
"to": [{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 0,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track": {
"campaign_name": "",
"campaign_source": "",
"campaign_medium": "",
"campaign_term": "",
"campaign_content": ""
}
}
}
Fehlerhafte Antwort
HttpStatus: 401
{
"code": 32112,
"message": "name darf nicht leer sein"
}
Kampagne löschen
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
HTTP-Request-Methode
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Header
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Beispiel-Request
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8
Erfolgreiche Antwort
HttpStatus: 200
{
"count": 1
}
Fehlerhafte Antwort
HttpStatus: 401
{
"code": 30000,
"message": "Authentifizierung fehlgeschlagen"
}
Kampagne aktualisieren
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
HTTP-Request-Methode
PUT
Content-Type
application/json; charset=utf-8
Request-Header
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Bearer Token |
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| campaign_type | integer | ja | Kampagnentyp: 1 für A/B-Test, 2 für reguläre Kampagne |
| name | string | ja | Kampagnenname (max. 64 Zeichen) |
| to | object[] | ja | Empfänger:innen (derzeit wird nur ein Empfänger-Array der Länge 1 unterstützt) |
| reply_to | string | nein | Antwortadresse |
| sender_id | string | * | Absender-ID (nur für reguläre Kampagnen unterstützt) |
| template_invoke_name | string | * | Name des zu verwendenden E-Mail-Templates (nur für reguläre Kampagnen unterstützt) |
| subject | string | * | Betreff (bei A/B-Tests erforderlich) |
| send_time | string | * | Versandzeit (nur für reguläre Kampagnen unterstützt), Format: "YYYY-MM-DD HH:mm:ss" |
| time_zone | integer | * | Standard-Zeitzone, üblicherweise +8 |
| attachments | object[] | nein | E-Mail-Anhänge (max. 10 Anhänge) |
| filename | string | nein | Dateiname des Anhangs, z. B. example.pdf |
| content | text | nein | Base64-codierter Inhalt des Anhangs |
| ab_test | object | * | Konfigurationsparameter für A/B-Tests (nur für A/B-Tests) |
| google_track | object | nein | Konfigurationsparameter für Google-Tracking (UTM) |
| warm_up | object[] | nein | Warm-up-Konfiguration (nur für reguläre Kampagnen unterstützt) |
Beispiel-Request:
curl -X PUT -H 'application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8 --data '{
"name":"11.11_leon_api8"
}'
Erfolgreiche Antwort
HttpStatus: 200
{
"count": 1
}
Fehlerhafte Antwort
{
"code": 32110,
"message": "Die aktuelle Kampagne wurde bereits ausgeführt und kann nicht mehr geändert werden"
}
Kampagnenliste abrufen
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
HTTP-Request-Methode
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Header
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Query-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| campaign_type | integer | nein | Kampagnentyp: 1 = A/B-Kampagne, 2 = reguläre Kampagne |
| status | integer | nein | Kampagnenstatus: 0 = Ausstehend, 1 = In Bearbeitung, 2 = Abgeschlossen, -1 = Fehlgeschlagen |
| name | string | nein | Kampagnenname |
| limit | integer | nein | Anzahl der Ergebnisse, Bereich [1-100], Standardwert 10 |
| offset | integer | nein | Startposition für die Abfrage, Bereich [0-], Standardwert 0 |
Beispiel-Request
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns?&status=2
Erfolgreiche Antwort
HttpStatus: 200
{
"result": [
{
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to": [{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"warm_up": [],
"sender_id": 21,
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
}
],
"total": 2
}
Fehlerhafte Antwort
{
"code": 30000,
"message": "Authentifizierung fehlgeschlagen"
}
Kampagnendetails abrufen
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
HTTP-Request-Methode
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Request-Header
| Header | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| Authorization | string | ja | Basic base64(api_user:api_key) |
Beispiel-Request
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/33761
Response-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| name | string | Kampagnenname |
| to | object[] | Empfänger:innen (Array von Empfänger-Objekten, derzeit nur Länge 1 unterstützt) |
| campaign_id | integer | Kampagnen-ID |
| campaign_type | integer | Kampagnentyp: 1 für A/B-Test, 2 für reguläre Kampagne |
| template_invoke_name | string | Name des Templates |
| reply_to | string | Antwortadresse |
| status | integer | Kampagnenstatus (0: ausstehend, 1: in Bearbeitung, 2: abgeschlossen, -1: fehlgeschlagen) |
| from_email | string | E-Mail-Adresse des Absenders |
| from_name | string | Absendername |
| sender_id | integer | Absender-ID |
| create_time | string | Erstellungszeit (UTC+8) |
| update_time | string | Aktualisierungszeit (UTC+8) |
| run_time | string | Startzeit (UTC+8) |
| time_zone | integer | Zeitzone (siehe Zeitzonen-Liste) |
| complete_time | string | Abschlusszeit (UTC+8) |
| google_track | object | Google-Tracking-Konfiguration (UTM) |
| warm_up | array[object] | Warm-up-Konfiguration (nur für reguläre Kampagnen unterstützt) |
| ab_test | object | A/B-Test-Konfiguration |
Erfolgreiche Antwort
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to": [{
"type": "list",
"value": ["all"]
}],
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"warm_up": null,
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
}
}
Fehlerhafte Antwort
{
"code": 30000,
"message": "Authentifizierung fehlgeschlagen"
}
Hinweis: Für alle Endpunkte gilt: Die Feldnamen in den JSON-Beispielen und API-Responses bleiben im Original (Englisch) für technische Kompatibilität. Die Beschreibungen und Erklärungen sind vollständig auf Deutsch lokalisiert und folgen den aktuellen SEO- und Marketingstandards für den deutschen Markt.
Jetzt testen:
Demo buchen
Mehr erfahren

