Перейти к содержанию

Email API

createEmailMessage Устарел

Anchor link to

Создает email-сообщение.

POST https://api.pushwoosh.com/json/1.3/createEmailMessage

Параметры тела запроса

Anchor link to
ИмяТип
ОбязательныйОписание
authstringДаТокен доступа к API из Панели управления Pushwoosh.
applicationstringДаКод приложения Pushwoosh
notificationsarrayДаМассив JSON, содержащий детали email-сообщения. См. таблицу Параметры Notifications ниже.

Параметры Notifications

Anchor link to
ИмяТип
ОбязательныйОписание
send_datestringДаОпределяет, когда отправлять email. Формат: YYYY-MM-DD HH:mm или "now".
presetstringДаКод пресета email. Скопируйте из адресной строки Редактора контента email в Панели управления Pushwoosh.
subjectstring или objectНетТема email. Email всегда будет на языке контента. Если subject не содержит соответствующего языка для content, тема будет пустой.
contentstring или objectНетСодержимое тела email. Может быть строкой для простого HTML-контента или объектом для локализованных версий.
attachmentsarrayНетВложения в email. Доступно только два вложения. Каждое вложение не должно превышать 1 МБ (в кодировке base64).
list_unsubscribestringНетПозволяет установить пользовательский URL для заголовка “Link-Unsubscribe”.
campaignstringНетКод кампании для связи email с определенной кампанией.
ignore_user_timezonebooleanНетЕсли true, отправляет email немедленно, игнорируя часовые пояса пользователей.
timezonestringНетОтправляет email в соответствии с часовым поясом пользователя. Пример: "America/New_York".
filterstringНетОтправляет email пользователям, соответствующим определенному условию фильтра.
devicesarrayНетСписок email-адресов (максимум 1000) для отправки целевых email. Если используется, сообщение отправляется только на эти адреса. Игнорируется, если используется группа приложений.
use_auto_registrationbooleanНетЕсли true, автоматически регистрирует email из параметра devices.
usersarrayНетЕсли установлено, email-сообщение будет доставлено только указанным User ID (зарегистрированным через вызов /registerEmail). Не более 1000 User ID в массиве. Если указан параметр “devices”, параметр “users” будет проигнорирован.
dynamic_content_placeholdersobjectНетПлейсхолдеры для динамического контента вместо значений тегов устройства.
conditionsarrayНетУсловия сегментации с использованием тегов. Пример: [["Country", "EQ", "BR"]].
fromobjectНетУкажите пользовательское имя и email отправителя, переопределяя значения по умолчанию в свойствах приложения.
reply-toobjectНетУкажите пользовательский email для ответа, переопределяя значение по умолчанию в свойствах приложения.
bccarrayНетBCC (скрытая копия): массив email-адресов, которые получат копию email, не будучи видимыми для других получателей.
email_typestringНетУкажите тип email: "marketing" или "transactional". Если не указано, пользователи с PW_ControlGroup: true не получат сообщение.
email_categorystringОбязательно, когда email_type равен "marketing".Укажите одно из названий категорий, настроенных в центре управления подписками (например, Newsletter, Promotional, Product Updates).
transactionIdstringНетУникальный идентификатор сообщения для предотвращения повторной отправки в случае проблем с сетью. Хранится на стороне Pushwoosh в течение 5 минут.
capping_daysintegerНетКоличество дней (максимум 30) для применения ограничения частоты отправки на устройство. Примечание: Убедитесь, что Глобальное ограничение частоты отправки настроено в Панели управления.
capping_countintegerНетМаксимальное количество email, которое может быть отправлено из определенного приложения на конкретное устройство в течение периода capping_days. Если созданное сообщение превышает лимит capping_count для устройства, оно не будет отправлено на это устройство.
capping_excludebooleanНетЕсли установлено значение true, этот email не будет учитываться при ограничении частоты для будущих email.
capping_avoidbooleanНетЕсли установлено значение true, ограничение частоты не будет применяться к этому конкретному email.
send_rateintegerНетОграничение количества сообщений, которые можно отправлять в секунду всем пользователям. Помогает предотвратить перегрузку бэкенда при отправке больших объемов.
send_rate_avoidbooleanНетЕсли установлено значение true, ограничение скорости отправки не будет применяться к этому конкретному email.

Пример запроса

Anchor link to
{
"request": {
"auth": "API_ACCESS_TOKEN", // обязательно. Токен доступа к API из Панели управления Pushwoosh
"application": "APPLICATION_CODE", // обязательно. Код приложения Pushwoosh.
"notifications": [{
"send_date": "now", // обязательно. YYYY-MM-DD HH:mm ИЛИ 'now'
"preset": "ERXXX-32XXX", // обязательно. Скопируйте код пресета email из адресной строки
// страницы редактора контента email в Панели управления Pushwoosh.
"subject": { // опционально. Тема email-сообщения.
"de": "subject de",
"en": "subject en"
},
"content": { // опционально. Содержимое тела email.
"de": "<html><body>de Hello, moto</body></html>",
"default": "<html><body>default Hello, moto</body></html>"
},
"attachments": [{ // опционально. Вложения в email
"name": "image.png", // "name" - имя файла
"content": "iVBANA...AFTkuQmwC" // "content" - содержимое файла в кодировке base64
}, {
"name": "file.pdf",
"content": "JVBERi...AFTarEGC"
}],
"list_unsubscribe": "URL", // опционально. Позволяет установить пользовательский URL для заголовка "Link-Unsubscribe"
"campaign": "CAMPAIGN_CODE", // опционально. Чтобы назначить это email-сообщение определенной кампании,
// добавьте сюда код кампании.
"ignore_user_timezone": true, // опционально.
"timezone": "America/New_York", // опционально. Укажите для отправки сообщения в соответствии с
// часовым поясом, установленным на устройстве пользователя.
"filter": "FILTER_NAME", // опционально. Отправить сообщение определенным пользователям, отвечающим условиям фильтра.
"devices": [ // опционально. Укажите email-адреса для отправки целевых email-сообщений.
"email_address1", // Не более 1000 адресов в массиве.
"email_address2" // Если установлено, сообщение будет отправлено только на адреса
], // из списка. Игнорируется, если используется группа приложений.
"use_auto_registration": true, // опционально. Автоматически регистрировать email, указанные в параметре "devices"
"users": [ // опционально. Если установлено, email-сообщение будет доставлено только
"userId1", // указанным User ID (зарегистрированным через вызов /registerEmail).
"userId2" // Не более 1000 User ID в массиве.
], // Если указан параметр "devices",
// параметр "users" будет проигнорирован.
"dynamic_content_placeholders": { // опционально. Плейсхолдеры для динамического контента вместо значений тегов устройства.
"firstname": "John",
"firstname_en": "John"
},
"conditions": [ // опционально. Условия сегментации, см. примечание ниже.
["Country", "EQ", "BR"],
["Language", "EQ", "pt"]
],
"from": { // опционально. Укажите имя и email-адрес отправителя
"name": "alias from", // для замены стандартных "Имя отправителя" и "Email отправителя",
"email": "from-email@email.com" // установленных в свойствах приложения.
},
"reply-to": { // опционально. Укажите email-адрес для замены
"name": "alias reply to ", // стандартного "Ответить на", установленного в свойствах приложения.
"email": "reply-to@email.com"
},
"bcc": [ // опционально. BCC: массив email-адресов, которые получат копию, не будучи видимыми для других получателей.
"bcc1@example.com",
"bcc2@example.com"
],
"email_type": "marketing", // опционально. "marketing" или "transactional".
// Если не указано, пользователи с PW_ControlGroup: true не получат сообщение.
"email_category": "category name",// обязательно, когда email_type равен "marketing". Название категории.
"transactionId": "unique UUID", // опционально. Уникальный идентификатор сообщения для предотвращения повторной отправки
// в случае проблем с сетью. Хранится на стороне
// Pushwoosh в течение 5 минут.
// Параметры ограничения частоты. Убедитесь, что Глобальное ограничение частоты настроено в Панели управления.
// Ограничение частоты не применяется к транзакционным сообщениям.
// Во всех остальных случаях, включая пропущенный "email_type", ограничение частоты применяется.
"capping_days": 30, // опционально. Количество дней для ограничения частоты (макс. 30 дней)
"capping_count": 10, // опционально. Максимальное количество email, которое может быть отправлено из
// определенного приложения на конкретное устройство в течение периода 'capping_days'.
// Если созданное сообщение превышает
// лимит 'capping_count' для устройства, оно не будет
// отправлено на это устройство.
"capping_exclude": true, // опционально. Если установлено значение true, этот email не будет
// учитываться при ограничении частоты для будущих email.
"capping_avoid": true, // опционально. Если установлено значение true, ограничение частоты не будет применяться к
// этому конкретному email.
"send_rate": 100, // опционально. Ограничение скорости отправки.
// Ограничивает количество сообщений, которые можно отправлять в секунду всем пользователям.
// Помогает предотвратить перегрузку бэкенда при отправке больших объемов.
"send_rate_avoid": true, // опционально. Если установлено значение true, ограничение скорости отправки не будет применяться к
// этому конкретному email.
}]
}
}

Примеры ответа

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": null
}

Условия тегов

Anchor link to

Каждое условие тега представляет собой массив вида [tagName, operator, operand], где

  • tagName: имя тега
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
  • operand: string | integer | array | date

Описание операнда

Anchor link to
  • EQ: значение тега равно операнду;
  • IN: значение тега пересекается с операндом (операнд всегда должен быть массивом);
  • NOTEQ: значение тега не равно операнду;
  • NOTIN: значение тега не пересекается с операндом (операнд всегда должен быть массивом);
  • GTE: значение тега больше или равно операнду;
  • LTE: значение тега меньше или равно операнду;
  • BETWEEN: значение тега больше или равно минимальному значению операнда, но меньше или равно максимальному значению операнда (операнд всегда должен быть массивом).

Строковые теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN
Допустимые операнды:

  • EQ, NOTEQ: операнд должен быть строкой;
  • IN, NOTIN: операнд должен быть массивом строк, например ["value 1", "value 2", "value N"];

Целочисленные теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Допустимые операнды:

  • EQ, NOTEQ, GTE, LTE: операнд должен быть целым числом;
  • IN, NOTIN: операнд должен быть массивом целых чисел, например [value 1, value 2, value N];
  • BETWEEN: операнд должен быть массивом целых чисел, например [min_value, max_value].

Теги даты

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Допустимые операнды:

  • "YYYY-MM-DD 00:00" (строка)
  • временная метка unix 1234567890 (целое число)
  • "N days ago" (строка) для операторов EQ, BETWEEN, GTE, LTE

Логические теги

Anchor link to

Допустимые операторы: EQ
Допустимые операнды: 0, 1, true, false

Теги списка

Anchor link to

Допустимые операторы: IN
Допустимые операнды: операнд должен быть массивом строк, например ["value 1", "value 2", "value N"].

registerEmail

Anchor link to

Регистрирует email-адрес для приложения.

POST https://api.pushwoosh.com/json/1.3/registerEmail

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX на ваш фактический токен устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
email*stringEmail-адрес.
languagestringЯзыковая локаль устройства. Должен быть двухбуквенным кодом в нижнем регистре согласно стандарту ISO-639-1.
userIdstringUser ID для связи с email-адресом.
tz_offsetintegerСмещение часового пояса в секундах.
tagsobjectЗначения тегов для присвоения зарегистрированному устройству.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // обязательно. Код приложения Pushwoosh.
"email":"email@domain.com", // обязательно. Email-адрес для регистрации.
"language": "en", // опционально. Языковая локаль.
"userId": "userId", // опционально. User ID для связи с email-адресом.
"tz_offset": 3600, // опционально. Смещение часового пояса в секундах.
"tags": { // опционально. Значения тегов для установки на зарегистрированное устройство.
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1","string2"], // устанавливает список значений для тегов типа List
"DateTag": "2024-10-02 22:11", // обратите внимание, что время должно быть в UTC
"BooleanTag": true // допустимые значения: true, false
}
}
}

Коды ответа

Anchor link to

Публичный API возвращает результат в status_code. Используйте таблицу ниже, чтобы определить, следует ли повторять неудачный вызов.

status_codeЗначениеПовторить?
200Успех — email-адрес зарегистрирован.Нет — выполнено.
210Ошибка аргумента/валидации — запрос был понят, но отклонен (адрес в черном списке, недействительный или одноразовый email, неправильная платформа для плана аккаунта). См. сообщения об ошибках 210 ниже.Нет — тот же запрос вернет тот же 210. Залогируйте адрес и пропустите его.
400Некорректный запрос — неверный JSON или отсутствует обязательное поле.Нет — исправьте запрос, не повторяйте его.
403Запрещено — недействительный или ограниченный токен устройства API.Нет — исправьте авторизацию.
500Внутренняя ошибка сервера — временная проблема инфраструктуры или тайм-аут.Да, с экспоненциальной задержкой — единственный временный случай.

Сообщения об ошибках 210

Anchor link to

Ответ 210 содержит конкретную причину в status_message.

status_messageЗначение
this hwid (email) is blacklistedАдрес находится в списке подавления после постоянного (жесткого) возврата и не будет повторно зарегистрирован.
hwid (email) is invalid / has invalid semanticАдрес не прошел валидацию.
hwid (email) is emptyАдрес не был предоставлен.
hwid (email) has invalid count of partsОтсутствует или лишний символ @.
hwid (email) has invalid local partЧасть до @ недействительна.
hwid (email) has invalid domain partЧасть домена недействительна.
hwid (email) has disposable domainАдрес использует одноразовый/временный домен email (например, 10minutemail).
hwid is not validСам hwid некорректен.
only email platform allowed for Email Only subscriptionАккаунт имеет план “Только Email” и не может регистрировать устройства, не являющиеся email.

deleteEmail

Anchor link to

Удаляет email-адрес из вашей базы пользователей.

POST https://api.pushwoosh.com/json/1.3/deleteEmail

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX на ваш фактический токен устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
applicationstringКод приложения Pushwoosh
emailstringEmail-адрес, использованный в запросе /registerEmail.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // обязательно. Код приложения Pushwoosh
"email": "email@domain.com" // обязательно. Email для удаления из подписчиков приложения.
}
}

setEmailTags

Anchor link to

Устанавливает значения тегов для email-адреса.

POST https://api.pushwoosh.com/json/1.3/setEmailTags

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX на ваш фактический токен устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
applicationstringКод приложения Pushwoosh
emailstringEmail-адрес.
tagsobjectJSON-объект тегов для установки, отправьте ‘null’ для удаления значения.
userIdstringUser ID, связанный с email-адресом.
{
"status_code": 200,
"status_message": "OK",
"response": {
"skipped": []
}
}
Пример
{
"request": {
"email": "email@domain.com", // обязательно. Email-адрес, для которого устанавливаются теги.
"application": "APPLICATION_CODE", // обязательно. Код приложения Pushwoosh.
"tags": {
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"],
"DateTag": "2024-10-02 22:11", // время в UTC
"BooleanTag": true // допустимые значения: true, false
},
"userId": "userId" // опционально. User ID, связанный с email-адресом.
}
}

registerEmailUser

Anchor link to

Связывает внешний User ID с указанным email-адресом.

POST https://api.pushwoosh.com/json/1.3/registerEmailUser

Может использоваться в вызове API /createEmailMessage (параметр ‘users’).

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX на ваш фактический токен устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
email*stringEmail-адрес.
userId*stringUser ID для связи с email-адресом.
tz_offsetintegerСмещение часового пояса в секундах.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // обязательно. Код приложения Pushwoosh.
"email": "email@domain.com", // обязательно. Email-адрес пользователя.
"userId": "userId", // обязательно. User ID для связи с email-адресом.
"tz_offset": 3600 // опционально. Смещение часового пояса в секундах.
}
}