Обзор

Интеграции

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

Справочник API

Вебхуки

Домены

Отправлять письма можно только с подтверждённых доменов. Для подтверждения домену нужны две TXT-записи: SPF с include:_spf.haskisender.ru и DKIM dm._domainkey. Точные значения для вашего домена приходят в ответах методов. Домены принадлежат аккаунту, поэтому методы работают только с ключом аккаунта; серверный ключ получит ответ 401 с кодом 10.

Список доменов #

get

/domains

Возвращает домены аккаунта.

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

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

application/json

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

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

Параметры строки запроса

count

Количество доменов в ответе. По умолчанию 500.

offset

Сколько доменов пропустить. По умолчанию 0.

Ответ

TotalCount integer

Общее количество доменов.

Domains array

Домены.

Domains[].ID integer

ID домена.

Domains[].Name string

Домен.

Domains[].DKIMVerified boolean

Подтверждена ли DKIM-запись.

Domains[].WeakDKIM boolean

Всегда false.

Domains[].SPFVerified boolean

Подтверждена ли SPF-запись.

Domains[].ReturnPathDomainVerified boolean

Совпадает с SPFVerified: отдельного домена Return-Path у Haskimail нет.

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

curl "https://api.haskimail.ru/domains?count=50&offset=0" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Account-Token: account token"

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

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

{
  "TotalCount": 2,
  "Domains": [
    {
      "ID": 3127,
      "Name": "example.com",
      "DKIMVerified": true,
      "WeakDKIM": false,
      "SPFVerified": true,
      "ReturnPathDomainVerified": true
    },
    {
      "ID": 3128,
      "Name": "example.org",
      "DKIMVerified": false,
      "WeakDKIM": false,
      "SPFVerified": false,
      "ReturnPathDomainVerified": false
    }
  ]
}

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

get

/domains/{domainid}

Возвращает домен и DNS-записи, которые нужно добавить для отправки с него. Состояние записей берётся из последней проверки; чтобы проверить DNS заново, вызовите проверку DKIM или SPF.

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

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

application/json

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

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

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

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

ID домена.

Ответ

ID integer

ID домена.

Name string

Домен.

DKIMVerified boolean

Подтверждена ли DKIM-запись.

WeakDKIM boolean

Всегда false.

SPFVerified boolean

Подтверждена ли SPF-запись.

ReturnPathDomainVerified boolean

Совпадает с SPFVerified: отдельного домена Return-Path у Haskimail нет.

SPFTextValue object

Запись SPF, которую нужно добавить в DNS домена.

SPFTextValue.name string

Имя записи.

SPFTextValue.record_type string

Тип записи, всегда TXT.

SPFTextValue.value string

Значение записи. Для SPF это ваша текущая запись с добавленным include:_spf.haskisender.ru.

SPFTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

DKIMTextValue object

Запись DKIM, которую нужно добавить в DNS домена.

DKIMTextValue.name string

Имя записи.

DKIMTextValue.record_type string

Тип записи, всегда TXT.

DKIMTextValue.value string

Значение записи.

DKIMTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

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

curl "https://api.haskimail.ru/domains/{domainid}" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Account-Token: account token"

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

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

{
  "ID": 3127,
  "Name": "example.com",
  "DKIMVerified": true,
  "WeakDKIM": false,
  "SPFVerified": true,
  "ReturnPathDomainVerified": true,
  "SPFTextValue": {
    "valid": 1,
    "name": "example.com.",
    "record_type": "TXT",
    "value": "v=spf1 include:_spf.haskisender.ru ~all"
  },
  "DKIMTextValue": {
    "valid": 1,
    "name": "dm._domainkey.example.com.",
    "record_type": "TXT",
    "value": "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…;t=s"
  }
}

Создание домена #

post

/domains

Добавляет домен в аккаунт и сразу проверяет его DNS. В ответе — записи, которые нужно добавить. Домен, уже добавленный в другой аккаунт, добавить нельзя (код 512).

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

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

application/json

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

application/json

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

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

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

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

Домен, например example.com.

Ответ

ID integer

ID домена.

Name string

Домен.

DKIMVerified boolean

Подтверждена ли DKIM-запись.

WeakDKIM boolean

Всегда false.

SPFVerified boolean

Подтверждена ли SPF-запись.

ReturnPathDomainVerified boolean

Совпадает с SPFVerified: отдельного домена Return-Path у Haskimail нет.

SPFTextValue object

Запись SPF, которую нужно добавить в DNS домена.

SPFTextValue.name string

Имя записи.

SPFTextValue.record_type string

Тип записи, всегда TXT.

SPFTextValue.value string

Значение записи. Для SPF это ваша текущая запись с добавленным include:_spf.haskisender.ru.

SPFTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

DKIMTextValue object

Запись DKIM, которую нужно добавить в DNS домена.

DKIMTextValue.name string

Имя записи.

DKIMTextValue.record_type string

Тип записи, всегда TXT.

DKIMTextValue.value string

Значение записи.

DKIMTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

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

curl "https://api.haskimail.ru/domains" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Account-Token: account token" \
  -d '{
  "Name": "example.com"
}'

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

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

{
  "ID": 3127,
  "Name": "example.com",
  "DKIMVerified": false,
  "WeakDKIM": false,
  "SPFVerified": false,
  "ReturnPathDomainVerified": false,
  "SPFTextValue": {
    "valid": 0,
    "name": "example.com.",
    "record_type": "TXT",
    "value": "v=spf1 include:_spf.haskisender.ru ~all"
  },
  "DKIMTextValue": {
    "valid": 0,
    "name": "dm._domainkey.example.com.",
    "record_type": "TXT",
    "value": "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…;t=s"
  }
}

Удаление домена #

delete

/domains/{domainid}

Удаляет домен из аккаунта. Подтверждённые адреса на этом домене тоже удаляются.

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

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

application/json

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

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

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

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

ID домена.

Ответ

ErrorCode integer

0 — домен удалён.

Message string

Описание результата.

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

curl "https://api.haskimail.ru/domains/{domainid}" \
  -X DELETE \
  -H "Accept: application/json" \
  -H "X-Haskimail-Account-Token: account token"

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

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

{
  "ErrorCode": 0,
  "Message": "Domain example.com removed."
}

Проверка DKIM #

put

/domains/{domainid}/verifyDkim

Заново проверяет DNS домена и возвращает состояние DKIM. Путь чувствителен к регистру: verifyDkim.

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

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

application/json

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

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

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

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

ID домена.

Ответ

ID integer

ID домена.

Name string

Домен.

DKIMVerified boolean

Подтверждена ли DKIM-запись.

WeakDKIM boolean

Всегда false.

ReturnPathDomainVerified boolean

Совпадает с SPFVerified.

DKIMHost string

Имя DKIM-записи.

DKIMTextValue object

Запись DKIM, которую нужно добавить в DNS домена.

DKIMTextValue.name string

Имя записи.

DKIMTextValue.record_type string

Тип записи, всегда TXT.

DKIMTextValue.value string

Значение записи.

DKIMTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

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

curl "https://api.haskimail.ru/domains/{domainid}/verifyDkim" \
  -X PUT \
  -H "Accept: application/json" \
  -H "X-Haskimail-Account-Token: account token"

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

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

{
  "ID": 3127,
  "Name": "example.com",
  "DKIMVerified": true,
  "WeakDKIM": false,
  "ReturnPathDomainVerified": true,
  "DKIMHost": "dm._domainkey.example.com",
  "DKIMTextValue": {
    "valid": 1,
    "name": "dm._domainkey.example.com.",
    "record_type": "TXT",
    "value": "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…;t=s"
  }
}

Проверка SPF #

put

/domains/{domainid}/verifyspf

Заново проверяет DNS домена и возвращает состояние SPF.

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

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

application/json

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

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

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

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

ID домена.

Ответ

ID integer

ID домена.

Name string

Домен.

SPFVerified boolean

Подтверждена ли SPF-запись.

SPFHost string

Имя SPF-записи — сам домен.

SPFTextValue object

Запись SPF, которую нужно добавить в DNS домена.

SPFTextValue.name string

Имя записи.

SPFTextValue.record_type string

Тип записи, всегда TXT.

SPFTextValue.value string

Значение записи. Для SPF это ваша текущая запись с добавленным include:_spf.haskisender.ru.

SPFTextValue.valid integer

1 — запись в DNS найдена и верна, 0 — нет.

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

curl "https://api.haskimail.ru/domains/{domainid}/verifyspf" \
  -X PUT \
  -H "Accept: application/json" \
  -H "X-Haskimail-Account-Token: account token"

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

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

{
  "ID": 3127,
  "Name": "example.com",
  "SPFVerified": true,
  "SPFHost": "example.com",
  "SPFTextValue": {
    "valid": 1,
    "name": "example.com.",
    "record_type": "TXT",
    "value": "v=spf1 include:_spf.haskisender.ru ~all"
  }
}