Notify
POST https://api.pushwoosh.com/messaging/v2/notify
Erstellt und plant eine einzelne Nachricht.
Anfragestruktur
Anchor link toDer Anfragekörper ist ein NotifyRequest mit genau einer von zwei Arten:
segment: zielt auf ein Zielgruppensegment nach Segmentcode, einen seglang-Ausdruck oder einen strukturierten Filterausdruck ab.transactional: sendet an eine explizite Liste von HWIDs, Benutzer-IDs, Push-Tokens oder Testgeräten.
{ "segment": { ... } // ODER "transactional": { ... }}NotifySegment
Anchor link toZielt auf Benutzer ab, die einem Zielgruppensegment oder einem Filterausdruck entsprechen.
| Feld | Typ | Beschreibung |
|---|---|---|
schedule | Schedule | Wann und wie gesendet werden soll. Erforderlich. |
application | string | Anwendungscode. |
platforms | array of Platform | Plattformen, auf die die Nachricht abzielt. |
code | string | Segmentcode. Schließt sich gegenseitig mit expression und filter_expression aus. |
expression | string | Seglang-Ausdruck. |
filter_expression | FilterExpression | Strukturierter Filterausdruck (erweitert). |
payload | Payload | Push / SMS / Telegram / Kakao Payload. Schließt sich gegenseitig mit email_payload aus. |
email_payload | EmailPayload | E-Mail-Payload. |
campaign | string | Kampagnencode, dem diese Nachricht zugeordnet werden soll. |
frequency_capping | FrequencyCapping | Frequenzbegrenzungen pro Benutzer. |
send_rate | SendRate | Drosselung für den Versand. |
message_type | MessageType | MESSAGE_TYPE_MARKETING (Standard) oder MESSAGE_TYPE_TRANSACTIONAL. Steuert die Filterung der Kontrollgruppe. |
dynamic_content_placeholders | map<string, string> | Ersetzt Platzhalter im Inhalt. |
meta_data | object | Freiform-Metadaten, die an nachgelagerte Analysen weitergeleitet werden. |
Beispiel: An ein Segment senden
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "body": "Hello!" }, "android": { "body": "Hello!" } } } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } }'NotifyTransactional
Anchor link toSendet an eine explizite Liste von Empfängern.
| Feld | Typ | Beschreibung |
|---|---|---|
schedule | Schedule | Erforderlich. |
application | string | Anwendungscode. |
platforms | array of Platform | Plattformen, auf die die Nachricht abzielt. |
test_devices | bool | Wenn true, nur an die Testgeräte der App senden. |
hwids | { "list": [string, ...] } | Nur an diese hwids senden. |
users | { "list": [string, ...] } | Nur an diese Benutzer-IDs senden. |
push_tokens | { "list": [string, ...] } | Nur an diese Push-Tokens senden. |
payload | Payload | Push / SMS / Telegram / Kakao Payload. |
email_payload | EmailPayload | E-Mail-Payload. |
return_unknown_identifiers | bool | Wenn true, listet unknown_identifiers in der Antwort die nicht gefundenen Kennungen auf. |
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_data | Siehe NotifySegment oben. |
test_devices, hwids, users und push_tokens schließen sich gegenseitig aus. Es muss genau eines festgelegt werden.
Beispiel: Transaktional nach Benutzer-IDs
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "transactional": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "users": { "list": ["user-123", "user-456"] }, "payload": { "content": { "localized_content": { "en": { "ios": { "body": "Your order has shipped." } } } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_TRANSACTIONAL", "return_unknown_identifiers": true } }'Antwort
Anchor link to{ "result": { "message_code": "XXXXX-XXXXX-XXXXX", "unknown_identifiers": [] }}| Feld | Typ | Beschreibung |
|---|---|---|
message_code | string | Einzigartiger Nachrichtencode. Verwenden Sie ihn mit den Endpunkten /getMessageDetails und Nachrichtenstatistiken. |
unknown_identifiers | array of string | Kennungen, die im Konto nicht gefunden wurden. Wird nur gefüllt, wenn return_unknown_identifiers: true für die transactional-Art festgelegt wurde. |
Gemeinsame Typen
Anchor link toSchedule
Anchor link to{ "at": "2026-05-01T12:00:00Z", "follow_user_timezone": true, "past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"}| Feld | Typ | Beschreibung |
|---|---|---|
at | timestamp | Absolute Sendezeit (RFC 3339). Liegt sie in der Vergangenheit, wird die Nachricht sofort gesendet. Maximal 14 Tage in der Zukunft. |
after | duration | Alternative zu at. Nach diesem Versatz von „jetzt“ senden (z. B. "3600s"). |
follow_user_timezone | bool | Wenn true, empfängt jedes Gerät die Nachricht zur Zeit at in seiner lokalen Zeitzone. |
past_timezones_behaviour | enum | PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (Standard), PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND oder PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY. Nur sinnvoll, wenn follow_user_timezone auf true gesetzt ist. |
FrequencyCapping
Anchor link toFrequenzbegrenzungen pro Benutzer für Marketing-Sendungen.
{ "days": 7, "count": 3, "exclude": false, "avoid": true }days(int, 1–30): Rückblickfenster.count(int): maximale Anzahl von Nachrichten, die innerhalb vondayserlaubt sind.exclude(bool): schließt Benutzer, die das Limit bereits erreicht haben, hart aus.avoid(bool): vermeidet Benutzer, die das Limit bereits erreicht haben, weich (sie zählen weiterhin für die Analytik).
SendRate
Anchor link to{ "value": 500, "bucket": "1s", "avoid": false }Drosselt den Versand. value ist die Anzahl der Nachrichten pro bucket; ein typischer bucket ist "1s".
Platform-Enum
Anchor link toIOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, BAIDU_ANDROID, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP.
MessageType-Enum
Anchor link toMESSAGE_TYPE_UNSPECIFIED: entsprichtMESSAGE_TYPE_MARKETING.MESSAGE_TYPE_MARKETING: unterliegt der Filterung durch Kontrollgruppen und der Frequenzbegrenzung.MESSAGE_TYPE_TRANSACTIONAL: überspringt die Filterung durch Kontrollgruppen und die Frequenzbegrenzung. Verwenden Sie dies für Bestellbestätigungen, OTPs und ähnliche kritische Abläufe.