Обзор

Интеграции

Руководство пользователя

Справочник API

Вебхуки

Каналы

Каналы разделяют письма сервера по назначению: транзакционные (transactional) и массовые (broadcasts). Еще у каждого сервера есть один входящий канал (inbound) — он создается автоматически. ID канала передают в поле MessageStream при отправке и в фильтрах API. Серверный ключ работает только с каналами своего сервера: чужой канал для него не найден (код 1226).

Список каналов #

get

/message-streams

Возвращает каналы сервера ключа, включая архивные; с ключом аккаунта — каналы всех серверов.

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

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

Ответ

TotalCount integer

Количество каналов.

MessageStreams array

Каналы.

MessageStreams[].ID string

ID канала. Его передают в MessageStream при отправке.

MessageStreams[].ServerID integer

ID сервера, к которому относится канал.

MessageStreams[].Name string

Название канала.

MessageStreams[].MessageStreamType string

Тип канала: transactional, broadcasts или inbound.

MessageStreams[].ArchivedAt string|null

Время архивации, YYYY-MM-DD HH:MM:SS, МСК; null — канал не в архиве.

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

curl "https://api.haskimail.ru/message-streams" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "TotalCount": 3,
  "MessageStreams": [
    {
      "ID": "2081",
      "ServerID": 11834,
      "Name": "Заказы",
      "MessageStreamType": "transactional",
      "ArchivedAt": null
    },
    {
      "ID": "2082",
      "ServerID": 11834,
      "Name": "Новости",
      "MessageStreamType": "broadcasts",
      "ArchivedAt": null
    },
    {
      "ID": "2083",
      "ServerID": 11834,
      "Name": "Входящие",
      "MessageStreamType": "inbound",
      "ArchivedAt": null
    }
  ]
}

Получение информации о канале #

get

/message-streams/{streamid}

Возвращает один канал. Если канала нет — ответ 404 с кодом 1226.

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

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

Параметры пути

streamid обязательный

ID канала.

Ответ

ID string

ID канала. Его передают в MessageStream при отправке.

ServerID integer

ID сервера, к которому относится канал.

Name string

Название канала.

MessageStreamType string

Тип канала: transactional, broadcasts или inbound.

ArchivedAt string|null

Время архивации, YYYY-MM-DD HH:MM:SS, МСК; null — канал не в архиве.

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

curl "https://api.haskimail.ru/message-streams/{streamid}" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ID": "2081",
  "ServerID": 11834,
  "Name": "Заказы",
  "MessageStreamType": "transactional",
  "ArchivedAt": null
}

Редактирование канала #

patch

/message-streams/{streamid}

Меняет название канала. Тип канала и сервер не меняются.

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

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

Параметры пути

streamid обязательный

ID канала.

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

Name string обязательный

Новое название канала.

Ответ

ID string

ID канала. Его передают в MessageStream при отправке.

ServerID integer

ID сервера, к которому относится канал.

Name string

Название канала.

MessageStreamType string

Тип канала: transactional, broadcasts или inbound.

ArchivedAt string|null

Время архивации, YYYY-MM-DD HH:MM:SS, МСК; null — канал не в архиве.

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

curl "https://api.haskimail.ru/message-streams/{streamid}" \
  -X PATCH \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
  "Name": "Заказы и оплаты"
}'

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ID": "2081",
  "ServerID": 11834,
  "Name": "Заказы и оплаты",
  "MessageStreamType": "transactional",
  "ArchivedAt": null
}

Создание канала #

post

/message-streams

Создает канал на сервере. ID канала присваивается автоматически и приходит в ответе. Входящий канал создать нельзя: он у сервера один и появляется сам.

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

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

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

ServerID integer

ID сервера, на котором создается канал. С серверным ключом можно не указывать — канал создается на сервере ключа; с ключом аккаунта обязателен.

Name string обязательный

Название канала.

MessageStreamType string обязательный

Тип канала: Transactional или Broadcasts, регистр не важен.

Ответ

ID string

ID канала. Его передают в MessageStream при отправке.

ServerID integer

ID сервера, к которому относится канал.

Name string

Название канала.

MessageStreamType string

Тип канала: transactional, broadcasts или inbound.

ArchivedAt string|null

Время архивации, YYYY-MM-DD HH:MM:SS, МСК; null — канал не в архиве.

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

curl "https://api.haskimail.ru/message-streams" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
  "ServerID": 11834,
  "Name": "Заказы",
  "MessageStreamType": "Transactional"
}'

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ID": "2081",
  "ServerID": 11834,
  "Name": "Заказы",
  "MessageStreamType": "transactional",
  "ArchivedAt": null
}

Архивация канала #

post

/message-streams/{streamid}/archive

Отправляет канал в архив. Через 45 дней архивный канал удаляется; до этого его можно вернуть разархивацией. Входящий канал архивировать нельзя (код 1229).

Через архивный канал письма не отправляются: API отвечает ошибкой 1226, SMTP-реквизиты канала перестают работать.

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

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

Параметры пути

streamid обязательный

ID канала.

Ответ

ID string

ID канала.

ServerID integer

ID сервера.

ArchivedAt string

Время архивации, YYYY-MM-DD HH:MM:SS, МСК.

ExpectedPurgeDate string

Когда канал будет удален — через 45 дней после архивации.

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

curl "https://api.haskimail.ru/message-streams/{streamid}/archive" \
  -X POST \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ID": "2081",
  "ServerID": 11834,
  "ArchivedAt": "2026-10-07 15:00:00",
  "ExpectedPurgeDate": "2026-11-21 15:00:00"
}

Разархивация канала #

post

/message-streams/{streamid}/unarchive

Возвращает канал из архива.

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

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи».

Параметры пути

streamid обязательный

ID канала.

Ответ

ID string

ID канала. Его передают в MessageStream при отправке.

ServerID integer

ID сервера, к которому относится канал.

Name string

Название канала.

MessageStreamType string

Тип канала: transactional, broadcasts или inbound.

ArchivedAt string|null

Время архивации, YYYY-MM-DD HH:MM:SS, МСК; null — канал не в архиве.

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

curl "https://api.haskimail.ru/message-streams/{streamid}/unarchive" \
  -X POST \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

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

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ID": "2081",
  "ServerID": 11834,
  "Name": "Заказы",
  "MessageStreamType": "transactional",
  "ArchivedAt": null
}