API संदर्भ

AY-Robots का REST API https://www.ay-robots.com/api पर है और दोनों दिशाओं में JSON बोलता है। यह पेज ऑथेंटिकेशन, रिस्पॉन्स कन्वेंशन, और हर एंडपॉइंट का दस्तावेज़ीकरण करता है, उन रूट के लिए पूरी पैरामीटर डॉक्यूमेंटेशन के साथ जिन्हें आप सबसे ज़्यादा प्रोग्रामेटिक रूप से कॉल करेंगे।

अंतिम अपडेट 2026-08-09

ऑथेंटिकेशन

हर एंडपॉइंट को ऑथेंटिकेशन चाहिए, सिवाय उनके जो Public सेक्शन में सूचीबद्ध हैं। API दो तरह की क्रेडेंशियल स्वीकार करता है, और दोनों एक ही तरीके से आती हैं: या तो सेशन कुकी के रूप में जो डैशबोर्ड पहले से भेजता है, या Bearer टोकन के साथ Authorization हेडर के रूप में।

तरीकायह कैसे काम करता हैइसका इस्तेमाल
ब्राउज़र सेशनआपके लॉग-इन अकाउंट का Supabase सेशन टोकन, कुकी या Bearer टोकन के रूप में भेजा गयाखुद डैशबोर्ड और ऑथेंटिकेटेड ब्राउज़र संदर्भ से त्वरित प्रयोग
API keyayr_live_ प्रीफ़िक्स वाली एक key, जो /dashboard/settings में बनाई गई और Bearer टोकन के रूप में भेजी गईस्क्रिप्ट, सर्वर, CI, और कुछ भी जो ब्राउज़र लॉगिन पर निर्भर न हो
MCPhttps://www.ay-robots.com/api/mcp (Streamable HTTP) पर होस्टेड MCP सर्वरModel Context Protocol बोलने वाले LLM एजेंट और टूल
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
API key से ऑथेंटिकेट करना

API key /dashboard/settings में बनाई और हटाई जाती हैं। इन्हें पासवर्ड की तरह ट्रीट करें: इन्हें सर्वर-साइड रखें, और पुरानी को हटाने से पहले एक बदली हुई key बनाकर रोटेट करें। अगर आप डेस्कटॉप CLI इस्तेमाल करते हैं, तो यह इस कमांड से प्लेटफ़ॉर्म को एक स्थानीय MCP सर्वर के रूप में भी दिखा सकता है: ay-robots mcp।

रिस्पॉन्स JSON में होते हैं। एरर एक तय आकार इस्तेमाल करते हैं: एक JSON ऑब्जेक्ट जिसमें एक इंसानों के पढ़ने लायक मैसेज वाला एक error फ़ील्ड होता है, जो उचित 4xx या 5xx स्टेटस कोड के साथ आता है। सफल रिस्पॉन्स सीधे रिसोर्स लौटाते हैं; कुछ एंडपॉइंट लिस्ट को एक नाम वाले फ़ील्ड में लपेटते हैं, जो नीचे दिए उदाहरण उन जगहों पर दिखाते हैं जहां यह मायने रखता है।

ऑथ एंडपॉइंट

अकाउंट और प्रोफ़ाइल का बुनियादी ढांचा। इन्हें मुख्य रूप से खुद डैशबोर्ड इस्तेमाल करता है, लेकिन ये किसी भी वैध क्रेडेंशियल के साथ काम करते हैं।

GET/api/auth/profileBearer सेशन टोकन या API key

ऑथेंटिकेटेड यूज़र की प्रोफ़ाइल लौटाता है।

POST/api/auth/profileBearer सेशन टोकन या API key

डिस्प्ले नाम और नोटिफ़िकेशन प्राथमिकताओं जैसे प्रोफ़ाइल फ़ील्ड अपडेट करता है।

POST/api/auth/syncBearer सेशन टोकन

Supabase auth यूज़र को प्लेटफ़ॉर्म यूज़र रिकॉर्ड के साथ सिंक करता है।

GET/api/auth/check-onboardingBearer सेशन टोकन

बताता है कि क्या ऑथेंटिकेटेड यूज़र ने ऑनबोर्डिंग पूरी कर ली है।

POST/api/auth/avatarBearer सेशन टोकन

ऑथेंटिकेटेड यूज़र के लिए एक नई अवतार इमेज अपलोड करता है।

क्लाइंट एंडपॉइंट

रोबोट मालिक जो कुछ भी मैनेज करता है: रजिस्टर किए गए रोबोट, क्लाइंट प्रोफ़ाइल, डेटासेट, इनवॉइस, और डैशबोर्ड आंकड़े।

GET/api/client/robotsBearer सेशन टोकन या API key (क्लाइंट भूमिका)

ऑथेंटिकेटेड क्लाइंट द्वारा रजिस्टर किए गए रोबोट को सूचीबद्ध करता है, सबसे नए पहले, 50 एंट्री तक। टाइमस्टैम्प ISO 8601 हैं; last_online और last_heartbeat तब तक null रहते हैं जब तक रोबोट एक बार कनेक्ट नहीं हुआ।

Request
curl https://www.ay-robots.com/api/client/robots \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Response
[
  {
    "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"
  }
]
POST/api/client/robotsBearer सेशन टोकन या API key (क्लाइंट भूमिका)

एक नया रोबोट रजिस्टर करता है और उसकी id लौटाता है। किसी मोटर बोर्ड का hardware id सिर्फ़ एक रोबोट का हो सकता है; टकराव को स्टेटस 409 के साथ अस्वीकार किया जाता है।

GET/api/client/profileBearer सेशन टोकन या API key (क्लाइंट भूमिका)

ऑथेंटिकेटेड यूज़र की क्लाइंट प्रोफ़ाइल लौटाता है।

PATCH/api/client/profileBearer सेशन टोकन या API key (क्लाइंट भूमिका)

क्लाइंट प्रोफ़ाइल फ़ील्ड अपडेट करता है।

GET/api/client/datasetsBearer सेशन टोकन या API key (क्लाइंट भूमिका)

क्लाइंट के क्लाउड डेटासेट को एपिसोड काउंट और साइज़ के साथ सूचीबद्ध करता है।

GET/api/client/invoicesBearer सेशन टोकन या API key (क्लाइंट भूमिका)

क्लाइंट के मासिक इनवॉइस सूचीबद्ध करता है।

GET/api/client/statsBearer सेशन टोकन या API key (क्लाइंट भूमिका)

क्लाइंट डैशबोर्ड के लिए उपयोग के आंकड़े लौटाता है।

ऑपरेटर एंडपॉइंट

ऑपरेटर पक्ष: प्रोफ़ाइल और उपलब्धता, सर्टिफिकेशन, शेड्यूलिंग, और कमाई के आंकड़े।

GET/api/operator/profileBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑथेंटिकेटेड यूज़र की ऑपरेटर प्रोफ़ाइल लौटाता है।

POST/api/operator/profileBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑपरेटर प्रोफ़ाइल बनाता या अपडेट करता है।

GET/api/operator/available-robotsBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

वे रोबोट सूचीबद्ध करता है जो अभी उपलब्ध हैं और ऑपरेटर के सर्टिफिकेशन से मेल खाते हैं।

GET/api/operator/certificationsBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑपरेटर के सर्टिफिकेशन अनुरोध और उनकी स्थिति सूचीबद्ध करता है।

POST/api/operator/certificationsBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

किसी रोबोट प्रकार के लिए सर्टिफिकेशन का अनुरोध करता है।

GET/api/operator/scheduleBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑपरेटर का साप्ताहिक उपलब्धता शेड्यूल लौटाता है।

POST/api/operator/scheduleBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

साप्ताहिक उपलब्धता शेड्यूल अपडेट करता है।

GET/api/operator/availabilityBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑपरेटर की मौजूदा उपलब्धता लौटाता है।

GET/api/operator/statsBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

ऑपरेटर डैशबोर्ड के लिए कमाई और सेशन के आंकड़े लौटाता है।

सेशन

सेशन प्लेटफ़ॉर्म का मुख्य रिसोर्स हैं: एक सेशन एक ऑपरेटर और एक रोबोट के बीच एक निरंतर टेलीऑपरेशन जुड़ाव है। सेशन की स्थिति PENDING, ACTIVE, PAUSED, COMPLETED, और CANCELLED से होकर गुज़रती है।

GET/api/sessionsBearer सेशन टोकन या API key

ऑथेंटिकेटेड यूज़र के लिए सेशन सूचीबद्ध करता है। ऑपरेटर वे सेशन देखते हैं जो उन्होंने चलाए; क्लाइंट अपने रोबोट पर हुए सेशन देखते हैं। दोनों व्यू में फ़ील्ड सेट थोड़ा अलग है: क्लाइंट व्यू में episodes_collected और data_collected_mb शामिल हैं, ऑपरेटर व्यू में operator_earnings_cents शामिल है।

NameInTypeDescription
statusquerystringवैकल्पिक। सेशन स्टेटस के हिसाब से फ़िल्टर करें, जैसे ACTIVE या COMPLETED। सब सूचीबद्ध करने के लिए छोड़ दें।
limitquerynumberवैकल्पिक। पेज साइज़, डिफ़ॉल्ट 50, अधिकतम 100।
offsetquerynumberवैकल्पिक। पेजिनेशन ऑफ़सेट, डिफ़ॉल्ट 0।
Request
curl 'https://www.ay-robots.com/api/sessions?status=COMPLETED&limit=10' \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Response
{
  "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."
    }
  ]
}
POST/api/sessionsBearer सेशन टोकन या API key (ऑपरेटर भूमिका)

किसी उपलब्ध रोबोट पर टेलीऑपरेशन सेशन शुरू करता है। इसके लिए ऑपरेटर भूमिका चाहिए: क्लाइंट सेशन शुरू नहीं कर सकते। एक ऑपरेटर एक समय पर अधिकतम एक ACTIVE या PAUSED सेशन रख सकता है, और रोबोट का स्टेटस अभी AVAILABLE होना चाहिए। तुरंत शुरू होने पर रोबोट IN_SESSION में बदल जाता है और क्लाइंट को सूचना मिलती है।

NameInTypeDescription
robotIdbodystringज़रूरी। जिस रोबोट को चलाना है उसकी id। रोबोट AVAILABLE होना चाहिए।
operatorIdbodystringवैकल्पिक। स्पष्ट ऑपरेटर id; डिफ़ॉल्ट रूप से ऑथेंटिकेटेड ऑपरेटर।
scheduledForbodystring (ISO 8601)वैकल्पिक। सेशन को तुरंत शुरू करने के बजाय भविष्य के किसी समय के लिए शेड्यूल करता है।
Request
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"}'
Response
{
  "sessionId": "6b0d2c9a-53f1-4f6e-8f1a-2c9d4e7b5a30",
  "status": "ACTIVE"
}
GET/api/sessions/[id]Bearer सेशन टोकन या API key

एक अकेला सेशन उसके विवरण के साथ लौटाता है।

PATCH/api/sessions/[id]Bearer सेशन टोकन या API key

सेशन के जीवनचक्र को अपडेट करता है: रोकें, फिर से शुरू करें, खत्म करें, और संबंधित कार्रवाइयां।

POST/api/sessions/[id]/extendBearer सेशन टोकन या API key (क्लाइंट, सेशन का मालिक)

सेशन के विस्तार का अनुरोध करता है। इसे केवल वही क्लाइंट कॉल कर सकता है जो सेशन का मालिक है, और सेशन ACTIVE होना चाहिए। अनुरोध को एक सेशन इवेंट के रूप में लॉग किया जाता है और ऑपरेटर को सूचना मिलती है; विस्तार तब होता है जब ऑपरेटर इस पर कार्रवाई करता है।

NameInTypeDescription
idpathstringसेशन की id।
additionalMinutesbodynumberमिनटों में अनुरोधित विस्तार की लंबाई।
Request
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}'
Response
{
  "message": "Extension request sent to operator"
}
GET/api/sessions/[id]/messagesBearer सेशन टोकन या API key

किसी सेशन के चैट मैसेज सूचीबद्ध करता है।

POST/api/sessions/[id]/messagesBearer सेशन टोकन या API key

किसी सेशन में एक चैट मैसेज भेजता है।

POST/api/sessions/[id]/rateBearer सेशन टोकन या API key (क्लाइंट)

किसी पूरे हुए सेशन को 1 से 5 स्टार के पैमाने पर रेट करता है, एक वैकल्पिक टिप्पणी के साथ।

POST/api/sessions/exportBearer सेशन टोकन या API key

सेशन डेटा एक्सपोर्ट करता है।

भुगतान

सारा पैसों का लेन-देन Stripe से होकर गुज़रता है। क्लाइंट बिलिंग एक सेव किए गए भुगतान तरीके वाले Stripe customer का इस्तेमाल करती है; ऑपरेटर भुगतान Stripe Connect का इस्तेमाल करते हैं। प्लेटफ़ॉर्म खुद कभी कार्ड या बैंक डेटा स्टोर नहीं करता।

POST/api/stripe/customerBearer सेशन टोकन (क्लाइंट भूमिका)

क्लाइंट बिलिंग के लिए इस्तेमाल होने वाला Stripe customer बनाता या लौटाता है।

GET/api/stripe/connectBearer सेशन टोकन (ऑपरेटर भूमिका)

ऑपरेटर के Stripe Connect अकाउंट की स्थिति लौटाता है।

POST/api/stripe/connectBearer सेशन टोकन (ऑपरेटर भूमिका)

ऑपरेटर भुगतान के लिए Stripe Connect ऑनबोर्डिंग शुरू करता है।

POST/api/stripe/setup-intentBearer सेशन टोकन (क्लाइंट भूमिका)

भुगतान तरीका सेव करने के लिए एक Stripe SetupIntent बनाता है।

POST/api/stripe/portalBearer सेशन टोकन (क्लाइंट भूमिका)

भुगतान तरीके और इनवॉइस मैनेज करने के लिए Stripe billing portal सेशन बनाता है।

GET/api/stripe/payoutBearer सेशन टोकन (ऑपरेटर भूमिका)

ऑथेंटिकेटेड ऑपरेटर के लिए भुगतान जानकारी लौटाता है।

POST/api/stripe/payoutBearer सेशन टोकन (ऑपरेटर भूमिका)

जमा कमाई का भुगतान मांगता है। न्यूनतम भुगतान 10.00 EUR है।

POST/api/stripe/webhookStripe वेबहुक सिग्नेचर

Stripe वेबहुक इवेंट प्राप्त करता है। इसे Stripe कॉल करता है, API क्लाइंट नहीं।

पब्लिक एंडपॉइंट

इन एंडपॉइंट को किसी ऑथेंटिकेशन की ज़रूरत नहीं है। इन्हें मॉनिटरिंग, मार्केटिंग पेज, या स्टेटस प्रोब से कॉल करना सुरक्षित है।

GET/api/health

API और उसके डेटाबेस कनेक्शन के लिए हेल्थ चेक। दोनों ठीक होने पर 200 लौटाता है; अगर डेटाबेस चेक फ़ेल हो, तो वही आकार status और db को error के साथ और HTTP स्टेटस 503 के साथ लौटाया जाता है।

Request
curl https://www.ay-robots.com/api/health
Response
{
  "status": "ok",
  "db": "ok",
  "timestamp": "2026-08-09T10:12:00.000Z"
}
GET/api/robots/[id]

किसी समर्थित रोबोट मॉडल के बारे में पब्लिक जानकारी लौटाता है।

GET/api/public/pricing

मौजूदा पब्लिक प्राइसिंग प्लान लौटाता है।

POST/api/contact

एक कॉन्टैक्ट फ़ॉर्म मैसेज सबमिट करता है। मैसेज पहले स्टोर होता है और फिर ईमेल से भेजा जाता है, इसलिए मेल की एक अस्थायी रुकावट इसे खोती नहीं है: उस स्थिति में रिस्पॉन्स stored true और delivered false रिपोर्ट करता है, और डिलीवरी को ऑपरेशनल रूप से फिर से आज़माया जाता है।

NameInTypeDescription
namebodystringज़रूरी। आपका नाम।
emailbodystringज़रूरी। जवाब के लिए एक वैध ईमेल पता।
categorybodystringज़रूरी। इनमें से एक: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other।
subjectbodystringज़रूरी। छोटी सब्जेक्ट लाइन।
messagebodystringज़रूरी। मैसेज का मुख्य भाग।
Request
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."
  }'
Response
{
  "success": true,
  "message": "Message sent successfully",
  "id": "b1f2c3d4-0000-0000-0000-000000000000",
  "stored": true,
  "delivered": true
}
POST/api/robot-request

किसी ऐसे रोबोट प्रकार के लिए सपोर्ट का अनुरोध करता है जो अभी प्लेटफ़ॉर्म पर नहीं है।

GET/api/stats

पब्लिक प्लेटफ़ॉर्म आंकड़े लौटाता है।