Отрасль: Связь и уведомления. Актуально на 2026-10-24.
API сервиса email- и SMS-рассылок Unisender: списки контактов, подписка и импорт контактов, создание email- и SMS-сообщений, запуск и статус рассылок, одиночные письма, шаблоны, дополнительные поля и метки, статистика. Использовать API можно бесплатно на любом аккаунте. Для транзакционных писем без ограничений документация рекомендует отдельный сервис Unisender Go.
Форма подписки на сайте добавляет email в список Unisender.
curl -X POST "https://api.unisender.com/ru/api/subscribe?format=json" \
-d api_key=<ключ> \
-d list_ids=<код списка> \
--data-urlencode 'fields[email]=ivan@example.ru' \
--data-urlencode 'fields[Name]=Иван' \
--data-urlencode 'tags=сайт,подписка' \
-d double_optin=0
Перенести контакты из CRM или старого сервиса пачками.
curl -X POST "https://api.unisender.com/ru/api/importContacts?format=json" \
-d api_key=<ключ> \
--data-urlencode 'field_names[0]=email' \
--data-urlencode 'field_names[1]=Name' \
--data-urlencode 'field_names[2]=email_list_ids' \
--data-urlencode 'data[0][0]=ivan@example.ru' --data-urlencode 'data[0][1]=Иван' -d 'data[0][2]=<код списка>' \
--data-urlencode 'data[1][0]=anna@example.ru' --data-urlencode 'data[1][1]=Анна' -d 'data[1][2]=<код списка>'
Создать письмо, отправить его по списку и узнать результат.
MSG=$(curl -s -X POST "https://api.unisender.com/ru/api/createEmailMessage?format=json" \
-d api_key=<ключ> --data-urlencode 'sender_name=Магазин' -d sender_email=news@example.ru \
--data-urlencode 'subject=Скидки выходного дня' --data-urlencode 'body=<h1>Скидка 20%</h1><p>Только до воскресенья.</p>' \
-d list_id=<код списка> | jq -r .result.message_id)
curl -X POST "https://api.unisender.com/ru/api/createCampaign?format=json" \
-d api_key=<ключ> -d message_id=$MSG -d track_read=1 -d track_links=1
Письмо одному адресату: подтверждение регистрации, уведомление о заказе.
curl -X POST "https://api.unisender.com/ru/api/sendEmail?format=json" \
-d api_key=<ключ> \
--data-urlencode 'email=Иван Петров <ivan@example.ru>' \
--data-urlencode 'sender_name=Магазин' -d sender_email=noreply@example.ru \
--data-urlencode 'subject=Заказ №1042 оформлен' \
--data-urlencode 'body=<p>Спасибо за заказ! Мы сообщим, когда он будет отправлен.</p>' \
-d list_id=<код списка>
https://api.unisender.comhttps://api.unisender.com/LANG/api/METHOD?format=json&api_key=KEY&arg1=ARG_1Тип: API-ключ
API-ключ копируется в личном кабинете и передаётся параметром api_key. Рекомендуется передавать его через POST, чтобы ключ не попадал в логи прокси. Доступ можно дополнительно ограничить списком доверенных IP.
https://api.unisender.com/ru/api/getLists?format=json&api_key=KEY
В ответе result[]: id, title.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
format |
query | string | да | json |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
list_ids |
body | string | да | Коды списков через запятую (из getLists) |
fields[email] |
body | string | да | Email контакта |
fields[phone] |
body | string | нет | Телефон в международном формате, например +79261232323 |
tags |
body | string | нет | Метки через запятую, не больше 10 |
double_optin |
body | integer | нет | 0 — отправить письмо-приглашение, 3 — добавить без письма |
overwrite |
body | integer | нет | Режим перезаписи полей и меток |
Таймаут вызова — 30 секунд; при отсутствии ответа — до двух повторов.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
field_names |
body | array | да | Названия столбцов; обязательно поле email, до 50 пользовательских полей |
data |
body | array | да | Данные контактов, не больше 500 за вызов |
overwrite_tags |
body | boolean | нет | Перезаписывать метки |
overwrite_lists |
body | boolean | нет | Перезаписывать списки |
Возвращает код сообщения для createCampaign. Письмо отправляется только по одному списку.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
sender_name |
body | string | да | Имя отправителя (не email) |
sender_email |
body | string | да | Подтверждённый email отправителя |
subject |
body | string | нет | Тема; обязательна, если нет template_id |
body |
body | string | нет | HTML-текст; обязателен, если нет template_id/system_template_id |
list_id |
body | integer | да | Код списка |
text_body |
body | string | нет | Текстовая версия |
generate_text |
body | integer | нет | 1 — сгенерировать текстовую часть из HTML (по умолчанию 0) |
tag |
body | string | нет | Отправить только контактам с меткой |
attachments |
body | array | нет | Вложения |
lang |
body | string | нет | Язык |
template_id |
body | integer | нет | Шаблон вместо subject и body |
wrap_type |
body | string | нет | Тип обёртки письма |
categories |
body | string | нет | Категории |
Запускает сразу или по расписанию ранее созданное email- или SMS-сообщение; возвращает код рассылки.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
message_id |
body | integer | да | Код сообщения из createEmailMessage/createSmsMessage |
start_time |
body | string | нет | ГГГГ-ММ-ДД чч:мм, не дальше 100 дней; без него — сразу |
timezone |
body | string | нет | Часовой пояс start_time; явно поддерживается UTC |
track_read |
body | integer | нет | 1 — отслеживать прочтения (по умолчанию 0) |
track_links |
body | integer | нет | 1 — отслеживать переходы (по умолчанию 0) |
contacts |
body | string | нет | Email или телефоны через запятую; без него — весь список |
contacts_url |
body | string | нет | URL файла со списком контактов (нельзя вместе с contacts) |
track_ga |
body | integer | нет | Добавлять UTM-метки (ga_medium, ga_source, ga_campaign, ga_content, ga_term) |
Время в ответе — UTC.
Статусы: waits_censor, censor_hold, declined, waits_schedule, scheduled, in_progress, analysed, completed, stopped, canceled.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
campaign_id |
body | integer | да | Код рассылки из createCampaign |
Пример ответа:
{ "result":{ "status":"completed", "creation_time":"2011-09-21 19:47:31", "start_time":"2011-09-21 20:00:00" } }
По умолчанию новым пользователям — до 1000 писем в сутки; письмо до 1 МБ; одному адресату — не чаще раза в 60 секунд. Статус доставки — методом checkEmail (хранится месяц).
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
api_key |
body | string | да | Ключ доступа |
email |
body | string | да | Получатель (можно с именем перед адресом) |
sender_name |
body | string | да | Имя отправителя |
sender_email |
body | string | да | Подтверждённый email отправителя |
subject |
body | string | да | Тема |
body |
body | string | да | HTML-текст |
list_id |
body | integer | да | Список, от которого адресат сможет отписаться |
attachments |
body | array | нет | Вложения attachments[filename] |
lang |
body | string | нет | Язык |
track_read |
body | integer | нет | Отслеживать прочтения |
track_links |
body | integer | нет | Отслеживать переходы |
cc |
body | string | нет | Копия |
headers |
body | string | нет | Дополнительные заголовки |
error_checking |
body | integer | нет | Режим проверки ошибок |
metadata |
body | object | нет | Метаданные metadata[key]=value |
result без error; могут быть warnings[] с полем warning.getLists → createEmailMessage → createCampaign → getCampaignStatus.createSmsMessage, sendSms, checkSms), шаблонов, полей и меток, заметок, статистики (getCampaignCommonStats, getVisitedLinks) и Event tracking API.Счётчик ведётся отдельно для каждого API-ключа или IP.
Если этого недостаточно — официальная документация: https://www.unisender.com/ru/support/api/common/bulk-email/ JSON: https://mcp-everything.ru/api/integrations/unisender. MCP: https://mcp-everything.ru/mcp