Orax Orax
Kirish
REST · OAuth 2.0 · v1

Dasturchilar uchun API

Hosting, domenlar, monitoring va hamyonni oʻz kodingizdan boshqaring. REST, OAuth 2.0, oldindan bashorat qilinadigan javoblar.

205
endpoint
11
tokensiz
13
ruxsat turi
17
boʻlim

Bir daqiqada boshlang

Birinchi soʻrov hozir ishlaydi — roʻyxatdan oʻtish shart emas.

1. Ochiq maʼlumotlar

Nusxalang va ishga tushiring — haqiqiy domen narxlari qaytadi.

curl https://orax.uz/api/v1/domains/tlds

2. Shaxsiy maʼlumotlar

OAuth 2.0 orqali token oling va oʻz akkauntingizga murojaat qiling.

curl https://orax.uz/api/v1/services \
  -H "Authorization: Bearer <access_token>"

API nimalarni qamrab oladi

Boʻlimlar va operatsiyalar soni maʼlumotnomaning oʻzidan olinadi — bu roʻyxat haqiqatdan ajralib qololmaydi.

Avtorizatsiya

OAuth 2.0, authorization code. Mobil ilova va SPA uchun PKCE majburiy — ularga client secret joylash mumkin emas.

0. Ilovangizni roʻyxatdan oʻtkazing

client_id oling va redirect URI ni koʻrsating. Bu qadamsiz keyingi ikkitasini bajarib boʻlmaydi.

Ilovani roʻyxatdan oʻtkazish

1. Foydalanuvchini rozilik sahifasiga yuboring

U qanday ruxsat soʻrayotganingizni koʻradi va redirect_uri ga ?code=… bilan qaytadi.

https://orax.uz/oauth/authorize
  ?client_id=<client_id>
  &redirect_uri=https://your.app/callback
  &response_type=code
  &scope=profile services:read monitors:read
  &state=<random>
  &code_challenge=<base64url(sha256(verifier))>
  &code_challenge_method=S256

2. Kodni tokenga almashtiring

Javobda access token (15 kun) va refresh token (30 kun) keladi.

curl -X POST https://orax.uz/oauth/token \
  -d grant_type=authorization_code \
  -d client_id=<client_id> \
  -d redirect_uri=https://your.app/callback \
  -d code_verifier=<verifier> \
  -d code=<code_from_redirect>
{
  "token_type": "Bearer",
  "expires_in": 1296000,
  "access_token": "eyJ0eXAiOiJKV1Qi...",
  "refresh_token": "def50200a1b2c3..."
}

3. Foydalanuvchini bezovta qilmay yangilang

Oʻsha manzilga grant_type=refresh_token. Ruxsatlar rozilik paytida beriladi — token foydalanuvchi tasdiqlamagan huquqni ololmaydi.

Ruxsatlar

Eng kamini soʻrang: aptaym paneliga monitors:read yetarli, pulga tegishli huquq kerak emas.

profileRead your Orax profile
services:readView your services
services:writeManage your services (domains, databases, FTP)
orders:readView your orders
orders:writeCreate and pay orders on your behalf
wallet:readView your wallet balance and transactions
wallet:writeTop up your wallet
ai:readView AI agent settings, conversations and project insights
ai:writeRun the AI agent and change its settings, files and insights
domains:readView your domain registrations
domains:writeRegister domains on your behalf (charges your wallet)
monitors:readView your uptime monitors and their history
monitors:writeCreate and manage your uptime monitors

Roʻyxat avtorizatsiya serverining oʻzidan oʻqiladi. Maʼmuriy huquqlar uchinchi tomonga berilmaydi.

Kelishuvlar

Barcha endpointlarda bir xil qoidalar — bir marta oʻrgansangiz yetadi.

Qumsalon

Ilovani qumsalon deb belgilash mumkin: uning tokenlari ruxsat berilgan hamma narsani oʻqiydi, har qanday yozuv esa error=sandbox_read_only bilan rad etiladi. Sozlash paytida hech narsa sotib olinmaydi.

Pul — tiyinlarda

Billing doim USD da, summalar butun minor birliklarda (usd_cents). Boshqa valyutalar faqat koʻrsatish uchun.

Roʻyxatlar

Doim data va meta: page, per_page, total, last_page. per_page 50 bilan cheklangan.

Xatolar

error — barqaror mashina kodi, message — odam uchun tarjima matn. message emas, error boʻyicha shart yozing.

Til

Ochiq endpointlarda ?lang=uz|ru|en tarjima maydonlarini obyekt emas, bitta satr qilib qaytaradi.

Idempotency-Key

Pul harakatlantiradigan soʻrovlar uchun sarlavha. 24 soat ichida oʻsha kalit bilan takror soʻrov ikkinchi marta yechmaydi.

Boʻlimlarni oʻchirish mumkin

Oʻchirilgan boʻlim API da ham 404 qaytaradi. Joriy roʻyxat GET /api/v1/me da keladi — ilova xato koʻrsatmay, tabni yashiradi.

Roʻyxatli javob

{
  "data": [ { "id": 12, "label": "Start", "status": "active" } ],
  "meta": { "page": 1, "per_page": 20, "total": 43, "last_page": 3 }
}

Xatoli javob

{
  "error": "insufficient_funds",
  "message": "На балансе недостаточно средств."
}

Xavfsiz takrorlash

Aloqa uzilsa, soʻrovni oʻsha kalit bilan takrorlang — ikkinchi yechim boʻlmaydi.

curl -X POST https://orax.uz/api/v1/orders \
  -H "Authorization: Bearer <access_token>" \
  -H "Idempotency-Key: 8f14e45f-ea0b-4c1e-9f2d-71c0a3d9b201" \
  -H "Content-Type: application/json" \
  -d '{"plan_id": 7, "domain": "example.uz"}'

Javob kodlari

Amalda ishlov berish kerak boʻlganlari.

  • 200 / 201muvaffaqiyat; yaratishda 201
  • 401token yoʻq yoki muddati oʻtgan
  • 403tokenda kerakli ruxsat yoʻq
  • 404topilmadi yoki boʻlim oʻchirilgan
  • 409shu Idempotency-Key bilan soʻrov allaqachon bajarilmoqda
  • 422validatsiya yoki biznes-qoida rad etdi
  • 429chastota chegarasi oshib ketdi

Chegaralar: asosiy API uchun daqiqasiga 90 soʻrov, reseller API uchun 60, WHOIS tekshiruvi uchun 20.

Ochiq maʼlumotlar

Tokensiz va roʻyxatdan oʻtmasdan.

  • GET /api/v1/domains/tldsDomen zonalari narxlari
  • GET /api/v1/domains/check?domain=WHOIS orqali domen bandligini tekshirish
  • GET /api/v1/kbBilimlar bazasi
  • GET /api/v1/blogBlog maqolalari
  • GET /api/v1/reviewsSharhlar va oʻrtacha baho
  • GET /api/v1/glossaryHosting atamalari lugʻati
  • GET /api/v1/templatesDemo bilan sayt shablonlari
  • GET /api/v1/currenciesValyutalar va dollarga kurs
  • GET /api/v1/statusPlatforma holati va insidentlar

Sizning akkauntingiz

Kerakli ruxsatli OAuth 2.0 token.

  • GET /api/v1/meprofile · Profil, til, valyuta, mavjud boʻlimlar
  • GET /api/v1/servicesservices:read · Xizmatlaringiz va ularning holati
  • GET /api/v1/services/{id}/uptimeservices:read · Aptaym, uzilishlar va kompensatsiya hisobi
  • GET /api/v1/services/{id}/securityservices:read · Xizmatning xavfsizlik bahosi
  • POST /api/v1/domainsdomains:write · Domen roʻyxatdan oʻtkazish
  • GET /api/v1/monitorsmonitors:read · Ishlash monitorlari
  • POST /api/v1/ordersorders:write · Buyurtma yaratish va toʻlash
  • GET /api/v1/walletwallet:read · Balans va operatsiyalar tarixi

Faqat REST emas

Oddiy REST yetmaydigan holatlar uchun uchta alohida kontur.

Reseller API va vebhuklar

Alohida kalit (rsk_…), ulgurji narxlar va oʻz client_ref ingiz bilan provizioning. Xizmat hodisalari imzolangan vebhuk orqali keladi — imzoni tekshiring, aks holda sizga istalgan odam yozishi mumkin.

X-Orax-Signature imzosini tekshirish

$body = file_get_contents('php://input');
$expected = hash_hmac('sha256', $body, $yourWebhookSecret);

if (! hash_equals($expected, $_SERVER['HTTP_X_ORAX_SIGNATURE'] ?? '')) {
    http_response_code(403); exit;
}

$event = json_decode($body, true); // service.provisioned | .suspended | .terminated ...

AI-agentlar uchun MCP

Model Context Protocol boʻyicha JSON-RPC 2.0: agent oʻz tokeni ruxsatlariga qarab filtrlangan asboblar roʻyxatini oladi. Birinchi versiya faqat oʻqish uchun — pul va buzuvchi amallar odam qoʻlida qoladi.

Ulanish manzili

https://orax.uz/api/v1/mcp

Mijoz sizni qayerga avtorizatsiyaga yuborishni oʻzi topadi: biz OAuth aniqlash hujjatlarini chop etamiz, tokensiz rad javobi esa ularni sarlavhada koʻrsatadi. Alohida kalit berish shart emas.

Claude Code

claude mcp add --transport http orax https://orax.uz/api/v1/mcp

VS Code

// .vscode/mcp.json
{
  "servers": {
    "orax": { "type": "http", "url": "https://orax.uz/api/v1/mcp" }
  }
}

Orax kengaytmasini oʻrnatish shart emas: ikkala mijoz ham MCP ni oʻzi tushunadi. Bitta manzil — va muharrir hisobingizni koʻradi.

curl -X POST https://orax.uz/api/v1/mcp \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Mijozni qoʻlda sozlash kerak: dinamik registratsiyani (RFC 7591) qoʻllab-quvvatlamaymiz, shuning uchun baʼzi ilovalardagi «bir bosishda qoʻshish» tugmasi ishlamaydi. Qoʻlda kiritilgan manzil hamma joyda ishlaydi.

Hamkorlarga: barcha mijozlar birdan

Hamkorlar uchun alohida manzil — oʻzingizdagi rsk_… kaliti bilan, OAuth kerak emas. Agent barcha mijozlaringiz xizmatlarini birga koʻradi: mijoz belgisi, holati yoki tugash sanasi boʻyicha filtrlash mumkin, va har bir satr yangilanish oʻzi qoplanadimi deb aytadi.

https://orax.uz/api/v1/reseller/mcp

Kataloglar uchun manifest — undagi asboblar roʻyxati serverning oʻzidan generatsiya qilinadi, shuning uchun eskirmaydi:

https://orax.uz/.well-known/mcp/server.json

Joylash uchun bloklar

Aptaym belgisi oddiy rasm: tokensiz va CORS muammosiz. Shablon demosi qumsalonda beriladi, uni iframe ga qoʻyish xavfsiz.

<!-- aptaym belgisi -->
<img src="https://orax.uz/badge/<token>" alt="uptime">

<!-- shablonning jonli demosi -->
<iframe src="https://orax.uz/templates/12/preview" loading="lazy"></iframe>

API qanday ishlaydi

Ruxsatlar alohida

Aptaym paneliga faqat monitorlarni oʻqish huquqini bering — u domenlarga pul sarflay olmaydi.

Sirlar berilmaydi

Server, FTP va maʼlumotlar bazasi parollari API da umuman yoʻq. Oʻqish tokeni mashinangizda root boʻlmaydi.

Pul himoyalangan

Xaridlar Idempotency-Key ni qabul qiladi: takroriy soʻrov ikki marta yechmaydi.

Bashorat qilinadigan javoblar

Roʻyxatlarda doim data va meta boʻladi, rad javoblari tarjima matni emas, barqaror xato kodini qaytaradi.

Versiyalar va moslik

Versiya manzilda: /api/v1. v1 ichida biz endpoint va javoblarga yangi maydon qoʻshishimiz mumkin — kodingiz notanish maydonlarga bardosh berishi kerak. Maydonni oʻchirish, nomini yoki maʼnosini oʻzgartirish yangi versiyani talab qiladi, jimgina oʻzgarish emas.

Ulanishga tayyormisiz?

Barcha endpointlar, sxemalar va javob kodlari OpenAPI maʼlumotnomasida.