Документация API


1. Общее описание API

1.1. Общий принцип взаимодействия

Транспортным протоколом для вызова функций API является HTTP. В API поддерживаются как GET, так и POST запросы. Однако рекомендуемым является метод POST, т.к. он не имеет ограничений на длину запроса.

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

1.2. Формат запроса

URL для вызова функций выглядит следующим образом:

https://api.echo.domains/?action=<имя_категории_функции>/<имя_функции>[&<HTTP_параметры_для_запросов_GET>]

Пример постого запроса:

https://api.echo.domains/?action=account/info&username=test@user.com&password=testpassword

Практически все функции требуют дополнительных параметров для своего вызова. Запросы выполняются в кодировке utf-8. IDN-домены в зоне могут быть также переданы в punycode.

1.3. Передача входных параметров

Передача данных производится в следующем виде:

  • функция
  • параметры аутентификации
  • параметры, специфичные для конкретной функции

1.4. Форматы ответа

Формат JSON является форматом по-умолчанию. Пример ответа на запрос:

{"account":{"email":"test@user.com","currency":"USD","prepay":"10.34","tariff":"Bronze"},"result":"success"}

2. Список функций

  • account/info
  • account/prices
  • account/domains
  • account/invoices
  • domain/check
  • domain/register
  • domain/transfer
  • domain/renew
  • domain/info
  • domain/update
    • domain/update/lock
    • domain/update/privatewhois
    • domain/update/nameservers
  • domain/transfercode
  • domain/contacts/get
  • domain/contacs/validate
  • domain/contacts/update
  • domain/privatens/get
  • domain/privatens/add
  • domain/privatens/del
  • domain/dns/get
  • domain/dns/update

2.1 Функция "account/info"

Получение информации по аккаунту - валюты, тарифа, остатке на счете. Пример:

https://api.echo.domains/?action=account/info&username=test@user.com&password=testpassword

Ответ (успешный):

{"account":{"email":"test@user.com","currency":"USD","prepay":"10.34","tariff":"Bronze"},"result":"success"}

Ответ (с ошибкой):

{"result":"error","code":10,"message":"AUTH_FAILED","error_text":"Incorrect username\/password"}

2.2 Функция "account/prices"

Возвращает список зон, доступных к регистрации с ценами на регистрацию, продление и переноc в валюте пользователя. Запрос:

https://api.echo.domains/?action=account/prices&username=test@user.com&password=testpassword

Ответ:

{"zones":{".ru":{"register":"1.65","transfer":"1.50","renew":"2.15","idn":false},".\u0440\u0444":{"register":"1.65","transfer":"1.50","renew":"2.15","idn":true},".\u0440\u0443\u0441":{"register":"1.60","renew":"9.70","idn":true},".by":{"register":"14.55","renew":"14.55","idn":false},".\u0443\u043a\u0440":{"register":"7.00","transfer":"7.00","renew":"7.00","idn":false}},"result":"success"}

2.3 Функция "account/domains"

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

https://api.echo.domains/?action=account/domains&username=test@user.com&password=testpassword

Ответ:

{"domains":[{"domain":"testdomain.it","status":"Active","createdate":"2016-07-09","expirydate":"2017-03-22"},{"domain":"testdomain.com.ua","status":"Expired","createdate":"2014-12-31","expirydate":"2016-12-31"},{"domain":"testdomain.ru","status":"PendingTransfer","createdate":"2016-12-31","expirydate":"0000-00-00"}],"result":"success"}

Возможные статусы доменов:

  • Pending - домен в процессе регистрации или ожидания оплаты
  • Active - активный домен
  • PendingTransfer - домен, ожидающий переноса
  • Expired - истекший домен
  • Cancelled - отмененая регистрация или перенос, перенесенные от нас домены

2.4 Функция "account/invoices"

  • statdate - начальная дата отчета (необязательный параметр, по умолчанию - текущая дата)
  • enddate - конечная дата отчета (необязательный параметр, по умолчанию - минус 30 дней от начальной даты. Максимальный период - 1 год)

Возвращает список счетов. Запрос:

https://api.echo.domains/?action=account/invoices&username=test@user.com&password=testpassword

Ответ:

{"invoices":[{"id":"71690","subtotal":"0.00","credit":"0.00","total":"0.00","date": "2020-01-10","paiddate":"2020-01-11 14:02:31","status":"Paid","items":[{"description":"Хостинг WordPress - Портал (test-domain.com) \/ 3 месяца","amount":"5.00"},{"description":"Промо-код: testcode - 100.00% текущий cкидка","amount":"-5.00"}]}],"result":"success"}

2.5 Функция "domain/check"

Проверка доступности домена для регистрации. Запрос:

https://api.echo.domains/?action=domain/check&username=test@user.com&password=testpassword&domain=testdomain.ru

Домен доступен к регистрации:

{"status":"available","result":"success"}

Домен недоступен к регистрации (занят/зарезервирован):

{"status":"unavailable","whoisdata":"% By submitting a query to RIPN's Whois Service\u003Cbr \/\u003E\n% you agree to abide by the following terms of use:\u003Cbr \/\u003E\n% http:\/\/www.ripn.net\/about\/servpol.html#3.2 (in Russian) \u003Cbr \/\u003E\n% http:\/\/www.ripn.net\/about\/en\/servpol.html#3.2 (in English).\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nblocking: Domain can not be registered.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nLast updated on 2017.01.07 23:11:31 MSK\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n","result":"success"}

Ошибка в домене:

{"result":"error","code":21,"message":"DOMAIN_BAD_TLD","error_text":"Unsupported zone"}

2.6 Функция "domain/register"

Регистраця домена. В зависимости от зоны содержит различный набор параметров.

Название параметра Длина Примечание
 Общие поля для всех доменов
domain  2 Имя регистрируемого домена. Обязательное поле.
country  2 Двухбуквенный ISO-код страны. Некоторые доменные зоны допускают указание только стран официально подпадающих под эту зону. Обязательное поле.
postcode 3-10 Почтовый индекс владельца домена. Обязательное поле.
state 2-40 Адрес владельца домена: область/край/штат.
city 2-80 Адрес владельца домена: город. Обязательное поле.
address 8-80 Адрес владельца домена: улица, дом, офис (квартира). Обязательное поле.
phone 8-20 Номер телефона владельца домена. Телефон указывается в международном формате (+7.4952171179). Обязательное поле.
email 6-255 Контактный email-адрес владельца домена. Обязательное поле.
whoisprotect 1 Выключить 0 или включить 1 защиту данных в WHOIS, если это поддерживается доменом.
nameservers 0-255 Список NS-серверов домена, разделенных ";", пример: ns1.echo-domains.ru;ns2.echo-domains.ru. Максимально 4 NS-сервера.
 Поля для доменов .RU/.SU/.РФ/.РУС/.ОНЛАЙН/.МОСКВА/.MOSCOW
regtype 3-6 Владелец домена: person - частное лицо или org - организация. Обязательное поле.
firstname 1-80 Имя владельца домена. Обязательное поле при регистрации на частное лицо.
middlename 1-80 Отчество владельца домена.
lastname 1-80 Фамилия владельца домена. Обязательное поле при регистрации на частное лицо.
birthdate 10 Дата рождения владельца домена в формате DD.MM.YYYY. Обязательное поле при регистрации на частное лицо.
passport_num 6-20 Номер паспорта (для резидентов стран СНГ) или другого документа (для нерезидентов). Обязательное поле при регистрации на частное лицо.
passport_issuer 10-255 Орган выдачи паспорта/документа. Обязательное поле при регистрации на частное лицо.
passport_date 10 Дата выдачи паспорта/документав формате DD.MM.YYYY. Обязательное поле при регистрации на частное лицо.
companyname 6-255 Организация, на которую регистрируется домен. Обязательное поле при регистрации на организацию.
regcode 10-12 Идентификационный номер налогоплательщика (ИНН). Обязательное поле при регистрации на организацию.
 Поля для доменов .US
nexuscategory 3 Владелец домена:
  • C11 - Гражданин США
  • C12 - Постоянный резидент США
  • C21 - Американская компания
  • C31 - Иностранная компания, вещущая деятельность в США
  • C32 - Иностранная компания с офисом в США
Обязательное поле.
firstname 1-80 Имя владельца домена. Обязательное поле.
lastname 1-80 Фамилия владельца домена. Обязательное поле.
companyname 6-255 Название организации.
uspurpose 2 Сфера использования:
  • P1 - Бизнес для получения прибыли
  • P2 - Неприбыльная организация, клуб и т.д.
  • P3 - Персональное использование
  • P4 - Для образовательных целей
  • P5 - Для государственных целей
Обязательное поле.
 Поля для доменов .IT
regtype 1 Владелец домена:
  • 1 - Итальянские и иностранные физические лица
  • 2 - Компании/Частные предприниматели
  • 3 - Фрилансеры/профессионалы
  • 4 - Неприбыльные организации
  • 5 - Общественные организации
  • 6 - Другие субъекты
  • 7 - Иностранцы которые подходят 2-6
Обязательное поле.
nationality 2 Гражданство. Двухбуквенный ISO-код страны. Обязательное поле для физических лиц (regtype=1).
firstname 1-80 Имя владельца домена. Обязательное поле.
lastname 1-80 Фамилия владельца домена. Обязательное поле.
companyname 6-255 Название организации.
regcode 4-20 Для итальянских граждан должен содержать Codice Fiscale, для иностранцев - номер паспорта, для организаций - налоговый номер (для итальянских организаций - 11 значный VAT number или n.a.). Обязательное поле.
country  2 Двухбуквенный ISO-код страны Евросоюза. Обязательное поле.
state 2-40 Область/край/штат. Для Италии - 2-х буквенный код провинции. Обязательное поле.
hidedetails 1 Отображать 0 или скрывать 1 данные владельца в WHOIS
itterms 3 YES - согласие с правилами зоны .IT. Обязательное поле.
 Поля для доменов .EU
firstname 1-80 Имя владельца домена. Обязательное поле.
lastname 1-80 Фамилия владельца домена. Обязательное поле.
companyname 6-255 Название организации.
country  2 Двухбуквенный ISO-код страны Евросоюза. Обязательное поле.
 Поля для доменов .KZ/.ORG.KZ/.COM.KZ/.ҚАЗ
firstname 1-80 Имя владельца домена. Обязательное поле.
lastname 1-80 Фамилия владельца домена. Обязательное поле.
companyname 6-255 Название организации.
srvloc_sp 2-40 Месторасположение сервера, область в Казахстане. Обязательное поле.
srvloc_city 2-80 Месторасположение сервера, город. Обязательное поле.
srvloc_street 8-80 Месторасположение сервера, адрес. Обязательное поле.
 Поля для доменов .FR/.RE/.PM
regtype 5-11 Владелец домена:
  • INDIVIDUAL - частное лицо
  • COMPANY - компания
  • TRADEMARK - торговая марка
  • ASSOCIATION - ассоциация
  • OTHER - другой
Обязательное поле.
firstname 1-80 Имя владельца домена. Обязательное поле при регистрации на частное лицо.
lastname 1-80 Фамилия владельца домена. Обязательное поле при регистрации на частное лицо.
birthdate 10 Дата рождения владельца домена в формате DD.MM.YYYY. Обязательное поле при регистрации на частное лицо.
birthcountry 2 ISO-код страны рождения владельца домена. Обязательное поле при регистрации на частное лицо.
birthcity 2-80 Город рождения владельца домена. Обязательное поле при регистрации на частное лицо и стране рождения FR.
birthpostalcode 5 Почтовый индекс в городе рождения владельца домена. Обязательное поле при регистрации на частное лицо и стране рождения FR.
hidedetails 1 Отображать 0 или скрывать 1 данные владельца в WHOIS при регистрации на частное лицо
otherstatus 3-80 Юридический статус. Обязательное поле при regtype=OTHER.
name 3-80 Название владельца домена (компании, ассоциации и т.д.). Обязательное поле при регистрации не на частное лицо.
trademark 3-80 Торговая марка. Обязательное поле при регистрации на торговую марку.
waldec 3-80 Waldec ID. Опциональное поле при регистрации на ассоциацию.
assocationdate 10 Дата ассоциации. Обязательное поле в формате DD.MM.YYYY при регистрации на ассоциацию, если не указан waldec.
publicationdate 10 Дата публикации. Обязательное поле в формате DD.MM.YYYY при регистрации на ассоциацию, если не указан waldec.
announce 3-80 Announce No. Обязательное поле при регистрации на ассоциацию, если не указан waldec.
page 3-10 Page No. Обязательное поле при регистрации на ассоциацию, если не указан waldec.
vatnum 3-30 Налоговый номер (VAT).
duns 9 Номер D-U-N-S (Data Universal Numbering System).
siren 9 Номер SIREN.
 Поля для остальных доменов
firstname 2-80 Имя владельца домена. Обязательное поле.
lastname 2-80 Фамилия владельца домена. Обязательное поле.
companyname 6-255 Название организации.

Ответ - успешная регистрация:

{"status":"Completed","result":"success"}

Ответ - добавлен в очередь на регистрацию:

{"status":"Queued","result":"success"}

Ответ - с ошибкой:

{"result":"error","code":25,"message":"PARAMETER_INCORRECT","error_text":"phone has incorrect format or data"}

2.7 Функция "domain/transfer"

Перенос домена от другого регистратора. Параметры идентичны функции "domain/register". Дополнительный параметр:

  • transfercode - код переноса (вы можете получить его у текущего регистратора)

2.8 Функция "domain/renew"

Продление домена на 1 год.

  • domain - домен, который продлевается

2.9 Функция "domain/info"

Вывод информации о домене - список ДНС, статус блокировки, защиты данных а также дату окончания регистрации.

  • domain - домен о котором получаете информацию

Успешный ответ.

{"expirydate":"2017-10-14","lockstatus":"unknown","nameservers":[{"ns":"ns3.echo-domains.ru","ip":"198.27.126.94"},{"ns":"ns1.echo-domains.ru","ip":"198.245.60.140"},{"ns":"ns2.echo-domains.ru","ip":"198.27.126.95"}],"result":"success"}

2.10 Функция "domain/update/lock"

Включение или выключение защиты от переноса (для тех зон, которые это поддерживают).

  • domain - домен
  • enable - со значением on, locked или 1 - включает блокировку; значения off, unlocked или 0 - выключают блокировку
Пример запроса:
https://api.echo.domains/?action=domain/update/lock&username=test@user.com&password=testpassword&domain=testdomain.com&enable=on

Ответ (успешное включение):

{"status":"Completed","result":"success"}

Ответ (успешное включение, задание добавлено в очередь):

{"status":"Queued","result":"success"}

2.11 Функция "domain/update/privatewhois"

Включение или выключение защиты личных данных (для тех зон, которые это поддерживают).

  • domain - домен
  • enable - со значением on, enabled или 1 - включает сокрытие данных; значения off, disabled или 0 - выключают сокрытие данных
Пример запроса:
https://api.echo.domains/?action=domain/update/privatewhois&username=test@user.com&password=testpassword&domain=testdomain.com&enable=on

Ответ (успешное включение):

{"status":"Completed","result":"success"}

Ответ (успешное включение, задание добавлено в очередь):

{"status":"Queued","result":"success"}

2.12 Функция "domain/update/nameservers"

Обновление списка ДНС серверов домена.

  • domain - домен
  • nameservers - список ДНС, разделенных ;
Пример запроса:
https://api.echo.domains/?action=domain/update/privatewhois&username=test@user.com&password=testpassword&domain=testdomain.com&nameservers=ns1.echo-domains.ru;ns2.echo-domains.ru

Ответ (успешное обновление):

{"status":"Completed","result":"success"}

Ответ (успешное обновление, задание добавлено в очередь):

{"status":"Queued","result":"success"}

2.13 Функция "domain/transfercode"

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

  • domain - домен о котором получаете информацию
Пример запроса:
https://api.echo.domains/?action=domain/transfercode&username=test@user.com&password=testpassword&domain=testdomain.com

Успешный ответ.

{"code":"USuV$AWY8r","result":"success"}

Ответ с ошибкой.

{"result":"error","code":27,"message":"REGISTRY_ERROR","error_text":"Feature not supported for testdomain.ru"}

2.14 Функция "domain/contacts/get"

Получение контактных данных домена.

  • domain - домен о котором получаете информацию
  • optimized - необязательный параметр, формирует вывод редакритуемых данных, допустимое значение whmcs

Ответ формируется в виде структуированного JSON-массива по типам контактных данных:

  • Registrant:
    • postcode
    • state
    • city
    • address
    • phone
    • email
    • ...
  • Admin:
    • postcode
    • state
    • city
    • address
    • phone
    • email
    • ...
  • Technical:
    • postcode
    • state
    • city
    • address
    • phone
    • email
    • ...
  • Billing:
    • postcode
    • state
    • city
    • address
    • phone
    • email
    • ...

Для каждого типа контакта поля идентичны тем, которые используется при запросе domain/register (если не используется параметр optimized.

2.15 Функция "domain/contacts/validate"

Проверка правильности заполнения контактных данных перед регистрацией домена.

Поля идентичны тем, которые используется при запросе domain/create.

Ответ (успешная валидация):

{"status":"Valid","result":"success"}

Ответ (ошибка валидации):

{"result":"error","code": 25,"message":"PARAMETER_INCORRECT","error_text":"passport_num, passport_issuer has incorrect format or data"}

2.16 Функция "domain/contacts/update"

Обновлениие контактных данных домена.

  • domain - домен о котором получаете информацию
  • optimized - необязательный параметр, указывает на формат передаваемых данных, допустимое значение whmcs
  • contacts - структуированный JSON-массив по типам контактных данных (см. domain/contacts/get)

2.17 Функция "domain/privatens/get"

Выводит список приватных ДНС домена (для тех зон, которые это поддерживают)

  • domain - домен о котором получаете информацию

Ответ формируется в виде структуированного JSON-массива. Успешный ответ:

{"nameservers":{"ns1":["198.245.60.140"],"ns2":["192.99.9.183"],"ns3":["2002:6bb5:bb5e::94","107.181.187.94"]},"result":"success"}

2.18 Функция "domain/privatens/add"

Добавленине приватного ДНС (для тех зон, которые это поддерживают)

  • domain - домен о котором получаете информацию
  • nameserver - хост
  • ip - IP-адрес, допускается указывать несколько адресов через запятую

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

https://api.echo.domains/?action=domain/privatens/add&username=test@user.com&password=testpassword&domain=testdomain.com&nameserver=ns1&ip=198.245.60.140

2.19 Функция "domain/privatens/del"

Удаление приватного ДНС (для тех зон, которые это поддерживают)

  • domain - домен о котором получаете информацию
  • nameserver - хост

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

https://api.echo.domains/?action=domain/privatens/del&username=test@user.com&password=testpassword&domain=testdomain.com&nameserver=ns1

2.20 Функция "domain/dns/get"

Получение записей ДНС.

2.21 Функция "domain/dns/update"

Обновление записей ДНС. Поддерживаются записи А, AAAA, MX, CNAME, TXT.


Похожие статьи


 Подключение к биллингу WHMCS 6390 просмотров
 Подключение к биллингу RootPanel 2575 просмотров

Соцсети

Аккаунт