Создание / обновление профиля пользователя
Получение профиля пользователя
Получение всех профилей по email
Верификация профиля пользователя
Подтверждение получения маркетинговых материалов профилем пользователя
Подписка профиля пользователя на одну категорю
Отписка профиля пользователя от одной категории
Отписка профиля пользователя по безопасной ссылке
Смена категорий профиля пользователя
Смена категорий профиля пользователя по безопасной ссылке
Получение категорий профиля пользователя
Получение категорий профиля пользователя по безопасной ссылке
Удаление профиля пользователя и добавление в GDPR карантин
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
API работает по протоколу HTTP.
Формат запросов: обычные HTTP GET or POST, application/x-www-form-urlencoded
Формат ответа: JSON.
Сервер-сервер запросы
Сервер-сервер API проверяет авторизацию и IP адрес клиента.
Логин и секрет передаются с помощью Basic HTTP Authorization, в заголовке Authorization
Authorization: Basic base64('login:secret')
Логин и секрет и список разрешенных IP адресов могут быть изменены в настройках проекта.
Endpoint - https://api.mailer.mail.ru/
Endpoint на сером ip - https://int.mailer.mail.ru/ (pl-i-SG_VKPLAY_STORELB)
ping https://api.mailer.mail.ru/api/watchman/ping/
Для api/v2 есть swagger. смотреть от пользователя
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/mailer/send/
Отправляет Email на указанный адрес. Нельзя использовать для массовых рассылок!
Параметр | Тип | Описание |
---|---|---|
email |
Email адрес пользователя | |
uid |
str | Uid пользователя. Обязателен для MY.GAMES проектов |
letter |
int | ID шаблона письма |
retry |
int | Повторять отправку в случае недоступности SMTP серверов. По умолчанию 1 |
send_id |
string | Любое уникальное значение в рамках проекта. Письма с одинаковым send_id не будет отправлено повторно. Send_id храниться в мейлере не меньше суток. Опционально. |
language |
string | Язык шаблона письма. Опционально. |
resolve.xxx |
string | Дополнительные параметры для фильтрации профилей. См. ниже доступные параметры |
pin.xxx |
string | Дополнительные параметры для шаблона. pin.xxx будет доступно в шаблоне как {{ xxx }} . ЗАПРЕЩЕНО пинить индексные поля pin.uid, pin.email, pin.phone, pin.wp_token, вместо них используйте любые другие, например pin.promo_email |
header.xxx |
string | Дополнительные параметры заголовка письма. На данный момент разрешены только заголовки "Reply-To", "Cc" и "Bcc", для добавления других, обращаться к Андрею Моисееву. |
attach.xxx |
url | Файл вложения который может быть использован в шаблоне. Например <img src="cid:xxx" . Файл будет скачан c указанного url и иметь content id - xxx. Content-type берется из заголовка ответа сервера. Если вложение текстовое и содержит русские буквы - надо передавать кодировку utf-8, например content_type='message/rfc822; charset=utf-8'. Таймаут на один запрос - 1 секунда. Файл будет запрошен в момент вызова api. Пока, суммарное ограничение на attach/attachment - 4 штуки. |
attachment.xxx |
url | Файл вложения. Файл будет скачан c указанного url и иметь имя - xxx. Content-type берется из заголовка ответа сервера. Если вложение текстовое и содержит русские буквы - надо передавать кодировку utf-8, например content_type='message/rfc822; charset=utf-8'. Таймаут на один запрос - 1 секунда. Файл будет запрошен в момент вызова api. Пока, суммарное ограничение на attach/attachment - 4 штуки. |
{
"sent": 1,
"retry": 0,
"status": "ok"
}
{
"sent": 0,
"retry": 1,
"status": "ok"
}
{
"args_errors": {
"language": [
"Bad language. Received: 'en'. Available: ['ru']"
]
},
"status": "fail",
"code": 3000,
"msg": "incorrect arguments"
}
{
"status": "fail",
"msg": "send in progress",
"code": 3017,
"current_status": "W"
}
{
"status": "fail",
"msg": "already sent",
"code": 3016,
"sent_at": "1548920365"
}
curl --request POST 'https://api.mailer.mail.ru/api/mailer/send/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ***' \
--data-urlencode 'email=user@mail.ru' \
--data-urlencode 'letter=1234' \
--data-urlencode 'pin.xxx=value'
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/sms/send/
Параметр | Тип | Описание |
---|---|---|
phone |
phone | Номер телефона |
message |
int | ID СМС сообщения для отправки |
pin.xxx |
string | Дополнительные параметры для шаблона. pin.xxx будет доступно в шаблоне как {{ xxx }} |
{
"sent": 1,
"status": "ok",
}
{
"sent": 0,
"status": "fail",
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
Пользователи могут быть идентифицированы с помощью одного из трех полей * uid - ID пользователя в проекте * email - его Email адрес * phone - его телефон, если есть
Как минимум один из этих параметров должен быть передан в вызовы связанные с профилями.
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/update/
Создает нового или обновляет существующего пользователя на основании переданных полей.
Все не-индексные поля должны быть переданы через параметры, начинающиеся с pin.
Все поля должны быть предварительно объявлены через Web интерфейс в настройках проекта. Все необъявленные поля будут проигнорированы.
Обновление полей профиля может привести к запуску тригерных рассылок.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
pin.xxx |
Произвольные поля профиля специфичные для проекта | |
unpin.xxx |
Очищает указанные поля профиля. Переданное значение с этим полем будет проигнорированно |
{
"status": "ok"
}
Внутреннее название | Название | Тип данных | Возможность обновления через API |
---|---|---|---|
subscribed_at |
Дата подписки (single opt-in) | Дата и время | Нет |
confirmed_at |
Дата подтверждения Email (double opt-in) | Дата и время | Нет |
unsubscribed_at |
Дата отписки | Дата и время | Нет |
subscribed_categories |
Категории подписки | JSON | Нет |
spam_reported_at |
Дата добавления в спам-карантин | Дата и время | Нет |
bounce_error |
Последняя bounce ошибка | Строка | Нет |
bounce_at |
Дата последней bounce ошибки | Дата и время | Нет |
blacklisted_at |
Дата добавления в блэклист | Дата и время | Нет |
lang |
Язык пользователя | Строка | Да |
gender |
Пол | Строка | Да |
birthday |
День рождения | Дата и время | Да |
email_verified |
Email подтвержден | Флаг | Да |
gcnotif_unsubscribe_at |
Дата отписки от нотификаций | Дата и время | Нет |
uid |
ID пользователя | Строка | Да |
email |
Строка | Да | |
phone |
Номер телефона | Строка | Да |
wp_token |
WebPush token | Строка | Да |
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
GET /api/profiles/get/
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально |
{
"status": "ok",
"profile": {
"uid": 24234,
"email": "user@mail.ru",
"level": 33,
"something_else": "data"
}
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
GET /api/profiles/get_all/
Параметр | Тип | Описание |
---|---|---|
email |
Email пользователя. |
{
"status": "ok",
"profiles": [{
"uid": 24234,
"email": "user@mail.ru",
"level": 33,
"something_else": "data"
},
{
"uid": 264563,
"email": "user@mail.ru",
"level": 3,
"something_else": "other_data"
}]
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/verify/
Отмечает пользователя как верифицированного.
Лучше использовать микроформат см (https://admin.mailer.mail.ru/docs/view/templates/)
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально |
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/confirm/
Отмечает пользователя как согласного для получения маркетинговых рассылок. Лучше использовать микроформат см (https://admin.mailer.mail.ru/docs/view/templates/)
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
not_subscribe |
bool | Не подписывать, в случае отсутствия подписки |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/subscribe/
POST /api/profiles/subscribe/{{token}}/
- по безопасной ссылке
Отмечает пользователя как подписанного на все категории проекта. Список категорий может быть изменен в настройuках проекта в Web интерфейсе mailer. Проект НЕ должен подписывать пользователя на рассылки без явного согласия пользователя. EULA и прочие юридические документы таковым согласием не считаются. Проект НЕ должен подписывать пользователя на все категории, если он подписался только на некоторые. Ответственность за такие рассылки несет проект.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
lang |
string | Язык который проставится в профиль. Формат: ru,en,fr или en_US,ru_RU,fr_FR. Опционально |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
{
"status": "ok",
"profile_categories": [1, 2, 3, 4, 5],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/subscribe_category/
Добавляет только указанную категорию в подписки
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
category |
int | Номер категории на которую подписывают |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
{
"status": "ok"
"profile_categories": [1, 2, 5],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/unsubscribe/
Помечает пользователя как отписанного от всех категорий проекта. Отписанные пользователи не будут получать Email от проекта (если обход этого правила не задан явно).
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
{
"status": "ok"
"profile_categories": [],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/unsubscribe_category/
Удаляет только указанную категорию из подпискок
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
category |
int | Номер категории от которой отписывают |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
{
"status": "ok"
"profile_categories": [1, 2],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/unsubscribe/{{token}}/
Помечает пользователя как отписанного от всех категорий проекта. Отписанные пользователи не будут получать Email от проекта (если обход этого правила не задан явно).
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
{
"status": "ok"
"profile_categories": [],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/set_subscriptions/
Устанавливает новый список категорий, на которые подписан пользователь. Если список категорий пуст, это работает так же как отписка пользователя.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
categories |
[]int | Список ID категорий на который пользователь подписан |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
Пример: categories=1&categories=4&categories=6
{
"status": "ok",
"profile_categories": [1, 4, 6],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/set_link_subscriptions/{{token}}/
Устанавливает новый список категорий, на которые подписан пользователь. Если список категорий пуст, это работает так же как отписка пользователя.
Параметр | Тип | Описание |
---|---|---|
profile_categories |
[]int | Список ID категорий на который пользователь подписан |
ip |
ip | Ip пользователя для gdpr лога при сервер-сервер запросах. Опционально |
agent |
string | User-agent пользователя для gdpr лога при сервер-сервер запросах. Опционально |
Пример: profile_categories=1&profile_categories=4&profile_categories=6
{
"status": "ok",
"profile_categories": [1, 4, 6],
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
GET /api/profiles/get_subscriptions/
Возвращает категории на которые подписан пользователь. Так же возвращает информацию о всех возможных категориях проекта.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально | |
lang |
string | Желаемая локализация названий категорий. Опционально. Например: de_DE |
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
GET /api/profiles/get_link_subscriptions/{{token}}/
Возвращает категории на которые подписан пользователь. Так же возвращает информацию о всех возможных категориях проекта.
{
"status": "ok",
"profile_categories": [1, 3],
"project": {
"name": "The Project",
"logo": "https://mailer.mail.ru/path/to/logo.png",
"categories": [
{
"id": 1,
"title": "Security Notifications",
"description": "Important messages about your account",
},
{
"id": 2,
"title": "News and promos",
"description": "Information about new products",
},
{
"id": 3,
"title": "Messages from other users",
"description": "Notifications about personal messages from other users",
},
]
},
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/void/
Удаляет пользователя из рассыльщика и добавляет в GDPR карантин. Пользователя больше нельзя добавить в рассыльщик.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально |
Если у проекта выставлен флаг is_internal
, допускается передача дополнительного параметра ext_ids
,
чтобы удалить пользвателя из нескольких проектов сразу.
Параметр | Тип | Описание |
---|---|---|
ext_ids |
[]str | External id проекта. Опционально |
Пример: email=test@mail.ru&ext_ids=project1.my.com&ext_ids=project2.my.com
{
"status": "ok"
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
POST /api/profiles/delete/
Не удаляйте пользователей без КРАЙНЕЙ необходимости!
Удаляет пользователя из рассыльщика. Удаляет всю историю и карантины.
Параметр | Тип | Описание |
---|---|---|
uid |
string | ID пользователя в проекте. Опционально |
phone |
phone | Телефон пользователя. Опционально |
email |
Email пользователя. Опционально |
Пример: email=test@mail.ru
{
"status": "ok"
}
{
"status": "fail",
"code": 3008,
"msg": "no such profile"
}
GET /api/mailer/send_verify/
Параметр | Тип | Описание |
---|---|---|
email |
Email пользователя | |
ext_id |
int/str | Идентификатор проекта |
{
"status": "ok",
"letter_id": 1234
}
..............................................................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................................................
Код ошибки | Описание |
---|---|
3000 | Некорректные параметры |
3001 | Доступ запрещен, нет заголовка Authorization |
3001 | Доступ запрещен, неверный логин или секрет |
3001 | Доступ запрещен, IP нет в списке разрешенных |
3002 | Письмо, СМС или ИЦ уведомление не найдено |
3003 | Слишком много адресов |
3004 | Проект не найден |
3005 | Нет доступа к данному объекту |
3006 | Не удалось отправить сообщение |
3007 | Некорректные поля профиля, например неправильная дата для полей-дат |
3008 | Профиль не найден |
3013 | Метод API не поддерживается |
3014 | Превышена частота вызовов для данной операции |
3015 | Сообщение не было отправлено - пользователь не прошел фильтры |
3016 | Сообщение не было отправлено - сообщение с переданным send_id уже отправлялось |
3017 | Сообщение не было отправлено - сообщение с переданным send_id в процессе отравки |
3018 | Некорректный JWT токен |
3019 | Шаблон письма/нотифа/смс/пуша находится в архиве |
3020 | Политика отправки проекта не поддерживает данный метод |