API सन्दर्भ
AY-Robots REST API https://www.ay-robots.com/api मुनि बस्छ र दुवैतिर JSON बोल्छ। यो पृष्ठले प्रमाणीकरण, प्रतिक्रिया परम्परा, र हरेक इन्डपोइन्ट, साथै तपाईंले प्रोग्रामेटिक रूपमा बोलाउने सम्भावना बढी भएका रुटहरूको पूरा प्यारामिटर दस्ताबेजीकरण गर्छ।
अन्तिम अद्यावधिक 2026-08-09
प्रमाणीकरण
Public खण्डमा सूचीबद्ध नभएसम्म हरेक इन्डपोइन्टलाई प्रमाणीकरण चाहिन्छ। API ले दुई प्रकारका क्रेडेन्सियल स्वीकार्छ, र दुवै उही तरिकाले आइपुग्छन्: चाहे ड्यासबोर्डले पहिल्यै पठाउने सत्र कुकीको रूपमा, वा Bearer टोकनसहित Authorization हेडरको रूपमा।
| विधि | यसले कसरी काम गर्छ | यसका लागि प्रयोग गर्नुहोस् |
|---|---|---|
| ब्राउजर सत्र | तपाईंको लगइन गरिएको खाताको Supabase सत्र टोकन, कुकी वा Bearer टोकनको रूपमा पठाइएको | ड्यासबोर्ड आफैं र प्रमाणित ब्राउजर सन्दर्भबाट छिटो प्रयोगहरू |
| API key | /dashboard/settings मा बनेको र Bearer टोकनको रूपमा पठाइने ayr_live_ प्रिफिक्स भएको key | स्क्रिप्ट, सर्भर, CI, र ब्राउजर लगइनमा निर्भर नहुनुपर्ने जुनसुकै कुरा |
| MCP | https://www.ay-robots.com/api/mcp मा होस्ट गरिएको MCP सर्भर (Streamable HTTP) | Model Context Protocol बोल्ने LLM एजेन्ट र उपकरणहरू |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API key हरू /dashboard/settings मा बनाइन्छ र रद्द गरिन्छ। तिनलाई पासवर्डजस्तै व्यवहार गर्नुहोस्: सर्भर-साइडमा राख्नुहोस्, र पुरानो key रद्द गर्नुअघि प्रतिस्थापन key बनाएर घुमाउनुहोस्। तपाईंले डेस्कटप CLI प्रयोग गर्नुहुन्छ भने, यसले प्लेटफर्मलाई यो आदेशले स्थानीय MCP सर्भरको रूपमा पनि उजागर गर्न सक्छ: ay-robots mcp।
प्रतिक्रियाहरू JSON हुन्। त्रुटिहरूले एउटै स्थिर आकार प्रयोग गर्छन्: मानव-पढ्न मिल्ने सन्देश भएको एउटा error फिल्ड भएको JSON अब्जेक्ट, उपयुक्त 4xx वा 5xx स्थिति कोडसहित दिइएको। सफल प्रतिक्रियाहरूले स्रोत सिधै फर्काउँछन्; केही इन्डपोइन्टले सूचीहरूलाई नाम दिइएको फिल्डमा राख्छन्, जुन तलका उदाहरणहरूले महत्त्वपूर्ण भएको ठाउँमा देखाउँछन्।
Auth इन्डपोइन्टहरू
खाता र प्रोफाइल प्लम्बिङ। यी मुख्यतया ड्यासबोर्ड आफैंले प्रयोग गर्छ, तर तिनले कुनै पनि मान्य क्रेडेन्सियलसँग काम गर्छन्।
/api/auth/profileBearer सत्र टोकन वा API keyप्रमाणित प्रयोगकर्ताको प्रोफाइल फर्काउँछ।
/api/auth/profileBearer सत्र टोकन वा API keyप्रदर्शन नाम र सूचना प्राथमिकताजस्ता प्रोफाइल फिल्ड अद्यावधिक गर्छ।
/api/auth/syncBearer सत्र टोकनSupabase auth प्रयोगकर्तालाई प्लेटफर्म प्रयोगकर्ता रेकर्डसँग सिंक्रोनाइज गर्छ।
/api/auth/check-onboardingBearer सत्र टोकनप्रमाणित प्रयोगकर्ताले अनबोर्डिङ पूरा गरेको छ कि छैन रिपोर्ट गर्छ।
/api/auth/avatarBearer सत्र टोकनप्रमाणित प्रयोगकर्ताका लागि नयाँ अवतार छवि अपलोड गर्छ।
Client इन्डपोइन्टहरू
रोबोट मालिकले व्यवस्थापन गर्ने सबै कुरा: दर्ता गरिएका रोबोट, क्लाइन्ट प्रोफाइल, डेटासेट, इनभ्वाइस, र ड्यासबोर्ड तथ्याङ्क।
/api/client/robotsBearer सत्र टोकन वा API key (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 key (client भूमिका)नयाँ रोबोट दर्ता गर्छ र यसको id फर्काउँछ। एउटा मोटर बोर्ड हार्डवेयर id एउटा मात्र रोबोटको हुन सक्छ; टक्कर स्थिति 409 सहित अस्वीकार गरिन्छ।
/api/client/profileBearer सत्र टोकन वा API key (client भूमिका)प्रमाणित प्रयोगकर्ताको क्लाइन्ट प्रोफाइल फर्काउँछ।
/api/client/profileBearer सत्र टोकन वा API key (client भूमिका)क्लाइन्ट प्रोफाइल फिल्डहरू अद्यावधिक गर्छ।
/api/client/datasetsBearer सत्र टोकन वा API key (client भूमिका)एपिसोड गणना र आकारसहित क्लाइन्टका क्लाउड डेटासेटहरू सूचीबद्ध गर्छ।
/api/client/invoicesBearer सत्र टोकन वा API key (client भूमिका)क्लाइन्टका मासिक इनभ्वाइसहरू सूचीबद्ध गर्छ।
/api/client/statsBearer सत्र टोकन वा API key (client भूमिका)क्लाइन्ट ड्यासबोर्डका लागि प्रयोग तथ्याङ्क फर्काउँछ।
Operator इन्डपोइन्टहरू
अपरेटर पक्ष: प्रोफाइल र उपलब्धता, प्रमाणीकरण, तालिका, र आम्दानी तथ्याङ्क।
/api/operator/profileBearer सत्र टोकन वा API key (operator भूमिका)प्रमाणित प्रयोगकर्ताको अपरेटर प्रोफाइल फर्काउँछ।
/api/operator/profileBearer सत्र टोकन वा API key (operator भूमिका)अपरेटर प्रोफाइल बनाउँछ वा अद्यावधिक गर्छ।
/api/operator/available-robotsBearer सत्र टोकन वा API key (operator भूमिका)अहिले उपलब्ध र अपरेटरको प्रमाणीकरणसँग मिल्ने रोबोटहरू सूचीबद्ध गर्छ।
/api/operator/certificationsBearer सत्र टोकन वा API key (operator भूमिका)अपरेटरका प्रमाणीकरण अनुरोध र तिनको स्थिति सूचीबद्ध गर्छ।
/api/operator/certificationsBearer सत्र टोकन वा API key (operator भूमिका)रोबोट प्रकारका लागि प्रमाणीकरण अनुरोध गर्छ।
/api/operator/scheduleBearer सत्र टोकन वा API key (operator भूमिका)अपरेटरको साप्ताहिक उपलब्धता तालिका फर्काउँछ।
/api/operator/scheduleBearer सत्र टोकन वा API key (operator भूमिका)साप्ताहिक उपलब्धता तालिका अद्यावधिक गर्छ।
/api/operator/availabilityBearer सत्र टोकन वा API key (operator भूमिका)अपरेटरको हालको उपलब्धता फर्काउँछ।
/api/operator/statsBearer सत्र टोकन वा API key (operator भूमिका)अपरेटर ड्यासबोर्डका लागि आम्दानी र सत्र तथ्याङ्क फर्काउँछ।
Sessions
सत्रहरू प्लेटफर्मको मुख्य स्रोत हुन्: एउटा सत्र भनेको अपरेटर र रोबोटबीचको एउटा निरन्तर टेलिअपरेसन संलग्नता हो। सत्र स्थिति PENDING, ACTIVE, PAUSED, COMPLETED, र CANCELLED मार्फत चल्छ।
/api/sessionsBearer सत्र टोकन वा API keyप्रमाणित प्रयोगकर्ताका लागि सत्रहरू सूचीबद्ध गर्छ। अपरेटरहरूले आफूले सञ्चालन गरेका सत्र देख्छन्; क्लाइन्टहरूले आफ्ना रोबोटमा भएका सत्र देख्छन्। दुई दृश्यबीच फिल्ड सेट अलिक फरक हुन्छ: 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 key (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 keyयसका विवरणसहित एउटा एकल सत्र फर्काउँछ।
/api/sessions/[id]Bearer सत्र टोकन वा API keyसत्र जीवनचक्र अद्यावधिक गर्छ: रोक्ने, फेरि सुरु गर्ने, सक्याउने, र सम्बन्धित कार्यहरू।
/api/sessions/[id]/extendBearer सत्र टोकन वा API key (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 keyसत्रका च्याट सन्देशहरू सूचीबद्ध गर्छ।
/api/sessions/[id]/messagesBearer सत्र टोकन वा API keyसत्रमा च्याट सन्देश पठाउँछ।
/api/sessions/[id]/rateBearer सत्र टोकन वा API key (client)पूरा भएको सत्रलाई 1 देखि 5 तारा स्केलमा रेट गर्छ, ऐच्छिक टिप्पणीसहित।
/api/sessions/exportBearer सत्र टोकन वा API keyसत्र डेटा निर्यात गर्छ।
Payments
सबै पैसाको आवागमन 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 वेबहुक हस्ताक्षरStripe वेबहुक इभेन्टहरू प्राप्त गर्छ। Stripe ले बोलाउँछ, API क्लाइन्टले होइन।
Public इन्डपोइन्टहरू
यी इन्डपोइन्टलाई कुनै प्रमाणीकरण चाहिँदैन। अनुगमन, मार्केटिङ पृष्ठ, वा स्थिति प्रोबबाट बोलाउन सुरक्षित छन्।
/api/healthAPI र यसको डेटाबेस जडानका लागि हेल्थ चेक। दुवै ठीक भएमा 200 फर्काउँछ; डेटाबेस चेक असफल भए, उही आकार status र db लाई error र HTTP स्थिति 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 key, सत्र सुरक्षा उपाय, अडिट ट्रेल, र इन्क्रिप्सन।
AY-Robots सत्रहरू कसरी काम गर्छन्: PENDING देखि COMPLETED सम्मको जीवनचक्र, हरेक गतिविधि इभेन्टको व्याख्या, सत्र च्याट, रेटिङ, विस्तार, र तालिम डेटा।