Транспортным протоколом для вызова функций API является HTTP. В API поддерживаются как GET, так и POST запросы. Однако рекомендуемым является метод POST, т.к. он не имеет ограничений на длину запроса.
Каждый вызов является атомарным и синхронным, то есть все запросы независимы друг от друга. Большинство операций являются синхронными: результат операции возвращается сразу же, нет промежуточных состояний при выполнении операции. Некоторые операции могут требовать поверки результата выполнения.
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.
Передача данных производится в следующем виде:
Формат JSON является форматом по-умолчанию. Пример ответа на запрос:
{"account":{"email":"test@user.com","currency":"USD","prepay":"10.34","tariff":"Bronze"},"result":"success"}
Получение информации по аккаунту - валюты, тарифа, остатке на счете. Пример:
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"}
Возвращает список зон, доступных к регистрации с ценами на регистрацию, продление и перено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"}
Возвращает список доменов пользователя с дататами окончания регистрации и текущим статусом домена. Запрос:
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
- отмененая регистрация или перенос, перенесенные от нас домены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"}
Проверка доступности домена для регистрации. Запрос:
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"}
Регистраця домена. В зависимости от зоны содержит различный набор параметров.
Название параметра | Длина | Примечание |
Общие поля для всех доменов | ||
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 | Владелец домена:
|
firstname |
1-80 | Имя владельца домена. Обязательное поле. |
lastname |
1-80 | Фамилия владельца домена. Обязательное поле. |
companyname |
6-255 | Название организации. |
uspurpose |
2 | Сфера использования:
|
Поля для доменов .IT | ||
regtype |
1 | Владелец домена:
|
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 | Владелец домена:
|
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"}
Перенос домена от другого регистратора. Параметры идентичны функции "domain/register". Дополнительный параметр:
transfercode
- код переноса (вы можете получить его у текущего регистратора)Продление домена на 1 год.
domain
- домен, который продлеваетсяВывод информации о домене - список ДНС, статус блокировки, защиты данных а также дату окончания регистрации.
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"}
Включение или выключение защиты от переноса (для тех зон, которые это поддерживают).
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"}
Включение или выключение защиты личных данных (для тех зон, которые это поддерживают).
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"}
Обновление списка ДНС серверов домена.
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"}
Получение кода переноса домена (если он поддерживается зоной).
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"}
Получение контактных данных домена.
domain
- домен о котором получаете информациюoptimized
- необязательный параметр, формирует вывод редакритуемых данных, допустимое значение whmcs
Ответ формируется в виде структуированного JSON-массива по типам контактных данных:
- Registrant:
- postcode
- state
- city
- address
- phone
- ...
- Admin:
- postcode
- state
- city
- address
- phone
- ...
- Technical:
- postcode
- state
- city
- address
- phone
- ...
- Billing:
- postcode
- state
- city
- address
- phone
- ...
Для каждого типа контакта поля идентичны тем, которые используется при запросе domain/register
(если не используется параметр optimized
.
Проверка правильности заполнения контактных данных перед регистрацией домена.
Поля идентичны тем, которые используется при запросе domain/create
.
Ответ (успешная валидация):
{"status":"Valid","result":"success"}
Ответ (ошибка валидации):
{"result":"error","code": 25,"message":"PARAMETER_INCORRECT","error_text":"passport_num, passport_issuer has incorrect format or data"}
Обновлениие контактных данных домена.
domain
- домен о котором получаете информациюoptimized
- необязательный параметр, указывает на формат передаваемых данных, допустимое значение whmcs
contacts
- структуированный JSON-массив по типам контактных данных (см. domain/contacts/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"}
Добавленине приватного ДНС (для тех зон, которые это поддерживают)
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
Удаление приватного ДНС (для тех зон, которые это поддерживают)
domain
- домен о котором получаете информациюnameserver
- хостПример запроса:
https://api.echo.domains/?action=domain/privatens/del&username=test@user.com&password=testpassword&domain=testdomain.com&nameserver=ns1
Получение записей ДНС.
Обновление записей ДНС. Поддерживаются записи А, AAAA, MX, CNAME, TXT.