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, र ब्राउजर लगइनमा निर्भर नहुनुपर्ने जुनसुकै कुरा
MCPhttps://www.ay-robots.com/api/mcp मा होस्ट गरिएको MCP सर्भर (Streamable HTTP)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 रद्द गर्नुअघि प्रतिस्थापन key बनाएर घुमाउनुहोस्। तपाईंले डेस्कटप CLI प्रयोग गर्नुहुन्छ भने, यसले प्लेटफर्मलाई यो आदेशले स्थानीय MCP सर्भरको रूपमा पनि उजागर गर्न सक्छ: ay-robots mcp।

प्रतिक्रियाहरू JSON हुन्। त्रुटिहरूले एउटै स्थिर आकार प्रयोग गर्छन्: मानव-पढ्न मिल्ने सन्देश भएको एउटा error फिल्ड भएको JSON अब्जेक्ट, उपयुक्त 4xx वा 5xx स्थिति कोडसहित दिइएको। सफल प्रतिक्रियाहरूले स्रोत सिधै फर्काउँछन्; केही इन्डपोइन्टले सूचीहरूलाई नाम दिइएको फिल्डमा राख्छन्, जुन तलका उदाहरणहरूले महत्त्वपूर्ण भएको ठाउँमा देखाउँछन्।

Auth इन्डपोइन्टहरू

खाता र प्रोफाइल प्लम्बिङ। यी मुख्यतया ड्यासबोर्ड आफैंले प्रयोग गर्छ, तर तिनले कुनै पनि मान्य क्रेडेन्सियलसँग काम गर्छन्।

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 सत्र टोकन

प्रमाणित प्रयोगकर्ताका लागि नयाँ अवतार छवि अपलोड गर्छ।

Client इन्डपोइन्टहरू

रोबोट मालिकले व्यवस्थापन गर्ने सबै कुरा: दर्ता गरिएका रोबोट, क्लाइन्ट प्रोफाइल, डेटासेट, इनभ्वाइस, र ड्यासबोर्ड तथ्याङ्क।

GET/api/client/robotsBearer सत्र टोकन वा API key (client भूमिका)

प्रमाणित क्लाइन्टले दर्ता गरेका रोबोटहरू, सबैभन्दा नयाँ पहिले, 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 (client भूमिका)

नयाँ रोबोट दर्ता गर्छ र यसको id फर्काउँछ। एउटा मोटर बोर्ड हार्डवेयर id एउटा मात्र रोबोटको हुन सक्छ; टक्कर स्थिति 409 सहित अस्वीकार गरिन्छ।

GET/api/client/profileBearer सत्र टोकन वा API key (client भूमिका)

प्रमाणित प्रयोगकर्ताको क्लाइन्ट प्रोफाइल फर्काउँछ।

PATCH/api/client/profileBearer सत्र टोकन वा API key (client भूमिका)

क्लाइन्ट प्रोफाइल फिल्डहरू अद्यावधिक गर्छ।

GET/api/client/datasetsBearer सत्र टोकन वा API key (client भूमिका)

एपिसोड गणना र आकारसहित क्लाइन्टका क्लाउड डेटासेटहरू सूचीबद्ध गर्छ।

GET/api/client/invoicesBearer सत्र टोकन वा API key (client भूमिका)

क्लाइन्टका मासिक इनभ्वाइसहरू सूचीबद्ध गर्छ।

GET/api/client/statsBearer सत्र टोकन वा API key (client भूमिका)

क्लाइन्ट ड्यासबोर्डका लागि प्रयोग तथ्याङ्क फर्काउँछ।

Operator इन्डपोइन्टहरू

अपरेटर पक्ष: प्रोफाइल र उपलब्धता, प्रमाणीकरण, तालिका, र आम्दानी तथ्याङ्क।

GET/api/operator/profileBearer सत्र टोकन वा API key (operator भूमिका)

प्रमाणित प्रयोगकर्ताको अपरेटर प्रोफाइल फर्काउँछ।

POST/api/operator/profileBearer सत्र टोकन वा API key (operator भूमिका)

अपरेटर प्रोफाइल बनाउँछ वा अद्यावधिक गर्छ।

GET/api/operator/available-robotsBearer सत्र टोकन वा API key (operator भूमिका)

अहिले उपलब्ध र अपरेटरको प्रमाणीकरणसँग मिल्ने रोबोटहरू सूचीबद्ध गर्छ।

GET/api/operator/certificationsBearer सत्र टोकन वा API key (operator भूमिका)

अपरेटरका प्रमाणीकरण अनुरोध र तिनको स्थिति सूचीबद्ध गर्छ।

POST/api/operator/certificationsBearer सत्र टोकन वा API key (operator भूमिका)

रोबोट प्रकारका लागि प्रमाणीकरण अनुरोध गर्छ।

GET/api/operator/scheduleBearer सत्र टोकन वा API key (operator भूमिका)

अपरेटरको साप्ताहिक उपलब्धता तालिका फर्काउँछ।

POST/api/operator/scheduleBearer सत्र टोकन वा API key (operator भूमिका)

साप्ताहिक उपलब्धता तालिका अद्यावधिक गर्छ।

GET/api/operator/availabilityBearer सत्र टोकन वा API key (operator भूमिका)

अपरेटरको हालको उपलब्धता फर्काउँछ।

GET/api/operator/statsBearer सत्र टोकन वा API key (operator भूमिका)

अपरेटर ड्यासबोर्डका लागि आम्दानी र सत्र तथ्याङ्क फर्काउँछ।

Sessions

सत्रहरू प्लेटफर्मको मुख्य स्रोत हुन्: एउटा सत्र भनेको अपरेटर र रोबोटबीचको एउटा निरन्तर टेलिअपरेसन संलग्नता हो। सत्र स्थिति PENDING, ACTIVE, PAUSED, COMPLETED, र CANCELLED मार्फत चल्छ।

GET/api/sessionsBearer सत्र टोकन वा API key

प्रमाणित प्रयोगकर्ताका लागि सत्रहरू सूचीबद्ध गर्छ। अपरेटरहरूले आफूले सञ्चालन गरेका सत्र देख्छन्; क्लाइन्टहरूले आफ्ना रोबोटमा भएका सत्र देख्छन्। दुई दृश्यबीच फिल्ड सेट अलिक फरक हुन्छ: client दृश्यमा episodes_collected र data_collected_mb समावेश हुन्छ, operator दृश्यमा 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 (operator भूमिका)

उपलब्ध रोबोटमा टेलिअपरेसन सत्र सुरु गर्छ। operator भूमिका आवश्यक: क्लाइन्टहरूले सत्र सुरु गर्न सक्दैनन्। एउटा अपरेटरले एकैचोटि बढीमा एउटा 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 (client, सत्र मालिक)

सत्र विस्तार अनुरोध गर्छ। सत्रको स्वामित्व भएको क्लाइन्टले मात्र यसलाई बोलाउन सक्छ, र सत्र 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 (client)

पूरा भएको सत्रलाई 1 देखि 5 तारा स्केलमा रेट गर्छ, ऐच्छिक टिप्पणीसहित।

POST/api/sessions/exportBearer सत्र टोकन वा API key

सत्र डेटा निर्यात गर्छ।

Payments

सबै पैसाको आवागमन Stripe मार्फत चल्छ। क्लाइन्ट बिलिङले सेभ गरिएको भुक्तानी विधि भएको Stripe ग्राहक प्रयोग गर्छ; अपरेटर भुक्तानीले Stripe Connect प्रयोग गर्छ। प्लेटफर्म आफैंले कहिल्यै कार्ड वा बैंक डेटा भण्डारण गर्दैन।

POST/api/stripe/customerBearer सत्र टोकन (client भूमिका)

क्लाइन्ट बिलिङका लागि प्रयोग हुने Stripe ग्राहक बनाउँछ वा फर्काउँछ।

GET/api/stripe/connectBearer सत्र टोकन (operator भूमिका)

अपरेटरको Stripe Connect खाताको स्थिति फर्काउँछ।

POST/api/stripe/connectBearer सत्र टोकन (operator भूमिका)

अपरेटर भुक्तानीका लागि Stripe Connect अनबोर्डिङ सुरु गर्छ।

POST/api/stripe/setup-intentBearer सत्र टोकन (client भूमिका)

भुक्तानी विधि सेभ गर्नका लागि Stripe SetupIntent बनाउँछ।

POST/api/stripe/portalBearer सत्र टोकन (client भूमिका)

भुक्तानी विधि र इनभ्वाइस व्यवस्थापन गर्न Stripe बिलिङ पोर्टल सत्र बनाउँछ।

GET/api/stripe/payoutBearer सत्र टोकन (operator भूमिका)

प्रमाणित अपरेटरका लागि भुक्तानी जानकारी फर्काउँछ।

POST/api/stripe/payoutBearer सत्र टोकन (operator भूमिका)

जम्मा भएको आम्दानीको भुक्तानी अनुरोध गर्छ। न्यूनतम भुक्तानी 10.00 EUR हो।

POST/api/stripe/webhookStripe वेबहुक हस्ताक्षर

Stripe वेबहुक इभेन्टहरू प्राप्त गर्छ। Stripe ले बोलाउँछ, API क्लाइन्टले होइन।

Public इन्डपोइन्टहरू

यी इन्डपोइन्टलाई कुनै प्रमाणीकरण चाहिँदैन। अनुगमन, मार्केटिङ पृष्ठ, वा स्थिति प्रोबबाट बोलाउन सुरक्षित छन्।

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

सार्वजनिक प्लेटफर्म तथ्याङ्क फर्काउँछ।