1. Описание API
API предназначен для обеспечения взаимодействия партнеров с HB.BY. Аутентификация осуществляется по уникальному API-ключу (токену).
Взаимодействие осуществляется на клиент-серверной технологии RESTful. Партнер выступает в роли клиента, отправляет HTTP-запросы на сервер API. Данные передаются в кодировке UTF-8. В ответ на HTTP-запрос сервер отправляет HTTP-ответ клиенту в JSON-формате.
1.1 Формат запроса
Во всех запросах передаются обязательные параметры:
version
– версия API;
token
– API-ключ (токен) доступа к серверу.
Параметр version
должен передаваться в строке запроса.
Параметр token
должен передаваться в JSON запроса.
1.2 Формат ответа
Любой ответ от сервера представлен в JSON-формате. В случае успешного выполнения запроса возвращается необходимый набор ключей и значений, предназначенный для конкретного ответа на запрос.
Пример ответа при успешном выполнении операции получения списка доменных зон:
{
"currency": "BYN",
"zones": [
{
"name": "by",
"archived": false,
"min_period": 1,
"max_period": 2,
"reg_tariff_id": 2000,
"renew_tariff_id": 2001,
"reg_price": 33.00,
"renew_price": 33.00,
"personal_reg_price": 30.00,
"personal_renew_price": 30.00
},
{
"name": "com",
"archived": false,
"min_period": 1,
"max_period": 10,
"reg_tariff_id": 2002,
"renew_tariff_id": 2003,
"reg_price": 39.50,
"renew_price": 47.50,
"personal_reg_price": 39.50,
"personal_renew_price": 47.50
},
{
"name": "ru",
"archived": false,
"min_period": 1,
"max_period": 10,
"reg_tariff_id": 2004,
"renew_tariff_id": 2005,
"reg_price": 5.50,
"renew_price": 17.50,
"personal_reg_price": 5.50,
"personal_renew_price": 17.50
}
]
}
В случае выполнения операции с ошибкой возвращается JSON, содержащий:
{
"code": 500,
"message": "При выполнении заказа произошла непредвиденная ошибка.
В случае повторения ошибки, пожалуйста, свяжитесь со службой техподдержки
по адресу: support@hb.by."
}
Возможные коды ошибок о выполнении операций:
400
– некорректный запрос;
401
– отказано в доступе;
404
– метод или данные не найдены;
500
– внутренняя ошибка сервера.
2. Общие методы
2.1 Получение списка прейскурантов
Метод запроса: POST
Адрес: https://api.hb.by/v1/get-pricelists
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
as_of_date (Опционально) |
body |
string |
Дата, на которую нужно получить актуальные цены |
Пример:
{
"token": "{API-ключ (токен)}",
"as_of_date": "01.01.2024"
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
pricelists |
body |
array |
Список прейскурантов |
number |
pricelists item |
string |
Номер прейскуранта |
description |
pricelists item |
string |
Описание прейскуранта |
as_of_date |
pricelists item |
string |
Дата, начиная с которой действует прейскурант |
Прейскуранты имеют следующую нумерацию:
Хостинг:
1 - Тарифы на услуги хостинга
10 - Тарифы в российских рублях на услуги хостинга
11 - Тарифы в евро на услуги хостинга
12 - Тарифы в долларах США на услуги хостинга
Домены:
2 - Тарифы на услуги по регистрации (продлению регистрации) доменных имен
9 - Тарифы на услуги по регистрации (продлению регистрации) премиальных доменных имен
13 - Тарифы в российских рублях на услуги по регистрации (продлению регистрации) доменных имен
14 - Тарифы в долларах США на услуги по регистрации (продлению регистрации) доменных имен
15 - Тарифы в евро на услуги по регистрации (продлению регистрации) доменных имен
Дополнительные услуги:
3 - Тарифы на дополнительные услуги
22 - Тарифы в российских рублях на дополнительные услуги
23 - Тарифы в долларах США на дополнительные услуги
24 - Тарифы в евро на дополнительные услуги
SSL-сертификаты:
4 - Тарифы на услуги по выпуску SSL-сертификатов
16 - Тарифы в российских рублях на услуги по выпуску SSL-сертификатов
17 - Тарифы в долларах США на услуги по выпуску SSL-сертификатов
18 - Тарифы в евро на услуги по выпуску SSL-сертификатов
Электронная почта:
8 - Тарифы на услуги электронной почты
19 - Тарифы в российских рублях на услуги электронной почты
20 - Тарифы в долларах США на услуги электронной почты
21 - Тарифы в евро на услуги электронной почты
Пример прейскуранта хостинга:
{
"pricelists": [
...
{
"number": "1",
"description": "Тарифы на услуги хостинга",
"as_of_date": "01.01.2024"
},
...
]
}
2.2 Получение тарифов и цен прейскуранта
Метод запроса: POST
Адрес: https://api.hb.by/v1/get-pricelist-tariffs
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
number |
body |
string |
Номер необходимого прейскуранта |
as_of_date (Опционально) |
body |
string |
Дата, на которую нужно получить актуальные цены |
Пример:
{
"token": "{API-ключ (токен)}",
"number": "1",
"as_of_date": "01.01.2024"
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
number |
body |
string |
Номер прейскуранта |
description |
body |
string |
Описание прейскуранта |
as_of_date |
body |
string |
Дата, начиная с которой действует прейскурант |
tariffs |
body |
array |
Список тарифов прейскуранта |
tariff_id |
tariffs item |
int |
ID тарифа |
tariff_name |
tariffs item |
string |
Название тарифа |
archived |
tariffs item |
boolean |
Активный или не активный (архивный) тариф |
service_common_name |
tariffs item |
string |
Каноническое имя услуги |
period_type |
tariffs item |
string |
Тип периода оплаты:
unmeasurable (единоразовый платеж)
month (оплата по месяцам)
year (оплата по годам)
|
currency |
tariffs item |
string |
Валюта:
BYN (белорусский рубль)
RUB (российский рубль)
USD (доллар США)
EUR (евро)
|
prices |
tariffs item |
array |
Цены на тариф с учетом периода оплаты |
period |
prices item |
int |
Количество единиц периода оплаты (напр. 3 месяца, 2 года или 0, если платеж единоразовый) |
price |
prices item |
decimal |
Стандартная стоимость тарифа с учетом периода оплаты |
personal_price |
prices item |
decimal |
Стоимость тарифа с учетом периода оплаты и партнерской скидки |
Пример прейскуранта хостинга:
{
"number": "1",
"description": "Тарифы на услуги хостинга",
"as_of_date": "01.01.2024",
"tariffs": [
{
"tariff_id": 566,
"tariff_name": "Unix Старт",
"archived": false,
"service_common_name": "VirtualHosting",
"period_type": "month",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 5.90,
"personal_price": 4.90
},
...
{
"period": 6,
"price": 33.63,
"personal_price": 27.93
},
...
]
},
{
"tariff_id": 1900,
"tariff_name": "Nextcloud-150",
"archived": false,
"service_common_name": "NextCloudHosting",
"period_type": "month",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 39.00,
"personal_price": 39.00
},
...
{
"period": 6,
"price": 222.30,
"personal_price": 222.30
},
...
]
}
]
}
Пример прейскуранта SSL-сертификатов:
{
"number": 4,
"description": "Тарифы на услуги по выпуску SSL-сертификатов",
"as_of_date": "01.01.2024",
"tariffs": [
{
"tariff_id": 7027,
"tariff_name": "GlobalSign AlphaSSL Domain",
"archived": false,
"service_common_name": "SSLCertificateIssue",
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 49.00,
"personal_price": 49.00
}
]
},
{
"tariff_id": 7028,
"tariff_name": "GlobalSign AlphaSSL Wildcard",
"archived": false,
"service_common_name": "SSLCertificateIssue",
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 169.00,
"personal_price": 169.00
}
]
}
]
}
Пример прейскуранта регистрации доменов (стандартная стоимость):
{
"number": 2,
"description": "Тарифы на услуги по регистрации (продлению регистрации) доменных имен",
"as_of_date": "01.01.2024",
"tariffs": [
{
"tariff_id": 3002,
"tariff_name": "Регистрация доменного имени в зоне .APP (Поставщик 1)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": false,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 69.00,
"personal_price": 69.00
},
{
"period": 2,
"price": 138.00,
"personal_price": 138.00
},
{
"period": 3,
"price": 207.00,
"personal_price": 207.00
},
...
]
},
{
"tariff_id": 3003,
"tariff_name": "Продление доменного имени в зоне .APP (Поставщик 1)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": false,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 69.00,
"personal_price": 69.00
},
{
"period": 2,
"price": 138.00,
"personal_price": 138.00
},
{
"period": 3,
"price": 207.00,
"personal_price": 207.00
},
...
]
},
{
"tariff_id": 3004,
"tariff_name": "Регистрация доменного имени в зоне .APP (Поставщик 2)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": true,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 91.00,
"personal_price": 91.00
},
{
"period": 2,
"price": 182.00,
"personal_price": 182.00
},
{
"period": 3,
"price": 273.00,
"personal_price": 273.00
},
...
]
},
{
"tariff_id": 3005,
"tariff_name": "Продление доменного имени в зоне .APP (Поставщик 2)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": true,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 91.00,
"personal_price": 91.00
},
{
"period": 2,
"price": 182.00,
"personal_price": 182.00
},
{
"period": 3,
"price": 273.00,
"personal_price": 273.00
},
...
]
}
]
}
Пример прейскуранта регистрации доменов (акционная стоимость):
{
"number": 2,
"description": "Тарифы на услуги по регистрации (продлению регистрации) доменных имен",
"as_of_date": "01.01.2024",
"tariffs": [
{
"tariff_id": 4002,
"tariff_name": "Регистрация доменного имени в зоне .SITE (Поставщик 1)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": false,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 3.50,
"personal_price": 3.50
},
{
"period": 2,
"price": 130.50,
"personal_price": 130.50
},
{
"period": 3,
"price": 257.50,
"personal_price": 257.50
},
]
},
{
"tariff_id": 4003,
"tariff_name": "Продление доменного имени в зоне .SITE (Поставщик 1)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": false,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 127.00,
"personal_price": 127.00
},
{
"period": 2,
"price": 254.00,
"personal_price": 254.00
},
{
"period": 3,
"price": 381.00,
"personal_price": 381.00
},
...
]
},
{
"tariff_id": 4004,
"tariff_name": "Регистрация доменного имени в зоне .SITE (Поставщик 2)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": true,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 9.50,
"personal_price": 9.50
},
{
"period": 2,
"price": 148.50,
"personal_price": 148.50
},
{
"period": 3,
"price": 287.50,
"personal_price": 287.50
},
]
},
{
"tariff_id": 4005,
"tariff_name": "Продление доменного имени в зоне .SITE (Поставщик 2)",
"service_common_name": "DomainRegistrationInInternationalDomainZone",
"archived": true,
"period_type": "year",
"currency": "BYN",
"prices": [
{
"period": 1,
"price": 139.00,
"personal_price": 139.00
},
{
"period": 2,
"price": 278.00,
"personal_price": 278.00
},
{
"period": 3,
"price": 417.00,
"personal_price": 417.00
},
...
]
}
]
}
2.3 Получение информации о хосте
Метод запроса: POST
Адрес: https://api.hb.by/v1/get-hostname-info
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
hostname |
body |
string |
IP-адрес или домен |
Пример:
{
"token": "{API-ключ (токен)}",
"hostname": "8.8.8.8"
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
ip |
body |
string |
IP-адрес хоста |
network |
body |
string |
Диапазон сети |
hostname |
body |
string |
Привязанный к IP-адресу хост |
asn |
body |
string |
Autonomous System Number - уникальный идентификатор для автономной системы в сети Интернет |
aso |
body |
string |
Autonomous System Organization, которая управляет данным ASN |
country |
body |
string |
Страна, в которой, вероятно, зарегистрирован данный IP-адрес |
city |
body |
string |
Город, в котором, вероятно, зарегистрирован данный IP-адрес (может отсутствовать) |
is-anonymous |
body |
string |
Является ли IP-адрес анонимным |
is-anonymous-vpn |
body |
string |
Используется ли этот IP-адрес для анонимности через VPN (Virtual Private Network) |
is-public-proxy |
body |
string |
Является ли данный IP-адрес публичным прокси-сервером |
is-residential-proxy |
body |
string |
Используется ли данный IP-адрес как резидентский прокси (например, IP-адрес, принадлежащий частному пользователю) |
is-hosting-provider |
body |
string |
Используется ли IP-адрес для хостинга |
is-tor-exit-node |
body |
string |
Является ли IP-адрес выходным узлом сети Tor |
Пример:
{
"ip": "8.8.8.8",
"network": "8.8.8.0/24",
"hostname": "dns.google",
"asn": "15169",
"aso": "GOOGLE",
"country": "United States",
"city": "",
"is-anonymous": false,
"is-anonymous-vpn": false,
"is-public-proxy": false,
"is-residential-proxy": false,
"is-hosting-provider": false,
"is-tor-exit-node": false
}
3. Домены
3.1 Получение актуальных цен на доменные зоны
Метод запроса: POST
Адрес: https://api.hb.by/v1/get-domain-zones-prices
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
currency (Опционально) |
body |
string |
Валюта, в которой отображать стоимость:
BYN (белорусский рубль)
RUB (российский рубль)
USD (доллар США)
EUR (евро)
|
zones (Опционально) |
body |
string |
Список доменных зон через запятую (",") |
Пример:
{
"token": "{API-ключ (токен)}",
"currency": "BYN",
"zones": "by,com,ru"
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
currency |
body |
string |
Валюта, в которой отображается стоимость (в зависимости от запроса):
BYN (белорусский рубль)
RUB (российский рубль)
USD (доллар США)
EUR (евро)
|
zones |
body |
array |
Массив доменных зон |
name |
zones item |
string |
Имя доменной зоны |
archived |
zones item |
boolean |
Доступна ли доменная зона для регистрации |
min_period |
zones item |
int |
Минимальный период регистрации (лет) |
max_period |
zones item |
int |
Максимальный период регистрации (лет) |
reg_tariff_id |
zones item |
int |
Актуальный tariff_id для регистрации домена |
renew_tariff_id |
zones item |
int |
Актуальный tariff_id для продления домена |
reg_price |
zones item |
decimal |
Стандартная стоимость регистрации |
renew_price |
zones item |
decimal |
Стандартная стоимость продления |
personal_reg_price |
zones item |
decimal |
Стоимость регистрации с учетом персональной скидки |
personal_renew_price |
zones item |
decimal |
Стоимость продления с учетом персональной скидки |
Пример:
{
"currency": "BYN",
"zones": [
{
"name": "by",
"archived": false,
"min_period": 1,
"max_period": 2,
"reg_tariff_id": 2000,
"renew_tariff_id": 2001,
"reg_price": 33.00,
"renew_price": 33.00,
"personal_reg_price": 30.00,
"personal_renew_price": 30.00
},
{
"name": "com",
"archived": false,
"min_period": 1,
"max_period": 10,
"reg_tariff_id": 2002,
"renew_tariff_id": 2003,
"reg_price": 39.50,
"renew_price": 47.50,
"personal_reg_price": 39.50,
"personal_renew_price": 47.50
},
{
"name": "ru",
"archived": false,
"min_period": 1,
"max_period": 10,
"reg_tariff_id": 2004,
"renew_tariff_id": 2005,
"reg_price": 5.50,
"renew_price": 17.50,
"personal_reg_price": 5.50,
"personal_renew_price": 17.50
}
]
}
3.2 Получение статуса доступности одного или нескольких доменов для регистрации
Метод запроса: POST
Адрес: https://api.hb.by/v1/check-domains-availability
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
domains |
body |
array |
Массив доменов (содержит строки со значениями доменов, не более 50) |
Обязательный формат домена:
- домены могут быть представлены в Unicode или Punycode-формате;
- если домен находится в Punycode-формате, то он должен корректно переводится в Unicode;
- значение не должно содержать каталогов (разделителей "/" или протоколов, напр. "http://" или "https://");
- общая длина строки не должна превышать 253 символа;
- домен может содержать символы "0-9", "a-z", "а-я", "ё", белорусские буквы "ў"и "і" и дефис "-" (составная часть домена не должна начинаться или заканчиваться дефисом "-").
Пример:
{
"token": "{API-ключ (токен)}",
"domains": [
"mydomain.by",
"мойдомен.бел",
"xn--h1aagidhjp.xn--90ais",
"example-1.by"
]
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
domains |
body |
array |
Массив доменов |
domain |
domain |
string |
Имя домена в формате Unicode |
is_registered |
domain |
boolean |
Статус регистрации домена (true - зарегистрирован,false - свободен) |
Пример:
{
"domains": [
{
"domain": "mydomain.by",
"is_registered": true
},
{
"domain": "мойдомен.бел",
"is_registered": true
},
{
"domain": "триинком.бел",
"is_registered": true
},
{
"domain": "example-1.by",
"is_registered": false
}
]
}
3.3 Получение информации о домене из БелГИЭ
Метод запроса: POST
Адрес: https://api.hb.by/v1/get-domain-info-from-belgie
Параметры запроса:
Имя |
Вложенность |
Тип |
Описание |
token |
body |
string |
API-ключ (токен) клиента |
hostname |
body |
string |
Домен или IP-адрес |
Значение hostname может быть IP-адресом или доменом (с или без префикса "http(s)://")
Пример:
{
"token": "{API-ключ (токен)}",
"hostname": "https://hb.by/"
}
Параметры ответа:
Имя |
Вложенность |
Тип |
Описание |
registration_date |
body |
datetime |
Дата и время регистрации ресурса |
resource_number |
body |
string |
Номер ресурса в базе |
resource_hostname |
body |
string |
Хост зарегистрированного ресурса |
resource_owner |
body |
string |
Владелец ресурса |
resource_owner_ucn |
body |
string (nullable) |
УНП |
resource_description |
body |
string (nullable) |
Описание ресурса |
Пример:
{
"registration_date": "2021-06-01T11:18:54",
"resource_number": "172460",
"resource_hostname": "hb.by",
"resource_owner": "Общество с ограниченной ответственностью «ТриИнком»",
"resource_owner_ucn": "391493811",
"resource_description": "Услуги по регистрация доменов, хостинга, выпуска SSL-сертификатов, настройке корпоративной почты"
}