API حوالہ
AY-Robots REST API https://www.ay-robots.com/api کے تحت موجود ہے اور دونوں سمتوں میں JSON بولتا ہے۔ یہ صفحہ آتھینٹیکیشن، رسپانس کنونشنز، اور ہر اینڈ پوائنٹ دستاویز کرتا ہے، ان روٹس کے لیے مکمل پیرامیٹر دستاویزات کے ساتھ جنہیں آپ پروگرامیٹک طور پر کال کرنے کا سب سے زیادہ امکان رکھتے ہیں۔
آخری اپڈیٹ 2026-08-09
آتھینٹیکیشن
ہر اینڈ پوائنٹ کو آتھینٹیکیشن درکار ہے جب تک کہ یہ Public سیکشن میں درج نہ ہو۔ API دو قسم کے کریڈینشلز قبول کرتا ہے، اور دونوں ایک ہی طریقے سے آتے ہیں: یا تو وہ سیشن کوکی جو ڈیش بورڈ پہلے سے بھیجتا ہے، یا Bearer ٹوکن کے ساتھ ایک Authorization ہیڈر۔
| طریقہ | یہ کیسے کام کرتا ہے | اسے استعمال کریں |
|---|---|---|
| براؤزر سیشن | آپ کے لاگ ان اکاؤنٹ کا Supabase سیشن ٹوکن، کوکی یا Bearer ٹوکن کے طور پر بھیجا جاتا ہے | خود ڈیش بورڈ اور آتھینٹیکیٹڈ براؤزر کنٹیکسٹ سے فوری تجربات |
| API کی | ayr_live_ پریفکس والی ایک کی، /dashboard/settings میں بنائی گئی اور Bearer ٹوکن کے طور پر بھیجی گئی | اسکرپٹس، سرورز، CI، اور کوئی بھی چیز جسے براؤزر لاگ ان پر منحصر نہیں ہونا چاہیے |
| MCP | https://www.ay-robots.com/api/mcp پر ہوسٹڈ MCP سرور (Streamable HTTP) | LLM ایجنٹس اور ٹولز جو Model Context Protocol بولتے ہیں |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API کیز /dashboard/settings میں بنائی اور منسوخ کی جاتی ہیں۔ انہیں پاسورڈز کی طرح برتیں: سرور سائیڈ پر رکھیں، اور پرانی کو منسوخ کرنے سے پہلے ایک متبادل کی بنا کر روٹیٹ کریں۔ اگر آپ ڈیسک ٹاپ CLI استعمال کرتے ہیں، تو یہ پلیٹ فارم کو اس کمانڈ سے ایک مقامی MCP سرور کے طور پر بھی ظاہر کر سکتا ہے: ay-robots mcp۔
رسپانسز JSON ہوتے ہیں۔ ایررز ایک مستقل شکل استعمال کرتے ہیں: ایک قابل مطالعہ پیغام رکھنے والا ایک واحد error فیلڈ والا JSON آبجیکٹ، مناسب 4xx یا 5xx اسٹیٹس کوڈ کے ساتھ دیا جاتا ہے۔ کامیاب رسپانسز براہ راست ریسورس واپس کرتے ہیں؛ کچھ اینڈ پوائنٹس فہرستوں کو ایک نامزد فیلڈ میں لپیٹتے ہیں، جو نیچے دی گئی مثالیں جہاں اہم ہے وہاں دکھاتی ہیں۔
Auth اینڈ پوائنٹس
اکاؤنٹ اور پروفائل کی بنیادی کارروائیاں۔ یہ بنیادی طور پر خود ڈیش بورڈ استعمال کرتا ہے، لیکن یہ کسی بھی درست کریڈینشل کے ساتھ کام کرتے ہیں۔
/api/auth/profileBearer سیشن ٹوکن یا API کیآتھینٹیکیٹڈ صارف کا پروفائل واپس کرتا ہے۔
/api/auth/profileBearer سیشن ٹوکن یا API کیڈسپلے نام اور نوٹیفیکیشن ترجیحات جیسے پروفائل فیلڈز اپڈیٹ کرتا ہے۔
/api/auth/syncBearer سیشن ٹوکنSupabase auth صارف کو پلیٹ فارم یوزر ریکارڈ کے ساتھ ہم آہنگ کرتا ہے۔
/api/auth/check-onboardingBearer سیشن ٹوکنرپورٹ کرتا ہے کہ آیا آتھینٹیکیٹڈ صارف نے اونبورڈنگ مکمل کر لی ہے۔
/api/auth/avatarBearer سیشن ٹوکنآتھینٹیکیٹڈ صارف کے لیے ایک نئی اوتار تصویر اپ لوڈ کرتا ہے۔
کلائنٹ اینڈ پوائنٹس
ہر وہ چیز جو ایک روبوٹ مالک منظم کرتا ہے: رجسٹرڈ روبوٹس، کلائنٹ پروفائل، ڈیٹاسیٹس، انوائسز، اور ڈیش بورڈ اعداد و شمار۔
/api/client/robotsBearer سیشن ٹوکن یا API کی (client رول)آتھینٹیکیٹڈ کلائنٹ کے رجسٹرڈ روبوٹس کو تازہ ترین پہلے، 50 اندراجات تک، فہرست کرتا ہے۔ ٹائم اسٹیمپس ISO 8601 ہیں؛ روبوٹ کے ایک بار کنیکٹ ہونے تک last_online اور last_heartbeat null رہتے ہیں۔
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 سیشن ٹوکن یا API کی (client رول)ایک نیا روبوٹ رجسٹر کرتا ہے اور اس کی id واپس کرتا ہے۔ ایک موٹر بورڈ ہارڈویئر id صرف ایک روبوٹ سے تعلق رکھ سکتی ہے؛ ٹکراؤ 409 اسٹیٹس کے ساتھ مسترد کیا جاتا ہے۔
/api/client/profileBearer سیشن ٹوکن یا API کی (client رول)آتھینٹیکیٹڈ صارف کا کلائنٹ پروفائل واپس کرتا ہے۔
/api/client/profileBearer سیشن ٹوکن یا API کی (client رول)کلائنٹ پروفائل فیلڈز اپڈیٹ کرتا ہے۔
/api/client/datasetsBearer سیشن ٹوکن یا API کی (client رول)کلائنٹ کے کلاؤڈ ڈیٹاسیٹس کو ایپیسوڈ کاؤنٹس اور سائزز کے ساتھ فہرست کرتا ہے۔
/api/client/invoicesBearer سیشن ٹوکن یا API کی (client رول)کلائنٹ کے ماہانہ انوائسز فہرست کرتا ہے۔
/api/client/statsBearer سیشن ٹوکن یا API کی (client رول)کلائنٹ ڈیش بورڈ کے لیے استعمال کے اعداد و شمار واپس کرتا ہے۔
آپریٹر اینڈ پوائنٹس
آپریٹر کا پہلو: پروفائل اور دستیابی، سرٹیفیکیشنز، شیڈولنگ، اور آمدنی کے اعداد و شمار۔
/api/operator/profileBearer سیشن ٹوکن یا API کی (operator رول)آتھینٹیکیٹڈ صارف کا آپریٹر پروفائل واپس کرتا ہے۔
/api/operator/profileBearer سیشن ٹوکن یا API کی (operator رول)آپریٹر پروفائل بناتا یا اپڈیٹ کرتا ہے۔
/api/operator/available-robotsBearer سیشن ٹوکن یا API کی (operator رول)ایسے روبوٹس فہرست کرتا ہے جو فی الحال دستیاب ہیں اور آپریٹر کی سرٹیفیکیشنز سے میل کھاتے ہیں۔
/api/operator/certificationsBearer سیشن ٹوکن یا API کی (operator رول)آپریٹر کی سرٹیفیکیشن درخواستیں اور ان کی حیثیت فہرست کرتا ہے۔
/api/operator/certificationsBearer سیشن ٹوکن یا API کی (operator رول)ایک روبوٹ ٹائپ کے لیے سرٹیفیکیشن کی درخواست دیتا ہے۔
/api/operator/scheduleBearer سیشن ٹوکن یا API کی (operator رول)آپریٹر کا ہفتہ وار دستیابی شیڈول واپس کرتا ہے۔
/api/operator/scheduleBearer سیشن ٹوکن یا API کی (operator رول)ہفتہ وار دستیابی شیڈول اپڈیٹ کرتا ہے۔
/api/operator/availabilityBearer سیشن ٹوکن یا API کی (operator رول)آپریٹر کی موجودہ دستیابی واپس کرتا ہے۔
/api/operator/statsBearer سیشن ٹوکن یا API کی (operator رول)آپریٹر ڈیش بورڈ کے لیے آمدنی اور سیشن کے اعداد و شمار واپس کرتا ہے۔
سیشنز
سیشنز پلیٹ فارم کا بنیادی ریسورس ہیں: ایک سیشن ایک آپریٹر اور ایک روبوٹ کے درمیان ایک مسلسل ٹیلی آپریشن مصروفیت ہے۔ سیشن اسٹیٹس PENDING، ACTIVE، PAUSED، COMPLETED، اور CANCELLED سے گزرتی ہے۔
/api/sessionsBearer سیشن ٹوکن یا API کیآتھینٹیکیٹڈ صارف کے لیے سیشنز فہرست کرتا ہے۔ آپریٹرز وہ سیشنز دیکھتے ہیں جو انہوں نے چلائے؛ کلائنٹس اپنے روبوٹس پر سیشنز دیکھتے ہیں۔ دونوں ویوز کے درمیان فیلڈ سیٹ قدرے مختلف ہے: client ویو میں episodes_collected اور data_collected_mb شامل ہیں، operator ویو میں operator_earnings_cents شامل ہے۔
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | اختیاری۔ سیشن اسٹیٹس کے مطابق فلٹر کریں، مثلاً ACTIVE یا COMPLETED۔ سب فہرست کرنے کے لیے چھوڑ دیں۔ |
| limit | query | number | اختیاری۔ پیج سائز، ڈیفالٹ 50، زیادہ سے زیادہ 100۔ |
| offset | query | number | اختیاری۔ پیجینیشن آفسیٹ، ڈیفالٹ 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 سیشن ٹوکن یا API کی (operator رول)ایک دستیاب روبوٹ پر ایک ٹیلی آپریشن سیشن شروع کرتا ہے۔ operator رول درکار ہے: کلائنٹس سیشنز شروع نہیں کر سکتے۔ ایک آپریٹر بیک وقت زیادہ سے زیادہ ایک ACTIVE یا PAUSED سیشن رکھ سکتا ہے، اور روبوٹ کی موجودہ حیثیت لازماً AVAILABLE ہونی چاہیے۔ فوری آغاز پر، روبوٹ IN_SESSION میں بدل جاتا ہے اور کلائنٹ کو مطلع کیا جاتا ہے۔
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | لازمی۔ جس روبوٹ کو چلانا ہے اس کی id۔ روبوٹ لازماً AVAILABLE ہونا چاہیے۔ |
| operatorId | body | string | اختیاری۔ واضح آپریٹر id؛ آتھینٹیکیٹڈ آپریٹر ڈیفالٹ ہے۔ |
| scheduledFor | body | string (ISO 8601) | اختیاری۔ فوری شروع کرنے کے بجائے سیشن کو مستقبل کے وقت کے لیے شیڈول کرتا ہے۔ |
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 سیشن ٹوکن یا API کیاس کی تفصیلات کے ساتھ ایک واحد سیشن واپس کرتا ہے۔
/api/sessions/[id]Bearer سیشن ٹوکن یا API کیسیشن لائف سائیکل اپڈیٹ کرتا ہے: pause، resume، end، اور متعلقہ اعمال۔
/api/sessions/[id]/extendBearer سیشن ٹوکن یا API کی (client، سیشن کا مالک)سیشن ایکسٹینشن کی درخواست دیتا ہے۔ صرف وہ کلائنٹ جو سیشن کا مالک ہے اسے کال کر سکتا ہے، اور سیشن لازماً ACTIVE ہونا چاہیے۔ درخواست ایک سیشن ایونٹ کے طور پر لاگ کی جاتی ہے اور آپریٹر کو ایک نوٹیفیکیشن ملتی ہے؛ ایکسٹینشن خود اسی وقت ہوتی ہے جب آپریٹر اس پر عمل کرتا ہے۔
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | سیشن id۔ |
| additionalMinutes | body | number | منٹوں میں درخواست کردہ ایکسٹینشن کی لمبائی۔ |
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 سیشن ٹوکن یا API کیایک سیشن کے چیٹ پیغامات فہرست کرتا ہے۔
/api/sessions/[id]/messagesBearer سیشن ٹوکن یا API کیایک سیشن میں ایک چیٹ پیغام بھیجتا ہے۔
/api/sessions/[id]/rateBearer سیشن ٹوکن یا API کی (client)ایک مکمل شدہ سیشن کو 1 سے 5 ستارے کے پیمانے پر ریٹ کرتا ہے، اختیاری تبصرے کے ساتھ۔
/api/sessions/exportBearer سیشن ٹوکن یا API کیسیشن ڈیٹا ایکسپورٹ کرتا ہے۔
ادائیگیاں
تمام رقم کی نقل و حرکت Stripe کے ذریعے چلتی ہے۔ کلائنٹ بلنگ ایک محفوظ پیمنٹ میتھڈ والا Stripe کسٹمر استعمال کرتی ہے؛ آپریٹر پے آؤٹس Stripe Connect استعمال کرتے ہیں۔ پلیٹ فارم خود کبھی کارڈ یا بینک ڈیٹا محفوظ نہیں کرتا۔
/api/stripe/customerBearer سیشن ٹوکن (client رول)کلائنٹ بلنگ کے لیے استعمال ہونے والا Stripe کسٹمر بناتا یا واپس کرتا ہے۔
/api/stripe/connectBearer سیشن ٹوکن (operator رول)آپریٹر کے Stripe Connect اکاؤنٹ کی حیثیت واپس کرتا ہے۔
/api/stripe/connectBearer سیشن ٹوکن (operator رول)آپریٹر پے آؤٹس کے لیے Stripe Connect اونبورڈنگ شروع کرتا ہے۔
/api/stripe/setup-intentBearer سیشن ٹوکن (client رول)ایک پیمنٹ میتھڈ محفوظ کرنے کے لیے ایک Stripe SetupIntent بناتا ہے۔
/api/stripe/portalBearer سیشن ٹوکن (client رول)پیمنٹ میتھڈز اور انوائسز کے انتظام کے لیے ایک Stripe بلنگ پورٹل سیشن بناتا ہے۔
/api/stripe/payoutBearer سیشن ٹوکن (operator رول)آتھینٹیکیٹڈ آپریٹر کے لیے پے آؤٹ کی معلومات واپس کرتا ہے۔
/api/stripe/payoutBearer سیشن ٹوکن (operator رول)جمع شدہ آمدنی کے پے آؤٹ کی درخواست کرتا ہے۔ کم از کم پے آؤٹ 10.00 EUR ہے۔
/api/stripe/webhookStripe webhook signatureStripe ویب ہک ایونٹس وصول کرتا ہے۔ Stripe کے ذریعے کال کیا جاتا ہے، API کلائنٹس کے ذریعے نہیں۔
پبلک اینڈ پوائنٹس
ان اینڈ پوائنٹس کو کسی آتھینٹیکیشن کی ضرورت نہیں۔ انہیں مانیٹرنگ، مارکیٹنگ صفحات، یا اسٹیٹس پروب سے کال کرنا محفوظ ہے۔
/api/healthAPI اور اس کے ڈیٹابیس کنکشن کے لیے ہیلتھ چیک۔ دونوں ٹھیک ہونے پر 200 واپس کرتا ہے؛ اگر ڈیٹابیس چیک ناکام ہو، تو وہی شکل واپس کی جاتی ہے جس میں status اور db error پر سیٹ ہوں اور HTTP status 503 ہو۔
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]ایک سپورٹڈ روبوٹ ماڈل کے بارے میں پبلک معلومات واپس کرتا ہے۔
/api/public/pricingموجودہ پبلک پرائسنگ پلانز واپس کرتا ہے۔
/api/contactایک کنٹیکٹ فارم پیغام جمع کرتا ہے۔ پیغام کو ای میل کے ذریعے پہنچانے سے پہلے پہلے محفوظ کیا جاتا ہے، اس لیے میل کی عارضی بندش اسے ضائع نہیں کرتی: اس صورت میں، رسپانس stored true اور delivered false رپورٹ کرتا ہے، اور ڈیلیوری آپریشنل طور پر دوبارہ کوشش کی جاتی ہے۔
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | لازمی۔ آپ کا نام۔ |
| body | string | لازمی۔ جواب کے لیے ایک درست ای میل ایڈریس۔ | |
| category | body | string | لازمی۔ ان میں سے ایک: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other۔ |
| subject | body | string | لازمی۔ مختصر موضوع کی لائن۔ |
| message | body | string | لازمی۔ پیغام کا متن۔ |
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-requestایسی روبوٹ ٹائپ کے لیے سپورٹ کی درخواست کرتا ہے جو ابھی تک پلیٹ فارم پر نہیں ہے۔
/api/statsپبلک پلیٹ فارم کے اعداد و شمار واپس کرتا ہے۔
AY-Robots اکاؤنٹس اور لائیو روبوٹ کنٹرول کو کیسے محفوظ رکھتا ہے: Supabase آتھینٹیکیشن، رول ماڈل، API کیز، سیشن سیف گارڈز، آڈٹ ٹریل، اور اینکرپشن۔
AY-Robots سیشنز کیسے کام کرتے ہیں: PENDING سے COMPLETED تک کا لائف سائیکل، ہر ایکٹیویٹی ایونٹ کی وضاحت، سیشن چیٹ، ریٹنگز، ایکسٹینشنز، اور ٹریننگ ڈیٹا۔