mailking API

Download OpenAPI specification:

V2 / Выпуск API токенов

Генерация нового токена.

Генерирует новую пару токенов:

  • token имеет короткий срок жизни и нужен для авторизации API запросов.
  • refresh_token имеет более длинный срок жизни и нужен для обновления пары.
Request Body schema: application/json
required

Пример запроса для получения пары.

user
required
string (user)

Имя пользователя, которое можно найти в настройках домена в разделе Токены.

token
required
string <uuid> (password)

Токен, который можно найти в настройках домена в разделе Токены.

white_address
required
string (white_address)

Адрес, с которого будет отправляться почта. Его можно найти в настройках домена в разделе Адреса.

Responses

Request samples

Content type
application/json
{
  • "user": "robot",
  • "token": "b8024fdb-2be9-4fc2-8032-6c8f6959ffb9",
  • "white_address": "robot@mail-king.ru"
}

Response samples

Content type
application/json
{
  • "token": "b8024fdb-2be9-4fc2-8032-6c8f6959ffb9",
  • "refresh_token": "27e47104-8bee-456a-b1f2-156985a89bb3",
  • "token_expires_at": "2023-05-25T20:48:13.814+03:00",
  • "refresh_token_expires_at": "2023-05-25T20:48:13.814+03:00"
}

Перевыпуск токена.

Перевыпускает новую пару токенов по рефреш токену из исходной пары.

Request Body schema: application/json
required

Пример запроса для обновления пары.

refresh_token
required
string <uuid> (refresh_token)

Токен, необходимый для обновления пары.

Responses

Request samples

Content type
application/json
{
  • "refresh_token": "b8024fdb-2be9-4fc2-8032-6c8f6959ffb9"
}

Response samples

Content type
application/json
{
  • "token": "b8024fdb-2be9-4fc2-8032-6c8f6959ffb9",
  • "refresh_token": "27e47104-8bee-456a-b1f2-156985a89bb3",
  • "token_expires_at": "2023-05-25T20:48:13.814+03:00",
  • "refresh_token_expires_at": "2023-05-25T20:48:13.814+03:00"
}

V2 / Письма

Получение отчета по письмам.

Позволяет выгрузить отчет по отправленным письмам. Поддерживается два формата отчетов:

  • simple – базовый, содержащий в себе статус письма и дату отправки.
  • full – полный, содержащий в себе базовую информацию, а также расширенные данные об ошибке (если письмо не доставлено) и события (открытия, переходы и отписки).

Ограничения:

  • Максимальное количество передаваемых UUID для базовой версии отчета – 1000.
  • Максимальное количество передаваемых UUID для полной версии отчета – 100.
  • В минуту можно запросить не более 6 отчетов.

По-умолчанию выгружается базовая версия отчета.

Authorizations:
Bearer
Request Body schema: application/json
required

Пример запроса для выгрузки отчета.

uuids
required
Array of strings <uuid> (uuids) [ items <uuid > ]

Список UUID писем.

format
string (format)
Default: "simple"
Enum: "simple" "full"

Формат отчета.

Responses

Request samples

Content type
application/json
Example
{
  • "uuids": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "status": "ok",
  • "data": {
    }
}

V2 / Письма / Отправка транзакционных писем

Отправка единичного письма.

Разбивает исходное письмо на N получателей, указанных в параметрах to, cc и bcc, и отправляет каждому из них письмо.

Ограничения:

  • Максимальное количество получателей (to + cc + bcc) – 50.
  • Максимальный размер письма (контент + вложения) зависит от квоты, указанной в личном кабинете.
    По-умолчанию, не более 10 Мб.
  • Список получателей должен быть уникальным.
Authorizations:
Bearer
header Parameters
Idempotence-Key
string

Ключ идемпотентности, исключающий повторную обработку запроса с такими же параметрами. Исключает повторное выполнение запросов с таким же ключом на протяжении следующих N секунд.

Idempotence-Ttl
integer [ 1000 .. 3600000 ]
Default: 60000

Время жизни ключа идемпотентности (в миллисекундах).

Content-Encoding
string
Value: "gzip"

Позволяет передавать содержимое запроса в сжатом виде.

Важно: работает только в паре с Content-Type: application/json.

Request Body schema:
required

Пример запроса для отправки письма.

subject
string (subject)

Тема письма.

html
required
string <html> (html)

HTML часть письма. Необходимо заполнить либо это поле, либо text, либо оба.

text
required
string (text)

Текстовая часть письма. Необходимо заполнить либо это поле, либо html, либо оба.

reply_to
string (reply_to)

Ответный адрес.

from_name
string (from_name) [ 1 .. 30 ] characters

Имя отправителя, которое пользователь увидит в почтовом клиенте.

Имя, указанное в запросе, имеет больший приоритет над именем, указанным в настройках адреса в личном кабинете.

to[]
required
Array of strings <email> (to) [ items <email > ]

Список почтовых адресов, на которые нужно отправить письмо.

cc[]
string (cc)

Список почтовых адресов, которые нужно добавить в открытую копию.

bcc[]
string (bcc)

Список почтовых адресов, которые нужно добавить в скрытую копию.

attachments[]
Array of file (attachments[])

Список вложений к письму.

Array of objects (headers) <= 25 items

Заголовки письма.

callback_url
string (callback_url)

Ссылка, на которую будет отправлен коллбэк с информацией по письму. Перед использованием необходимо настроить подсистему коллбэков в личном кабинете.

Responses

Request samples

Content type
Example
{
  "subject": "Тема письма.",
  "from_name": "mailking",
  "html": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"><title>title</title><link rel=\"stylesheet\" href=\"style.css\"><script src=\"script.js\"></script></head><body></body></html>",
  "to[]": [
    "Sergey <sergey@mail-king.ru>",
    "mikhail@mail-king.ru",
    "<konstantin@mail-king.ru>"
  ]
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Отправка нескольких писем.

Разбивает каждое письмо из списка на N получателей, указанных в параметрах to, cc и bcc, и отправляет каждому из них письмо.

Ограничения:

  • Максимальное количество писем в списке – 10.
  • ID писем должны быть уникальными.
  • Максимальное количество получателей для одного письма (to + cc + bcc) – 50.
  • Максимальный размер одного письма (контент + вложения) зависит от квоты, указанной в личном кабинете.
    По-умолчанию, не более 10 Мб.
  • Список получателей в рамках письма должен быть уникальным.
Authorizations:
Bearer
header Parameters
Idempotence-Key
string

Ключ идемпотентности, исключающий повторную обработку запроса с такими же параметрами. Исключает повторное выполнение запросов с таким же ключом на протяжении следующих N секунд.

Idempotence-Ttl
integer [ 1000 .. 3600000 ]
Default: 60000

Время жизни ключа идемпотентности (в миллисекундах).

Content-Encoding
string
Value: "gzip"

Позволяет передавать содержимое запроса в сжатом виде.

Важно: работает только в паре с Content-Type: application/json.

Request Body schema: application/json
required

Пример запроса для отправки письма.

required
Array of objects

Список писем.

Responses

Request samples

Content type
application/json
Example
{
  • "emails": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

V2 / Письма / Отправка шаблонных писем

Отправка единичного письма.

Отличается от транзакционных писем тем, что тему и содержимое письма берет из шаблона.
Помимо вложений, содержащихся в шаблоне, в запросе можно указать дополнительные. В случае если название файла в запросе совпадает с названием файла в шаблоне – будет использован файл из запроса.

Разбивает исходное письмо на N получателей, указанных в параметрах to, cc и bcc, и отправляет каждому из них письмо.

Ограничения:

  • Максимальное количество получателей (to + cc + bcc) – 50.
  • Максимальный размер письма (контент + вложения) зависит от квоты, указанной в личном кабинете.
    По-умолчанию, не более 10 Мб.
  • Список получателей должен быть уникальным.
Authorizations:
Bearer
path Parameters
id
required
string

Идентификатор шаблона. Его можно найти в разделе "Шаблоны".

header Parameters
Idempotence-Key
string

Ключ идемпотентности, исключающий повторную обработку запроса с такими же параметрами. Исключает повторное выполнение запросов с таким же ключом на протяжении следующих N секунд.

Idempotence-Ttl
integer [ 1000 .. 3600000 ]
Default: 60000

Время жизни ключа идемпотентности (в миллисекундах).

Content-Encoding
string
Value: "gzip"

Позволяет передавать содержимое запроса в сжатом виде.

Важно: работает только в паре с Content-Type: application/json.

Request Body schema:
required

Пример запроса для отправки письма.

reply_to
string (reply_to)

Ответный адрес.

from_name
string (from_name) [ 1 .. 30 ] characters

Имя отправителя, которое пользователь увидит в почтовом клиенте.

Имя, указанное в запросе, имеет больший приоритет над именем, указанным в настройках адреса в личном кабинете.

to[]
required
Array of strings <email> (to) [ items <email > ]

Список почтовых адресов, на которые нужно отправить письмо.

cc[]
string (cc)

Список почтовых адресов, которые нужно добавить в открытую копию.

bcc[]
string (bcc)

Список почтовых адресов, которые нужно добавить в скрытую копию.

attachments[]
Array of file (attachments[])

Список вложений к письму.

variables
object (variables)

Переменные, которые нужно вставить в шаблон. Не поддерживает вложенные переменные.

Пример корректного объекта:

{ "name": "Сергей" }

Пример некорректного объекта:

{ "user": { "name": "Сергей" } }

Array of objects (headers) <= 25 items

Заголовки письма.

callback_url
string (callback_url)

Ссылка, на которую будет отправлен коллбэк с информацией по письму. Перед использованием необходимо настроить подсистему коллбэков в личном кабинете.

Responses

Request samples

Content type
Example
{
  "to[]": [
    "Sergey <sergey@mail-king.ru>",
    "mikhail@mail-king.ru",
    "<konstantin@mail-king.ru>"
  ]
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Отправка нескольких писем.

Отличается от транзакционных писем тем, что тема и содержимое для писем берется из шаблона.

Разбивает каждое письмо из списка на N получателей, указанных в параметрах to, cc и bcc, и отправляет каждому из них письмо.

Ограничения:

  • Максимальное количество писем в списке – 10.
  • ID писем должны быть уникальными.
  • Максимальное количество получателей для одного письма (to + cc + bcc) – 50.
  • Список получателей в рамках письма должен быть уникальным.
Authorizations:
Bearer
path Parameters
id
required
string

Идентификатор шаблона. Его можно найти в разделе "Шаблоны".

header Parameters
Idempotence-Key
string

Ключ идемпотентности, исключающий повторную обработку запроса с такими же параметрами. Исключает повторное выполнение запросов с таким же ключом на протяжении следующих N секунд.

Idempotence-Ttl
integer [ 1000 .. 3600000 ]
Default: 60000

Время жизни ключа идемпотентности (в миллисекундах).

Content-Encoding
string
Value: "gzip"

Позволяет передавать содержимое запроса в сжатом виде.

Важно: работает только в паре с Content-Type: application/json.

Request Body schema: application/json
required

Пример запроса для отправки письма.

required
Array of objects

Список писем.

Responses

Request samples

Content type
application/json
Example
{
  • "emails": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

V2 / Работа с шаблонами

Создание шаблона.

Создает шаблон для письма. Предоставляет возможность добавить к шаблону вложения и встречу.

Authorizations:
Bearer
Request Body schema: application/json
required

Пример запроса для создания шаблона через API.

name
required
string (name)

Имя шаблона, которое должно быть уникальным в рамках домена.

subject
required
string (subject)

Тема письма.

body
required
string (body)

Тело шаблона.

Array of objects (schemas-attachments)

Список вложений к шаблону.

object (meeting)

Встреча.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "default_template",
  • "subject": "Стандартный шаблон",
  • "body": "<div></div>"
}

Response samples

Content type
application/json
{
  • "status": "ok"
}

Получение списка шаблонов по фильтрам.

Получение списка шаблонов по фильтрам.

Authorizations:
Bearer
query Parameters
name
string

Выводит все шаблоны, в названии которых содержится указанная строка.

subject
string

Выводит все шаблоны, в теме которых содержится указанная строка.

more_attachments_count
numeric

Выводит все шаблоны, в которых количество вложений больше или равно указанному значению.

less_attachments_count
numeric

Выводит все шаблоны, в которых количество вложений меньше указанного значения.

more_size
numeric

Выводит все шаблоны, в которых размер в Мб больше или равен указанному значению.

less_size
numeric

Выводит все шаблоны, в которых размер в Мб меньше указанного значения.

sort
string
Enum: "name" "subject" "attachments_count" "size" "created_at" "updated_at"

Сортирует список по указанному полю.

sort_dir
string
Enum: "asc" "desc"

Сортирует список в указанном направлении.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": [
    ]
}

Обновление шаблона.

Обновляет шаблон для письма. Предоставляет возможность обновить поля шаблона и перезаписать вложения и встречу.

Важно: обновление встречи или списка вложений полностью перезаписывает предыдущие значения.

Authorizations:
Bearer
path Parameters
name
required
string

Идентификатор шаблона, так же его имя. Его можно найти в разделе "Шаблоны".

Request Body schema: application/json
required

Пример запроса для обновления шаблона через API.

name
string (name)

Имя шаблона, которое должно быть уникальным в рамках домена.

subject
string (subject)

Тема письма.

body
string (body)

Тело шаблона.

Array of objects (schemas-attachments)

Список вложений к шаблону.

object (meeting)

Встреча.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "default_template"
}

Response samples

Content type
application/json
{
  • "status": "ok"
}

Получение шаблона по имени.

Получение шаблона по имени.

Authorizations:
Bearer
path Parameters
name
required
string

Идентификатор шаблона, так же его имя. Его можно найти в разделе "Шаблоны".

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "data": {
    }
}

Удаление шаблона.

Удаляет шаблон и все вложения.

Authorizations:
Bearer
path Parameters
name
required
string

Идентификатор шаблона, так же его имя. Его можно найти в разделе "Шаблоны".

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Удаление вложений шаблона.

Удаляет из шаблона все вложения. Не затрагивает встречу.

Authorizations:
Bearer
path Parameters
name
required
string

Идентификатор шаблона, так же его имя. Его можно найти в разделе "Шаблоны".

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Удаление встречи шаблона.

Удаляет из шаблона встречу. Не затрагивает вложения.

Authorizations:
Bearer
path Parameters
name
required
string

Идентификатор шаблона, так же его имя. Его можно найти в разделе "Шаблоны".

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Коллбэки

Получение статусов писем.

Если вы настроили коллбэки на своем домене, то на указанный вами URL будут приходить запросы с информацией о следующих событиях, каждому из которых соответствует определенное значение поля event_kind:

  • Доставка письма – mail.deliver.
  • Открытие письма – mail.open.
  • Переход по ссылке из письма – mail.links.open.
  • Отписка от рассылки – mail.unsubscribe.

События mail.open, mail.links.open и mail.unsubscribe отправляются только один раз. Повторные события будут проигнорированы.

Все запросы подписываются с помощью токена, указанного в настройках коллбэка. Чтобы проверить подпись на вашей стороне нужно:

  • Сконкатенировать токен из настроек домена и таймстемпу из запроса, чтобы получилась строка следующего вида – <token><timestamp>. Пример полученной строки – f8e99e2b-99e4-492d-819b-585af12828af1685028302314.
  • Посчитать SHA1 от полученной строки.
  • Сравнить полученную чек-сумму со значением из заголовка X-Checksum-Sha1.

Список IP адресов, с которых мы отправляем запросы:

  • 89.232.162.17
  • 87.242.125.177
  • 87.242.92.233
  • 45.9.27.84
  • 45.9.24.81
  • 87.242.90.115
  • 87.242.94.213
  • 87.242.122.8
  • 94.139.254.208
  • 87.242.94.236
Request Body schema: application/json
required

Пример отправляемого нами запроса.

timestamp
required
int (timestamp)

Дата и время формирования события (в миллисекундах).

required
Array of delivery (object) or event (object)

Список событий.

Request samples

Content type
application/json
{
  • "timestamp": 1676452827434,
  • "events": [
    ]
}

Входящая почта

Получение входящих писем.

Если вы добавили хотя бы один шаблон адреса на своем домене, то на указанный в этом шаблоне URL будут приходить запросы со всей входящей почтой, адресуемой на этот почтовый ящик.

Все запросы подписываются с помощью токена, указанного в настройках шаблона. Чтобы проверить подпись на вашей стороне нужно:

  • Сконкатенировать токен из шаблона и таймстемпу из запроса, чтобы получилась строка следующего вида – <token><timestamp>. Пример полученной строки – f8e99e2b-99e4-492d-819b-585af12828af1685028302314.
  • Посчитать SHA1 от полученной строки.
  • Сравнить полученную чек-сумму со значением из заголовка X-Checksum-Sha1.

Список IP адресов, с которых мы отправляем запросы:

  • 89.232.162.17
  • 87.242.125.177
  • 87.242.92.233
  • 45.9.27.84
  • 45.9.24.81
  • 87.242.90.115
  • 87.242.94.213
  • 87.242.122.8
  • 94.139.254.208
  • 87.242.94.236
Request Body schema: application/json
required

Пример отправляемого нами запроса.

t
required
int (schemas-timestamp)

Дата и время формирования запроса (в миллисекундах).

required
object (letter)

Письмо.

Request samples

Content type
application/json
{
  • "t": 1676452827434,
  • "letter": {
    }
}