Dasturchilar

Ushbu hujjat API metodlarini tasvirlab beradi, ular domen nomlarini boshqarish uchun ishlatiladi. API domenlarning mavjudligini tekshirish, ro'yxatdan o'tkazish, yangilash, transfer qilish va boshqarish imkoniyatlarini taqdim etadi.

Autentifikatsiya

API-ga yuborilgan barcha so'rovlar Basic Authentication formatida avtorizatsiya sarlavhasini o'z ichiga olishi kerak:

Authorization: Basic base64_encode("client:$token")

Bu yerda:

  • client - doim "client" qiymati ishlatiladi
  • $token - sizning shaxsiy kirish tokeningiz

Authorization sarlavhasi API-ga yuborilgan barcha so'rovlarga qo'shilishi kerak.

Mazmun

  1. Domenning mavjudligini tekshirish
  2. Domenni ro'yxatdan o'tkazish
  3. Kontakt shablonini yaratish
  4. Kontakt shablonlarini olish
  5. Kontakt shablonini yangilash
  6. Domenni yangilash
  7. Domen haqida ma'lumot olish
  8. Transfer kodi olish
  9. Domenni transfer qilish
  10. Domen muddatini yangilash
  11. NS serverlarini o'rnatish
  12. WHOIS ni yashirish
  13. WHOIS ni ko'rsatish
  14. Domenni bloklash
  15. Domenni blokdan chiqarish
  16. Umumiy balansni olish

1. Domenning mavjudligini tekshirish

POST /api/client/servicedomain/check

Domenni ro'yxatdan o'tkazish uchun mavjudligini tekshiradi.

So'rov tanasi:

{
  "sld": "example-domain-2025",
  "tld": ".com"
}

Muvaffaqiyatli javob misoli:

{
  "result": true,
  "error": null
}

Domen mavjud emasligi haqida javob misoli:

{
  "result": null,
  "error": {
    "message": "Domain is not available.",
    "code": 9999
  }
}
ParametrTavsifMajburiy
sldIkkinchi darajali domen nomi (kengaytmasiz)Ha
tldDomen kengaytmasi (nuqta bilan)Ha

2. Domenni ro'yxatdan o'tkazish

POST /api/client/servicedomain/register_domain

Ko'rsatilgan parametrlar va kontakt ma'lumotlari bilan yangi domenni ro'yxatdan o'tkazadi.

So'rov tanasi:

{
  "domain": "example-shop-2025.store",
  "register_years": "1",
  "contactCustomer": {
    "client_type": "l",
    "tax_id": "123456789",
    "org_name": "Example Corporation",
    "bank_name": "Example Bank",
    "bank_code": "EXAMPLEBANK123",
    "passport_number": "AB123456",
    "passport_date": "2020-01-01",
    "passport_place": "Moscow",
    "first_name": "Ivan",
    "last_name": "Petrov",
    "email": "ivan.petrov@example.com",
    "state": "Moscow",
    "phone_code": "7",
    "phone": "9001234567",
    "country": "RU",
    "post_code": "123456",
    "city": "Moscow",
    "address": "Lenina str., 1, office 123"
  },
  "contactTech": {
    "client_type": "l",
    "tax_id": "123456789",
    "org_name": "Example Corporation",
    "bank_name": "Example Bank",
    "bank_code": "EXAMPLEBANK123",
    "passport_number": "AB123456",
    "passport_date": "2020-01-01",
    "passport_place": "Moscow",
    "first_name": "Ivan",
    "last_name": "Petrov",
    "email": "tech@example.com",
    "state": "Moscow",
    "phone_code": "7",
    "phone": "9001234567",
    "country": "RU",
    "post_code": "123456",
    "city": "Moscow",
    "address": "Lenina str., 1, office 123"
  },
  "contactBilling": {
    "client_type": "l",
    "tax_id": "123456789",
    "org_name": "Example Corporation",
    "bank_name": "Example Bank",
    "bank_code": "EXAMPLEBANK123",
    "passport_number": "AB123456",
    "passport_date": "2020-01-01",
    "passport_place": "Moscow",
    "first_name": "Ivan",
    "last_name": "Petrov",
    "email": "billing@example.com",
    "state": "Moscow",
    "phone_code": "7",
    "phone": "9001234567",
    "country": "RU",
    "post_code": "123456",
    "city": "Moscow",
    "address": "Lenina str., 1, office 123"
  },
  "contactAdmin": {
    "client_type": "l",
    "tax_id": "123456789",
    "org_name": "Example Corporation",
    "bank_name": "Example Bank",
    "bank_code": "EXAMPLEBANK123",
    "passport_number": "AB123456",
    "passport_date": "2020-01-01",
    "passport_place": "Moscow",
    "first_name": "Ivan",
    "last_name": "Petrov",
    "email": "admin@example.com",
    "state": "Moscow",
    "phone_code": "7",
    "phone": "9001234567",
    "country": "RU",
    "post_code": "123456",
    "city": "Moscow",
    "address": "Lenina str., 1, office 123"
  },
  "ns1": "ns1.example.com",
  "ns2": "ns2.example.com"
}

Muvaffaqiyatli javob misoli:

{
  "result": true,
  "error": null
}

Xato javob misoli:

{
  "result": null,
  "error": {
    "message": "Domain is not available.",
    "code": 9999
  }
}

Izoh: Har bir kontakt blokini to'ldirish o'rniga, mavjud kontakt shablonidan foydalanishingiz mumkin, uning ID sini ko'rsatib:

"contactCustomer": {
  "contact_id": "107"
}

Yoki mijoz ma'lumotlaridan foydalanishingiz mumkin:

"contactTech": {
  "use_customer": "1"
}
ParametrTavsifMajburiy
domainDomenning to'liq nomi, kengaytmasi bilanHa
register_yearsRo'yxatga olish muddati yillardaHa
contactCustomerMijozning kontakt ma'lumotlariHa
contactTechTexnik kontakt ma'lumotlariHa
contactBillingTo'lov kontakt ma'lumotlariHa
contactAdminMa'muriy kontakt ma'lumotlariHa
ns1, ns2Birinchi va ikkinchi NS-serverlarHa
dnssecDNSSEC ni ishlatish flagi (1 - yoqilgan)Yo'q

3. Kontakt shablonini yaratish

POST /api/client/contacts/create_contact_template

Yangi kontakt shablonini yaratadi, bu domenlarni ro'yxatdan o'tkazishda yoki boshqarishda qayta foydalanish uchun.

So'rov tanasi:

{
  "client_type": "l",
  "tax_id": "987654321",
  "org_name": "Digital Solutions LLC",
  "bank_name": "International Bank",
  "bank_code": "INTBANK123",
  "passport_number": "CD987654",
  "passport_date": "2022-03-15",
  "passport_place": "New York",
  "first_name": "John",
  "last_name": "Smith",
  "email": "john.smith@digitalsolutions.com",
  "state": "NY",
  "phone_code": "1",
  "phone": "2125551234",
  "country": "US",
  "post_code": "10001",
  "city": "New York",
  "address": "123 Broadway St, Suite 456"
}

Muvaffaqiyatli javob misoli:

{
  "result": {
    "id": 108,
    "client_type": "l",
    "tax_id": "987654321",
    "org_name": "Digital Solutions LLC",
    "bank_name": "International Bank",
    "bank_code": "INTBANK123",
    "passport_number": "CD987654",
    "passport_date": "2022-03-15",
    "passport_place": "New York",
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@digitalsolutions.com",
    "phone_code": "1",
    "phone": "2125551234",
    "country": "United States",
    "country_code": "US",
    "state": "NY",
    "post_code": "10001",
    "city": "New York",
    "address": "123 Broadway St, Suite 456",
    "iduzurl": "",
    "nick": ""
  },
  "error": null
}

Xato javob misoli:

{
  "result": null,
  "error": {
    "message": "Invalid email format",
    "code": 9999
  }
}
ParametrTavsifMajburiy
client_typeMijoz turi: jismoniy yoki yuridik shaxsHa
tax_idMijozning soliq identifikatsiya raqamiHa
org_nameTashkilot nomiHa
bank_nameBank nomiHa
bank_codeBank kodiHa
passport_numberPasport raqamiHa
passport_datePasport berilgan sanaHa
passport_placePasport berilgan joyHa
first_nameIsmHa
last_nameFamiliyaHa
emailElektron pochta manziliHa
stateViloyatHa
phone_codeTelefon kodiHa
phoneTelefon raqamiHa
countryMamlakat kodiHa
post_codePochta indeksiHa
cityShaharHa
addressManzilHa

4. Kontakt shablonlarini olish

POST /api/client/contacts/get_contacts_templates

Barcha saqlangan kontakt shablonlarining ro'yxatini oladi.

So'rov tanasi kerak emas

Javob namunasi:

{
  "result": [
    {
      "id": 2,
      "client_type": "l",
      "tax_id": "1",
      "org_name": "Example Corporation",
      "bank_name": "Example Bank",
      "bank_code": "EXAMPLEBANK123",
      "passport_number": "",
      "passport_date": "",
      "passport_place": "",
      "first_name": "Ivan",
      "last_name": "Ivanov",
      "email": "ivan@example.com",
      "phone_code": "998",
      "phone": "935311050",
      "country": "Uzbekistan",
      "country_code": "UZ",
      "state": "UZ",
      "post_code": "100000",
      "city": "Tashkent",
      "address": "Example Street 123",
      "iduzurl": "",
      "nick": ""
    },
    {
      "id": 108,
      "client_type": "l",
      "tax_id": "987654321",
      "org_name": "Digital Solutions LLC",
      "bank_name": "International Bank",
      "bank_code": "INTBANK123",
      "passport_number": "CD987654",
      "passport_date": "2022-03-15",
      "passport_place": "New York",
      "first_name": "John",
      "last_name": "Smith",
      "email": "john.smith@digitalsolutions.com",
      "phone_code": "1",
      "phone": "2125551234",
      "country": "United States",
      "country_code": "US",
      "state": "NY",
      "post_code": "10001",
      "city": "New York",
      "address": "123 Broadway St, Suite 456",
      "iduzurl": "",
      "nick": ""
    }
  ],
  "error": null
}

5. Kontakt shablonini yangilash

POST /api/client/contacts/update_contact_template

Mavjud kontakt shablonini yangilaydi.

So'rov tanasi:

{
  "template_id": 108,
  "client_type": "l",
  "tax_id": "987654321",
  "org_name": "Digital Solutions International",
  "bank_name": "Global Bank",
  "bank_code": "GLOBBANK456",
  "passport_number": "",
  "passport_date": "",
  "passport_place": "",
  "first_name": "John",
  "last_name": "Smith",
  "email": "john.smith@digitalsolutions.com",
  "state": "California",
  "phone_code": "1",
  "phone": "4155551234",
  "country": "US",
  "post_code": "94107",
  "city": "San Francisco",
  "address": "555 Market St, Suite 789"
}

Muvaffaqiyatli javob namunasi:

{
  "result": {
    "id": 108,
    "client_type": "l",
    "tax_id": "987654321",
    "org_name": "Digital Solutions International",
    "bank_name": "Global Bank",
    "bank_code": "GLOBBANK456",
    "passport_number": "",
    "passport_date": "",
    "passport_place": "",
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@digitalsolutions.com",
    "phone_code": "1",
    "phone": "4155551234",
    "country": "United States",
    "country_code": "US",
    "state": "California",
    "post_code": "94107",
    "city": "San Francisco",
    "address": "555 Market St, Suite 789",
    "iduzurl": "",
    "nick": ""
  },
  "error": null
}
ParametrTavsifMajburiy
template_idYangilanishi kerak bo'lgan shablon ID-siHa
Boshqa parametrlar kontakt shablonini yaratishga o'xshash.

6. Domenni uzaytirish

POST /api/client/servicedomain/renew_domain

Domen ro'yxatga olish muddatini uzaytiradi.

So'rov tanasi:

{
  "domain_id": "16"
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Domain not found",
    "code": 9999
  }
}
ParametrTavsifMajburiy
domain_idDomen identifikatoriHa

7. Domen haqida ma'lumot olish

POST /api/client/servicedomain/get_domain

Domen haqida batafsil ma'lumot oladi.

So'rov tanasi:

{
  "domain": "example-domain.com"
}

Muvaffaqiyatli javob namunasi:

{
  "result": {
    "domain": "example-domain.com",
    "domain_id": 16,
    "sld": "example-domain",
    "tld": ".com",
    "name_servers": {
      "1": {
        "address": "ns1.example.com",
        "ip": ""
      },
      "2": {
        "address": "ns2.example.com",
        "ip": ""
      },
      "3": {
        "address": "",
        "ip": ""
      },
      "4": {
        "address": "",
        "ip": ""
      },
      "5": {
        "address": "",
        "ip": ""
      }
    },
    "registrar": {
      "id": 2,
      "client_type": "l",
      "tax_id": "123456789",
      "org_name": "Example Corporation",
      "bank_name": "Example Bank",
      "bank_code": "EXAMPLEBANK123",
      "passport_number": "",
      "passport_date": "",
      "passport_place": "",
      "first_name": "Ivan",
      "last_name": "Petrov",
      "email": "ivan.petrov@example.com",
      "phone_code": "7",
      "phone": "9001234567",
      "country": "Russian Federation",
      "country_code": "RU",
      "state": "Moscow",
      "post_code": "123456",
      "city": "Moscow",
      "address": "Lenina str., 1, office 123",
      "iduzurl": "",
      "nick": ""
    },
    "tech": {
      "id": 2,
      "client_type": "l",
      "tax_id": "123456789",
      "org_name": "Example Corporation",
      "bank_name": "Example Bank",
      "bank_code": "EXAMPLEBANK123",
      "passport_number": "",
      "passport_date": "",
      "passport_place": "",
      "first_name": "Ivan",
      "last_name": "Petrov",
      "email": "tech@example.com",
      "phone_code": "7",
      "phone": "9001234567",
      "country": "Russian Federation",
      "country_code": "RU",
      "state": "Moscow",
      "post_code": "123456",
      "city": "Moscow",
      "address": "Lenina str., 1, office 123",
      "iduzurl": "",
      "nick": ""
    },
    "billing": {
      "id": 2,
      "client_type": "l",
      "tax_id": "123456789",
      "org_name": "Example Corporation",
      "bank_name": "Example Bank",
      "bank_code": "EXAMPLEBANK123",
      "passport_number": "",
      "passport_date": "",
      "passport_place": "",
      "first_name": "Ivan",
      "last_name": "Petrov",
      "email": "billing@example.com",
      "phone_code": "7",
      "phone": "9001234567",
      "country": "Russian Federation",
      "country_code": "RU",
      "state": "Moscow",
      "post_code": "123456",
      "city": "Moscow",
      "address": "Lenina str., 1, office 123",
      "iduzurl": "",
      "nick": ""
    },
    "admin": {
      "id": 2,
      "client_type": "l",
      "tax_id": "123456789",
      "org_name": "Example Corporation",
      "bank_name": "Example Bank",
      "bank_code": "EXAMPLEBANK123",
      "passport_number": "",
      "passport_date": "",
      "passport_place": "",
      "first_name": "Ivan",
      "last_name": "Petrov",
      "email": "admin@example.com",
      "phone_code": "7",
      "phone": "9001234567",
      "country": "Russian Federation",
      "country_code": "RU",
      "state": "Moscow",
      "post_code": "123456",
      "city": "Moscow",
      "address": "Lenina str., 1, office 123",
      "iduzurl": "",
      "nick": ""
    },
    "period": 1,
    "dnssec": 0,
    "status": "active",
    "privacy": 0,
    "locked": 0,
    "hold": 0,
    "update_prohibited": 0,
    "registered_at": "2025-04-22 06:41:58",
    "expires_at": "2026-04-22 06:41:58"
  },
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Domain not found",
    "code": 9999
  }
}
ParametrTashxilMajburiy
domainDomening to'liq nomi, kengaytma bilanHa

8. Transfer kodi olish

POST /api/client/servicedomain/get_transfer_code

Domenni boshqa ro'yxatga olish xizmatiga o'tkazish uchun avtorizatsiya kodini (EPP/AUTH kodini) oladi.

So'rov tanasi:

{
  "domain_id": "90"
}

Muvaffaqiyatli javob namunasi:

{
  "result": "aA1My8=+IEIA****",
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Domain not found",
    "code": 9999
  }
}
ParametrTashxilMajburiy
domain_idDomen identifikatoriHa

9. Domen transferi

POST /api/client/servicedomain/transfer_domain

Domenni boshqa ro'yxatga olish xizmatiga o'tkazishni boshlaydi.

So'rov tanasi:

{
  "transfer_sld": "example-domain",
  "transfer_tld": ".com",
  "transfer_code": "aA1My8=+IEIA****"
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Invalid transfer code",
    "code": 9999
  }
}
ParametrTashxilMajburiy
transfer_sldIkkinchi darajali domen nomi (kengaytmasiz)Ha
transfer_tldDomen kengaytmasi (nuqtasi bilan)Ha
transfer_codeTransfer avtorizatsiya kodi (EPP/AUTH kodi)Ha

10. Domen muddatini yangilash

POST /api/client/servicedomain/update_period

Domenning ro'yxatdan o'tish muddatini o'zgartiradi.

So'rov tanasi:

{
  "domain_id": "16",
  "period": 2
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Invalid period value",
    "code": 9999
  }
}
ParametrTashxilMajburiy
domain_idDomen identifikatoriHa
periodYangi ro'yxatdan o'tish muddati (yillarda)Ha

11. NS serverlarini o'rnatish

POST /api/client/servicedomain/set_nameserver

Domen uchun nom serverlarini sozlaydi.

So'rov tanasi:

{
  "ns1": {
    "address": "ns1.newprovider.com",
    "ip": "203.0.113.1"
  },
  "ns2": {
    "address": "ns2.newprovider.com",
    "ip": "203.0.113.2"
  },
  "ns3": {
    "address": "ns3.newprovider.com",
    "ip": "203.0.113.3"
  },
  "ns4": {
    "address": "",
    "ip": ""
  },
  "ns5": {
    "address": "",
    "ip": ""
  },
  "domain_id": 90
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xato javobi namunasi:

{
  "result": null,
  "error": {
    "message": "Invalid nameserver format",
    "code": 9999
  }
}

Izoh: NS-serverlarni (ns1-ns10) ko'rsatish mumkin. IP-manzillar ko'pgina domen zonalarida majburiy emas, ammo ba'zi maxsus TLDlar uchun talab qilinishi mumkin.

ParametrTashxilMajburiy
ns1-ns10NS-serverlar ma'lumotlarini o'z ichiga olgan obyektlarns1-ns2 majburiy
ns*.addressNS-server nomiHa (ko'rsatilgan serverlar uchun)
ns*.ipNS-server IP-manziliYo'q
domain_idDomen identifikatoriHa

12. WHOIS ma'lumotlarini yashirish

POST /api/client/servicedomain/hide_whois

WHOIS'dagi shaxsiy ma'lumotlarni himoyalashni yoqadi (Privacy Protection).

So‘rov tanasi:

{
  "domain_id": 90
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xatolik holatidagi javob namunasi:

{
  "result": null,
  "error": {
    "message": "Domain topilmadi",
    "code": 9999
  }
}
ParametrTavsifMajburiy
domain_idDomen identifikatoriHa

13. WHOIS ma'lumotlarini ko‘rsatish

POST /api/client/servicedomain/show_whois

WHOIS'dagi shaxsiy ma'lumotlarni himoyalashni o‘chiradi (Privacy Protection).

So‘rov tanasi:

{
  "domain_id": 90
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xatolik holatidagi javob namunasi:

{
  "result": null,
  "error": {
    "message": "Domain topilmadi",
    "code": 9999
  }
}
ParametrTavsifMajburiy
domain_idDomen identifikatoriHa

14. Domenni bloklash

POST /api/client/servicedomain/lock

Domenni boshqa registratorga o‘tkazishni bloklaydi (clientTransferProhibited holatini o‘rnatadi).

So‘rov tanasi:

{
  "domain_id": 90
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xatolik holatidagi javob namunasi:

{
  "result": null,
  "error": {
    "message": "Domain topilmadi",
    "code": 9999
  }
}
ParametrTavsifMajburiy
domain_idDomen identifikatoriHa

15. Domenni blokdan chiqarish

POST /api/client/servicedomain/unlock

Domenni boshqa registratorga o‘tkazish uchun blokdan chiqaradi (clientTransferProhibited holatini olib tashlaydi).

So‘rov tanasi:

{
  "domain_id": 90
}

Muvaffaqiyatli javob namunasi:

{
  "result": true,
  "error": null
}

Xatolik holatidagi javob namunasi:

{
  "result": null,
  "error": {
    "message": "Domain topilmadi",
    "code": 9999
  }
}
ParametrTavsifMajburiy
domain_idDomen identifikatoriHa

16. Umumiy balansni olish

GET /api/client/client/balance_get_total

Mijozning joriy balansi haqidagi ma’lumotni oladi.

So‘rov tanasi talab qilinmaydi

Muvaffaqiyatli javob namunasi:

{
  "result": 1250.50,
  "error": null
}

Xatolik holatidagi javob namunasi:

{
  "result": null,
  "error": {
    "message": "Autentifikatsiya amalga oshmadi",
    "code": 9999
  }
}

Xatolik kodlari va javoblarni qayta ishlash

Barcha API metodlari quyidagi tuzilishga ega bo‘lgan JSON formatidagi javobni qaytaradi:

{
  "result": [javob ma’lumoti yoki muvaffaqiyatda true],
  "error": null
}

Xatolik yuz bersa, result maydoni null bo‘ladi, error esa xatolik haqidagi ma’lumotni o‘z ichiga oladi:

{
  "result": null,
  "error": {
    "message": "Xatolik xabari matni",
    "code": 9999
  }
}

Eslatma: Ushbu hujjatda umumiy 9999 xatolik kodi ishlatilgan. Haqiqiy API javoblarida har bir xatolik uchun alohida noyob kod bo‘ladi, bu muammoning aniq sababini aniqlashga yordam beradi.

Autentifikatsiya

API'ga kirish uchun autentifikatsiyadan foydalanish kerak. Ushbu hujjatda autentifikatsiya usuli ko‘rsatilmagan, ammo odatda quyidagi usullardan biri ishlatiladi:

  • So‘rov sarlavhasida API kaliti
  • HTTP bazaviy autentifikatsiya
  • OAuth 2.0 kirish tokeni

Muhim: API'dan foydalanishni boshlashdan oldin, autentifikatsiya qilish uchun kerakli ma’lumotlarni texnik yordam xizmatidan yoki akkaunt boshqaruv paneli orqali olish kerak.

Cheklovlar va tavsiyalar

  • Har daqiqada 100 ta so‘rovdan oshmaslik tavsiya etiladi.
  • Barcha so‘rovlar va javoblar UTF-8 kodlashidan foydalanishi kerak.
  • Sanalar "YYYY-MM-DD HH:MM:SS" formatida va UTC vaqt mintaqasida bo‘ladi.
  • Domen va kontakt shablon identifikatorlari faqat raqamlardan iborat bo‘lsa ham, matn sifatida uzatilishi kerak.