Методы
POSThttps://unisendy.ru/api/v1/smtp/send
Отправка письма
Отправляет письмо с вашего ящика Unisendy. Поле from должно совпадать с существующим ящиком аккаунта.
| Параметр | Обяз. | Описание |
|---|
from | да | Email отправителя (ваш ящик) |
to | да | Email получателя |
subject | да | Тема письма |
html | нет | HTML-версия (нужен html или text) |
text | нет | Текстовая версия |
name | нет | Имя отправителя |
bcc | нет | Скрытая копия |
reply | нет | Адрес для ответа (Reply-To) |
tag | нет | Метка для фильтрации в журнале |
files | нет | Вложения JSON: [{"name":"a.pdf","body":"<base64>"}]. Суммарно до 9 МБ (лимит сервера 10 МБ). |
headers | нет | Доп. заголовки JSON: [{"X-Custom":"value"}] |
Запрос
curl -X POST "https://unisendy.ru/api/v1/smtp/send" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "info@shopeek.ru",
"to": "client@example.com",
"subject": "Unisendy API test",
"html": "<p>Тест API Unisendy</p>",
"text": "Тест API Unisendy",
"name": "Отдел продаж",
"tag": "api-test"
}'Ответ · 200
{
"ok": true,
"id": "cmsadzp3i0001w01s98bdm7ew",
"messageId": "<39b8bb26-5fc2-04ed-be1d-cab584625a3e@shopeek.ru>",
"status": "sent"
}Ошибки
// 400 — нет обязательных полей
{ "error": "Укажите from, to и subject" }
// 400 — from не ваш ящик
{ "error": "Ящик отправителя не найден или недоступен. from должен быть вашим ящиком Unisendy." }
// 500 — ошибка SMTP
{ "error": "…" }GEThttps://unisendy.ru/api/v1/user
Профиль аккаунта
Информация об аккаунте, тарифные лимиты и краткая статистика.
Запрос
curl "https://unisendy.ru/api/v1/user" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"id": "cms95ydu40000w00k4eovcbr3",
"email": "admin@unisendy.ru",
"name": "Unisendy Admin",
"plan": "BUSINESS",
"planExpiresAt": "2027-07-31T16:35:13.419Z",
"limits": {
"domains": 5,
"mailboxes": 50,
"storageGb": 50
},
"stats": {
"domains": 1,
"mailboxes": 2,
"apiSent": 1
}
}GEThttps://unisendy.ru/api/v1/user/domain
Список доменов
Домены аккаунта и статус DNS (MX, SPF, DKIM, DMARC).
Запрос
curl "https://unisendy.ru/api/v1/user/domain" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"domains": [
{
"id": "cms968mvg0001w0qkvjfrpcul",
"name": "shopeek.ru",
"verified": true,
"status": "VERIFIED",
"mxOk": true,
"spfOk": true,
"dkimOk": true,
"dmarcOk": true,
"createdAt": "2026-07-31T16:43:11.692Z"
}
]
}GEThttps://unisendy.ru/api/v1/mailboxes
Список ящиков
Все почтовые ящики аккаунта.
Запрос
curl "https://unisendy.ru/api/v1/mailboxes" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"mailboxes": [
{
"id": "cmsa36k840001w05xqnlci876",
"email": "info@shopeek.ru",
"displayName": "Информационный отдел",
"active": true,
"domain": "shopeek.ru"
}
]
}GEThttps://unisendy.ru/api/v1/mail/messages
Список писем
Письма из указанного ящика (по умолчанию INBOX).
| Параметр | Обяз. | Описание |
|---|
mailbox | да | Email или id ящика |
folder | нет | Папка, по умолчанию INBOX |
limit | нет | Лимит (макс. 100) |
Запрос
curl "https://unisendy.ru/api/v1/mail/messages?mailbox=info@shopeek.ru&limit=3" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"mailbox": "info@shopeek.ru",
"folder": "INBOX",
"messages": [
{
"uid": 6,
"folder": "INBOX",
"subject": "Re: Вопрос",
"from": "Служба заботы <info@shopeek.ru>",
"to": "svamiddr <svamiddr@gmail.com>",
"date": "2026-08-01T11:00:57.000Z",
"seen": true,
"messageId": "<bx.mail.6a6dd1e8.ed15a2@…>",
"snippet": ""
}
]
}Ошибки
// 400 — не указан mailbox
{ "error": "Укажите mailbox (email или id ящика)" }
// 404 — ящик не найден
{ "error": "Ящик не найден или пароль недоступен" }GEThttps://unisendy.ru/api/v1/mail/messages/:uid
Получить письмо
Полное содержимое письма по IMAP UID.
| Параметр | Обяз. | Описание |
|---|
mailbox | да | Email или id ящика (query) |
folder | нет | Папка, по умолчанию INBOX |
Запрос
curl "https://unisendy.ru/api/v1/mail/messages/6?mailbox=info@shopeek.ru" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"mailbox": "info@shopeek.ru",
"message": {
"uid": 6,
"folder": "INBOX",
"messageId": "<bx.mail.6a6dd1e8.ed15a2@…>",
"subject": "Re: Вопрос",
"from": "\"Служба заботы\" <info@shopeek.ru>",
"to": "\"svamiddr\" <svamiddr@gmail.com>",
"date": "2026-08-01T11:00:57.000Z",
"text": "Текст письма…",
"html": "<div>HTML…</div>",
"seen": true
}
}Ошибки
// 404
{ "error": "Письмо не найдено" }GEThttps://unisendy.ru/api/v1/log/message
Журнал отправки
История писем, отправленных через API.
| Параметр | Обяз. | Описание |
|---|
limit | нет | Кол-во записей |
offset | нет | Смещение |
from | нет | Фильтр по отправителю |
to | нет | Фильтр по получателю |
tag | нет | Фильтр по метке |
status | нет | sent | error |
startDate | нет | YYYY-MM-DD |
endDate | нет | YYYY-MM-DD |
Запрос
curl "https://unisendy.ru/api/v1/log/message?limit=3&tag=api-test" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"total": 1,
"limit": 3,
"offset": 0,
"messages": [
{
"id": "cmsadzp3i0001w01s98bdm7ew",
"messageId": "<39b8bb26-5fc2-04ed-be1d-cab584625a3e@shopeek.ru>",
"from": "info@shopeek.ru",
"to": "svamiddr@gmail.com",
"subject": "Unisendy API test",
"tag": "api-test",
"status": "sent",
"error": null,
"createdAt": "2026-08-01T13:07:57.774Z"
}
]
}GEThttps://unisendy.ru/api/v1/log/message/:id
Запись журнала
Одна запись журнала по id (поле id из ответа /smtp/send или /log/message).
Запрос
curl "https://unisendy.ru/api/v1/log/message/cmsadzp3i0001w01s98bdm7ew" \
-H "Authorization: YOUR_API_KEY"
Ответ · 200
{
"id": "cmsadzp3i0001w01s98bdm7ew",
"messageId": "<39b8bb26-5fc2-04ed-be1d-cab584625a3e@shopeek.ru>",
"from": "info@shopeek.ru",
"to": "svamiddr@gmail.com",
"subject": "Unisendy API test",
"tag": "api-test",
"status": "sent",
"error": null,
"createdAt": "2026-08-01T13:07:57.774Z"
}Ошибки
// 404
{ "error": "Письмо не найдено" }