1. Загальний опис API
1.1. Загальний принцип взаємодії
Транспортним протоколом для функцій API є HTTP. В API підтримуються як GET, і POST запити. Проте рекомендованим метод POST, т.к. він не має обмежень на довжину запиту.
Кожен виклик є атомарним та синхронним, тобто всі запити незалежні один від одного. Більшість операцій є синхронними: результат операції повертається відразу, немає проміжних станів під час операції. Деякі операції можуть вимагати перевірки результату виконання.
1.2. Формат запиту
URL для виклику функцій виглядає так:
https://api.registrar.com.ua/?action=<ім'я_категорії_функції>/<ім'я_функції>[&<HTTP_параметри_для_запитів_GET>]
Приклад постого запиту:
https://api.registrar.com.ua/?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.registrar.com.ua/?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"
Повертає список зон, доступних до реєстрації з цінами на реєстрацію, продовження та перенос у валюті користувача. Запит:
https://api.registrar.com.ua/?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":{"register":" 1.60","renew":"9.70","idn":true},".by":{"register":"14.55","renew":"14.55","idn":false},".\u0443u 0":{"register":"7.00","transfer":"7.00","renew":"7.00","idn":false}},"result":"success"}
2.3 Функція "account/domains"
Повертає список доменів користувача з датами закінчення реєстрації та поточним статусом домену. Запит:
https://api.registrar.com.ua/?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.registrar.com.ua/?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":"202 14:02:31","status":"Paid","items":[{"description":"Хостинг WordPress - Портал (test-domain.com) \/ 3 місяці","amount":"5.00"},{"description":"Промо-код: testcode - 100. знижка","amount":"-5.00"}]}],"result":"success"}
2.5 Функція "domain/check"
Перевірка доступності домену для реєстрації. Запит:
https://api.registrar.com.ua/?action=domain/check&username=test@user.com&password=testpassword&domain=testdomain.ru
Домен доступний для реєстрації:
{"status":"available","result":"success"}
Домен недоступний для реєстрації (зайнятий/зарезервований):
{"status":"unavailable","whoisdata":"% Взаємодія з RIPN's Whois Service\u003Cbr http:\/\/www.ripn.net\/about\/servpol.html#3.2 (in Ukrainian) \/\u003E\n% http:\/\/www.ripn.net\/about\/en\/servpol.html#3.2 (in English).\u003Cbr \/ \/\u003E\nblocking: Domain може бути не registered.\u003Cbr \/\u003Cbr\/\u003E\nLast updated on 2017.01.07 23:11:31 MSK\u003C0E\n \/\u003E\n","result":"success"}
Помилка домену:
{"result":"error","code":21,"message":"DOMAIN_BAD_TLD","error_text":"Unsupported zone"}
2.6 Функція "domain/register"
Реєстрація домену. Залежно від зони містить різні параметри.
| Назва параметра |
Довжина |
Примітка |
| Загальні поля для всіх доменів |
domain |
2-63 |
Ім'я домену, що реєструється. Обов'язкове поле. |
country |
2 |
Дволітерний ISO-код країни.Деякі доменні зони допускають вказівку лише країн, які офіційно підпадають під цю зону. Обов'язкове поле. |
postcode |
3-10 |
Поштовий індекс власника домену. Обов'язкове поле. |
state |
2-40 |
Адреса власника домену: область/край/штат. |
city |
2-80 |
Адреса власника домену: місто. Обов'язкове поле. |
address |
8-80 |
Адреса власника домену: вулиця, будинок, офіс (квартира). Обов'язкове поле. |
phone |
8-20 |
Номер телефону власника домену. Телефон вказується у міжнародному форматі (+380.951112233).Обов'язкове поле. |
email |
6-255 |
Контактна email-адреса власника домену.Обов'язкове поле. |
whoisprotect |
1 |
Вимкнути 0 або увімкнути 1 захист даних у WHOIS, якщо це підтримується доменом. |
nameservers |
0-255 |
Список NS-серверів домену, розділених ";", приклад: ns1.nameserver.com.ua;ns2.nameserver.com.ua. Максимально 4 NS-сервери. |
| Поля для доменів .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 |
ІSO-код країни народження власника домену. Обов'язкове поле під час реєстрації на приватну особу. |
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. |
| Поля для доменів .PRO |
firstname |
2-80 |
Ім'я власника домену. Обов'язкове поле. |
lastname |
2-80 |
Прізвище власника домену. Обов'язкове поле. |
companyname |
6-255 |
Назва організації. |
profession |
6-255 |
Професія. Обов'язкове поле. |
license |
6-255 |
Номер ліцензії. |
authority |
6-255 |
Назва органу, від якого реєстрант отримав ліцензію. |
authority_url |
6-255 |
URL-адреса сайту, органу, який видав ліцензію. |
| Поля для інших доменів |
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":"телефон не має відповідного формату або часу"}
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.registrar.com.ua","ip":"198.27.126.94"},{"ns ":"ns1.registrar.com.ua","ip":"198.245.60.140"},{"ns":"ns2.registrar.com.ua","ip":"198.27.126.95"}],"result":"success"}
2.10 Функція "domain/update/lock"
Увімкнення або вимкнення захисту від перенесення (для тих зон, які це підтримують).
domain - домен
enable - зі значенням on, locked або 1 - включає блокування; значення off, unlocked або 0 - вимикають блокування
Приклад запиту:
https://api.registrar.com.ua/?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.registrar.com.ua/?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.registrar.com.ua/?action=domain/update/privatewhois&username=test@user.com&password=testpassword&domain=testdomain.com&nameservers=ns1.registrar.com.ua;ns2.registrar.com
Відповідь (успішне оновлення):
{"status":"Completed","result":"success"}
Відповідь (успішне оновлення, завдання додано до черги):
{"status":"Queued","result":"success"}
2.13 Функція "domain/transfercode"
Отримання коду перенесення домену (якщо він підтримується зоною).
domain - домен, про який отримуєте інформацію
Приклад запиту:
https://api.registrar.com.ua/?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":"Відсутня підтримка для testdomain.ru"}
2.14 Функція "domain/contacts/get"
Отримання контактних даних домену.
domain - домен, про який отримуєте інформацію
Відповідь формується у вигляді структуйованого 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 - домен, про який отримуєте інформацію
contacts - структуйований JSON-масив за типами контактних даних (див. domain/contacts/get)
2.17 Функція "domain/privatens/get"
Виводить список приватних ДНЗ домену (для тих зон, які це підтримують)
domain - домен, про який отримуєте інформацію
Відповідь формується у вигляді структуйованого JSON-масиву. Успішна відповідь:
{"nameservers":{"ns1":["198.245.60.140"],"ns2":["192.99.9.183"],"n s3":["2002:6bb5:bb5e::94","107.181.187.94"]},"result":"success"}
2.18 Функція "domain/privatens/add"
Додавання приватного ДНР (для тих зон, які це підтримують)
domain - домен, про який отримуєте інформацію
nameserver - хост
ip - IP-адреса, допускається вказувати кілька адрес через кому
Приклад запиту:
https://api.registrar.com.ua/?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.registrar.com.ua/?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.