API maʼlumotnomasi
AY-Robots REST API'si https://www.ay-robots.com/api manzilida joylashgan va ikkala yoʻnalishda ham JSON bilan gaplashadi. Bu sahifa autentifikatsiyani, javob konventsiyalarini va har bir endpointni, dasturiy chaqirishingiz eng ehtimolli marshrutlar uchun toʻliq parametr hujjatlari bilan yoritadi.
Oxirgi yangilangan 2026-08-09
Autentifikatsiya
Ochiq boʻlim ostida sanalmagan boʻlsa, har bir endpoint autentifikatsiyani talab qiladi. API ikki turdagi hisob maʼlumotini qabul qiladi, ikkalasi ham bir xil yoʻl bilan keladi: yo boshqaruv paneli allaqachon yuboradigan sessiya cookie sifatida, yoki Bearer tokeni bilan Authorization sarlavhasi sifatida.
| Usul | Qanday ishlaydi | Nima uchun mos |
|---|---|---|
| Brauzer sessiyasi | Tizimga kirgan hisobingizning Supabase sessiya tokeni, cookie yoki Bearer token sifatida yuborilgan | Boshqaruv panelining oʻzi va autentifikatsiyalangan brauzer kontekstidan tezkor tajribalar |
| API-kalit | /dashboard/settings da yaratilgan va Bearer token sifatida yuboriladigan ayr_live_ prefiksli kalit | Skriptlar, serverlar, CI va brauzer kirishiga bogʻliq boʻlmasligi kerak boʻlgan hamma narsa |
| MCP | https://www.ay-robots.com/api/mcp dagi hostlangan MCP server (Streamable HTTP) | Model Context Protocol'da gaplashadigan LLM agentlari va vositalar |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API-kalitlar /dashboard/settings da yaratiladi va bekor qilinadi. Ularni parol kabi koʻring: serverda saqlang va avval yangi kalitni yaratib, keyin eskisini bekor qilib rotatsiya qiling. Desktop CLI dan foydalansangiz, u platformani ay-robots mcp buyrugʻi bilan mahalliy MCP server sifatida ham taqdim eta oladi.
Javoblar JSON koʻrinishida. Xatolar izchil shaklga ega: inson oʻqiy oladigan xabar bilan bitta error maydonli JSON obyekti, mos 4xx yoki 5xx status kodi bilan yetkaziladi. Muvaffaqiyatli javoblar resursni toʻgʻridan-toʻgʻri qaytaradi; bir nechta endpointlar roʻyxatlarni nomlangan maydonga oʻraydi, quyidagi misollar bu muhim boʻlgan joylarda koʻrsatadi.
Auth endpointlari
Hisob va profil bilan bogʻliq ishlar. Bu endpointlardan asosan boshqaruv panelining oʻzi foydalanadi, lekin ular har qanday amaldagi hisob maʼlumoti bilan ishlaydi.
/api/auth/profileBearer sessiya-tokeni yoki API-kalitAutentifikatsiyadan oʻtgan foydalanuvchining profilini qaytaradi.
/api/auth/profileBearer sessiya-tokeni yoki API-kalitKoʻrsatiladigan nom va bildirishnoma sozlamalari kabi profil maydonlarini yangilaydi.
/api/auth/syncBearer sessiya-tokeniSupabase auth foydalanuvchisini platforma foydalanuvchi yozuvi bilan sinxronlashtiradi.
/api/auth/check-onboardingBearer sessiya-tokeniAutentifikatsiyadan oʻtgan foydalanuvchi onboardingni tugatganini bildiradi.
/api/auth/avatarBearer sessiya-tokeniAutentifikatsiyadan oʻtgan foydalanuvchi uchun yangi avatar rasmini yuklaydi.
Mijoz endpointlari
Robot egasi boshqaradigan hamma narsa: roʻyxatga olingan robotlar, mijoz profili, datasetlar, hisob-fakturalar va boshqaruv paneli statistikasi.
/api/client/robotsBearer sessiya-tokeni yoki API-kalit (mijoz roli)Autentifikatsiyadan oʻtgan mijoz roʻyxatga olgan robotlarni, eng yangisi birinchi boʻlib, 50 tagacha yozuvni sanaydi. Vaqt belgilari ISO 8601; robot bir marta ulanmaguncha last_online va last_heartbeat null boʻladi.
curl https://www.ay-robots.com/api/client/robots \
-H 'Authorization: Bearer ayr_live_your_key_here'[
{
"id": "1f9f4c1e-7f2a-4b7e-9a45-0f4d2b6c8a11",
"name": "Lab SO-100",
"robot_type": "SO-100",
"status": "AVAILABLE",
"control_url": "wss://robots.example.com/so100/control",
"stream_url": "https://robots.example.com/so100/stream",
"hardware_id": "board:local:usb-1",
"last_online": "2026-08-09T10:12:00.000Z",
"last_heartbeat": "2026-08-09T10:12:00.000Z",
"total_hours": 12.5,
"tags": ["lab"],
"notes": null,
"created_at": "2026-07-01T09:00:00.000Z"
}
]/api/client/robotsBearer sessiya-tokeni yoki API-kalit (mijoz roli)Yangi robotni roʻyxatga oladi va uning id sini qaytaradi. Motor plata uskuna id si faqat bitta robotga tegishli boʻlishi mumkin; toʻqnashuv 409 statusi bilan rad etiladi.
/api/client/profileBearer sessiya-tokeni yoki API-kalit (mijoz roli)Autentifikatsiyadan oʻtgan foydalanuvchining mijoz profilini qaytaradi.
/api/client/profileBearer sessiya-tokeni yoki API-kalit (mijoz roli)Mijoz profili maydonlarini yangilaydi.
/api/client/datasetsBearer sessiya-tokeni yoki API-kalit (mijoz roli)Mijozning bulutli datasetlarini epizod soni va hajmi bilan sanaydi.
/api/client/invoicesBearer sessiya-tokeni yoki API-kalit (mijoz roli)Mijozning oylik hisob-fakturalarini sanaydi.
/api/client/statsBearer sessiya-tokeni yoki API-kalit (mijoz roli)Mijoz boshqaruv paneli uchun foydalanish statistikasini qaytaradi.
Operator endpointlari
Operator tomoni: profil va mavjudlik, sertifikatlar, jadval tuzish va daromad statistikasi.
/api/operator/profileBearer sessiya-tokeni yoki API-kalit (operator roli)Autentifikatsiyadan oʻtgan foydalanuvchining operator profilini qaytaradi.
/api/operator/profileBearer sessiya-tokeni yoki API-kalit (operator roli)Operator profilini yaratadi yoki yangilaydi.
/api/operator/available-robotsBearer sessiya-tokeni yoki API-kalit (operator roli)Hozir mavjud boʻlgan va operatorning sertifikatlariga mos keladigan robotlarni sanaydi.
/api/operator/certificationsBearer sessiya-tokeni yoki API-kalit (operator roli)Operatorning sertifikat soʻrovlari va ularning holatini sanaydi.
/api/operator/certificationsBearer sessiya-tokeni yoki API-kalit (operator roli)Robot turi uchun sertifikat soʻraydi.
/api/operator/scheduleBearer sessiya-tokeni yoki API-kalit (operator roli)Operatorning haftalik mavjudlik jadvalini qaytaradi.
/api/operator/scheduleBearer sessiya-tokeni yoki API-kalit (operator roli)Haftalik mavjudlik jadvalini yangilaydi.
/api/operator/availabilityBearer sessiya-tokeni yoki API-kalit (operator roli)Operatorning joriy mavjudligini qaytaradi.
/api/operator/statsBearer sessiya-tokeni yoki API-kalit (operator roli)Operator boshqaruv paneli uchun daromad va sessiya statistikasini qaytaradi.
Sessiyalar
Sessiyalar platformaning asosiy resursi: bitta sessiya operator va robot orasidagi uzluksiz teleoperatsiya faoliyatining bitta davri. Sessiya statusi PENDING, ACTIVE, PAUSED, COMPLETED va CANCELLED boʻylab harakatlanadi.
/api/sessionsBearer sessiya-tokeni yoki API-kalitAutentifikatsiyadan oʻtgan foydalanuvchi uchun sessiyalarni sanaydi. Operatorlar oʻzlari boshqargan sessiyalarni koʻradi; mijozlar oʻz robotlaridagi sessiyalarni koʻradi. Ikkala koʻrinish orasida maydon toʻplami biroz farq qiladi: mijoz koʻrinishi episodes_collected va data_collected_mb ni oʻz ichiga oladi, operator koʻrinishi esa operator_earnings_cents ni.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Ixtiyoriy. Sessiya statusi boʻyicha filtrlaydi, masalan ACTIVE yoki COMPLETED. Hammasini sanash uchun tashlab keting. |
| limit | query | number | Ixtiyoriy. Sahifa hajmi, standart 50, maksimum 100. |
| offset | query | number | Ixtiyoriy. Sahifalash siljishi, standart 0. |
curl 'https://www.ay-robots.com/api/sessions?status=COMPLETED&limit=10' \
-H 'Authorization: Bearer ayr_live_your_key_here'{
"sessions": [
{
"id": "6b0d2c9a-53f1-4f6e-8f1a-2c9d4e7b5a30",
"status": "COMPLETED",
"started_at": "2026-08-08T14:00:12.000Z",
"ended_at": "2026-08-08T14:47:31.000Z",
"duration_minutes": 47,
"client_charge_cents": 1175,
"episodes_collected": 23,
"data_collected_mb": 210.4,
"rating": 5,
"created_at": "2026-08-08T13:59:58.000Z",
"robot_id": "1f9f4c1e-7f2a-4b7e-9a45-0f4d2b6c8a11",
"robot_name": "Lab SO-100",
"robot_type": "SO-100",
"operator_name": "Jane D."
}
]
}/api/sessionsBearer sessiya-tokeni yoki API-kalit (operator roli)Mavjud robotda teleoperatsiya sessiyasini boshlaydi. Operator rolini talab qiladi: mijozlar sessiya boshlay olmaydi. Operator bir vaqtda koʻpi bilan bitta ACTIVE yoki PAUSED sessiyani ushlab tura oladi, robot esa hozir AVAILABLE statusiga ega boʻlishi kerak. Darhol boshlanganda robot IN_SESSION ga oʻtadi va mijozga xabar beriladi.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Majburiy. Boshqariladigan robotning id si. Robot AVAILABLE boʻlishi kerak. |
| operatorId | body | string | Ixtiyoriy. Aniq operator id si; standart holatda autentifikatsiyadan oʻtgan operator. |
| scheduledFor | body | string (ISO 8601) | Ixtiyoriy. Sessiyani darhol boshlash oʻrniga kelajakdagi vaqtga rejalashtiradi. |
curl -X POST https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here' \
-H 'Content-Type: application/json' \
-d '{"robotId": "1f9f4c1e-7f2a-4b7e-9a45-0f4d2b6c8a11"}'{
"sessionId": "6b0d2c9a-53f1-4f6e-8f1a-2c9d4e7b5a30",
"status": "ACTIVE"
}/api/sessions/[id]Bearer sessiya-tokeni yoki API-kalitBitta sessiyani uning tafsilotlari bilan qaytaradi.
/api/sessions/[id]Bearer sessiya-tokeni yoki API-kalitSessiya hayot aylanishini yangilaydi: pauza, davom ettirish, tugatish va tegishli amallar.
/api/sessions/[id]/extendBearer sessiya-tokeni yoki API-kalit (mijoz, sessiya egasi)Sessiya uzaytirishini soʻraydi. Faqat sessiya egasi boʻlgan mijoz ushbu endpointni chaqira oladi, sessiya esa ACTIVE boʻlishi kerak. Soʻrov sessiya hodisasi sifatida qayd etiladi va operator bildirishnoma oladi; uzaytirishning oʻzi operator unga javob berganda sodir boʻladi.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Sessiya id si. |
| additionalMinutes | body | number | Soʻralgan uzaytirish uzunligi, daqiqalarda. |
curl -X POST https://www.ay-robots.com/api/sessions/6b0d2c9a-53f1-4f6e-8f1a-2c9d4e7b5a30/extend \
-H 'Authorization: Bearer ayr_live_your_key_here' \
-H 'Content-Type: application/json' \
-d '{"additionalMinutes": 30}'{
"message": "Extension request sent to operator"
}/api/sessions/[id]/messagesBearer sessiya-tokeni yoki API-kalitSessiyaning chat xabarlarini sanaydi.
/api/sessions/[id]/messagesBearer sessiya-tokeni yoki API-kalitSessiyada chat xabarini yuboradi.
/api/sessions/[id]/rateBearer sessiya-tokeni yoki API-kalit (mijoz)Tugallangan sessiyani 1 dan 5 yulduzgacha shkalada, ixtiyoriy izoh bilan baholaydi.
/api/sessions/exportBearer sessiya-tokeni yoki API-kalitSessiya maʼlumotini eksport qiladi.
Toʻlovlar
Barcha pul harakati Stripe orqali amalga oshadi. Mijoz hisob-kitobi saqlangan toʻlov usuliga ega Stripe mijozidan foydalanadi, operator toʻlovlari esa Stripe Connect orqali oʻtadi. Platformaning oʻzi hech qachon karta yoki bank maʼlumotini saqlamaydi.
/api/stripe/customerBearer sessiya-tokeni (mijoz roli)Mijoz hisob-kitobi uchun ishlatiladigan Stripe mijozini yaratadi yoki qaytaradi.
/api/stripe/connectBearer sessiya-tokeni (operator roli)Operatorning Stripe Connect hisobi holatini qaytaradi.
/api/stripe/connectBearer sessiya-tokeni (operator roli)Operator toʻlovlari uchun Stripe Connect onboardingini boshlaydi.
/api/stripe/setup-intentBearer sessiya-tokeni (mijoz roli)Toʻlov usulini saqlash uchun Stripe SetupIntent yaratadi.
/api/stripe/portalBearer sessiya-tokeni (mijoz roli)Toʻlov usullari va hisob-fakturalarni boshqarish uchun Stripe billing portal sessiyasini yaratadi.
/api/stripe/payoutBearer sessiya-tokeni (operator roli)Autentifikatsiyadan oʻtgan operator uchun toʻlov maʼlumotini qaytaradi.
/api/stripe/payoutBearer sessiya-tokeni (operator roli)Yigʻilgan daromadning toʻlovini soʻraydi. Minimal toʻlov 10,00 EUR.
/api/stripe/webhookStripe webhook imzosiStripe webhook hodisalarini qabul qiladi. API klientlari emas, Stripe tomonidan chaqiriladi.
Ochiq endpointlar
Bu endpointlar hech qanday autentifikatsiya talab qilmaydi. Ularni monitoring, marketing sahifalari yoki status tekshiruvidan xavfsiz chaqirish mumkin.
/api/healthAPI va uning maʼlumotlar bazasi ulanishi uchun health-check. Ikkalasi ham yaxshi boʻlsa 200 qaytaradi; maʼlumotlar bazasi tekshiruvi muvaffaqiyatsiz boʻlsa, xuddi shu tuzilma status va db ni error ga oʻrnatilgan holda va HTTP status 503 bilan qaytariladi.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Qoʻllab-quvvatlanadigan robot modeli haqida ochiq maʼlumotni qaytaradi.
/api/public/pricingJoriy ochiq narx rejalarini qaytaradi.
/api/contactKontakt forma xabarini yuboradi. Xabar avval saqlanadi, keyin email orqali yetkaziladi, shuning uchun vaqtinchalik mail uzilishi uni yoʻqotmaydi: bunday holatda javob stored true va delivered false ni bildiradi, yetkazish esa operativ ravishda qayta urinib koʻriladi.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Majburiy. Ismingiz. |
| body | string | Majburiy. Javob uchun amaldagi email manzili. | |
| category | body | string | Majburiy. Quyidagilardan biri: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Majburiy. Qisqa mavzu qatori. |
| message | body | string | Majburiy. Xabar matni. |
curl -X POST https://www.ay-robots.com/api/contact \
-H 'Content-Type: application/json' \
-d '{
"name": "Jane Doe",
"email": "jane@example.com",
"category": "Technical Support",
"subject": "SO-100 pairing question",
"message": "My arm shows as offline after pairing."
}'{
"success": true,
"message": "Message sent successfully",
"id": "b1f2c3d4-0000-0000-0000-000000000000",
"stored": true,
"delivered": true
}/api/robot-requestPlatformada hali boʻlmagan robot turi uchun qoʻllab-quvvatlashni soʻraydi.
/api/statsOchiq platforma statistikasini qaytaradi.
AY-Robots hisoblar va jonli robot boshqaruvini qanday himoya qiladi: Supabase autentifikatsiyasi, rol modeli, API-kalitlar, sessiya himoyasi, audit izi va shifrlash.
Sessiya hayot aylanishi: PENDING dan COMPLETED gacha, faollik hodisalari, sessiya chati, baholar, uzaytirish va trening maʼlumoti.