API reference
ה-REST API של AY-Robots חי תחת https://www.ay-robots.com/api ומדבר JSON בשני הכיוונים. עמוד זה מתעד אימות, מוסכמות התגובה, וכל נקודת קצה, עם תיעוד פרמטרים מלא עבור המסלולים שסביר להניח שתקראו להם באופן פרוגרמטי.
עדכון אחרון 2026-08-09
אימות
כל נקודת קצה דורשת אימות אלא אם היא מופיעה בקטע Public. ה-API מקבל שתי צורות של אישורים, ושתיהן מגיעות באותה דרך: או כעוגיית ההפעלה שלוח הבקרה כבר שולח, או ככותרת Authorization עם אסימון Bearer.
| שיטה | איך זה עובד | שימוש עבור |
|---|---|---|
| הפעלת דפדפן | אסימון ההפעלה של Supabase של החשבון המחובר שלכם, נשלח כעוגייה או כאסימון Bearer | לוח הבקרה עצמו וניסויים מהירים מהקשר דפדפן מאומת |
| מפתח API | מפתח עם הקידומת ayr_live_, נוצר ב-/dashboard/settings ונשלח כאסימון Bearer | סקריפטים, שרתים, CI, וכל דבר שלא צריך להיות תלוי בכניסה לדפדפן |
| MCP | שרת ה-MCP המאוחסן בכתובת https://www.ay-robots.com/api/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. שגיאות משתמשות בצורה עקבית: אובייקט JSON עם שדה error יחיד שמכיל הודעה קריאה לבני אדם, שנמסר עם קוד סטטוס 4xx או 5xx מתאים. תגובות הצלחה מחזירות את המשאב ישירות; כמה נקודות קצה עוטפות רשימות בשדה בעל שם, מה שהדוגמאות למטה מראות במקומות שזה משנה.
נקודות קצה של אימות
אינסטלציית חשבון ופרופיל. אלה משמשות בעיקר את לוח הבקרה עצמו, אבל הן עובדות עם כל אישור תקף.
/api/auth/profileאסימון הפעלה מסוג Bearer או מפתח APIמחזיר את הפרופיל של המשתמש המאומת.
/api/auth/profileאסימון הפעלה מסוג Bearer או מפתח APIמעדכן שדות פרופיל כמו שם התצוגה והעדפות התראות.
/api/auth/syncאסימון הפעלה מסוג Bearerמסנכרן את משתמש ה-auth של Supabase עם רשומת המשתמש בפלטפורמה.
/api/auth/check-onboardingאסימון הפעלה מסוג Bearerמדווח האם המשתמש המאומת השלים onboarding.
/api/auth/avatarאסימון הפעלה מסוג Bearerמעלה תמונת avatar חדשה עבור המשתמש המאומת.
נקודות קצה של לקוח
כל מה שבעל רובוט מנהל: רובוטים רשומים, פרופיל הלקוח, מערכי נתונים, חשבוניות, וסטטיסטיקות לוח בקרה.
/api/client/robotsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מציג את הרובוטים הרשומים על ידי הלקוח המאומת, החדשים ביותר תחילה, עד 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/robotsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)רושם רובוט חדש ומחזיר את ה-id שלו. hardware id של לוח מנוע יכול להשתייך לרובוט אחד בלבד; התנגשות נדחית עם סטטוס 409.
/api/client/profileאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מחזיר את פרופיל הלקוח של המשתמש המאומת.
/api/client/profileאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מעדכן שדות פרופיל לקוח.
/api/client/datasetsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מציג את מערכי הנתונים בענן של הלקוח עם ספירות episodes וגדלים.
/api/client/invoicesאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מציג את החשבוניות החודשיות של הלקוח.
/api/client/statsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד לקוח)מחזיר סטטיסטיקות שימוש עבור לוח הבקרה של הלקוח.
נקודות קצה של מפעיל
צד המפעיל: פרופיל וזמינות, הסמכות, תזמון, וסטטיסטיקות רווחים.
/api/operator/profileאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מחזיר את פרופיל המפעיל של המשתמש המאומת.
/api/operator/profileאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)יוצר או מעדכן את פרופיל המפעיל.
/api/operator/available-robotsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מציג רובוטים שזמינים כרגע ותואמים להסמכות של המפעיל.
/api/operator/certificationsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מציג את בקשות ההסמכה של המפעיל ואת הסטטוס שלהן.
/api/operator/certificationsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מבקש הסמכה עבור סוג רובוט.
/api/operator/scheduleאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מחזיר את לוח הזמינות השבועי של המפעיל.
/api/operator/scheduleאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מעדכן את לוח הזמינות השבועי.
/api/operator/availabilityאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מחזיר את הזמינות הנוכחית של המפעיל.
/api/operator/statsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מחזיר סטטיסטיקות רווחים והפעלות עבור לוח הבקרה של המפעיל.
הפעלות
הפעלות הן המשאב המרכזי של הפלטפורמה: הפעלה אחת היא מעורבות תפעול מרחוק רציפה אחת בין מפעיל לרובוט. סטטוס הפעלה עובר דרך PENDING, ACTIVE, PAUSED, COMPLETED, ו-CANCELLED.
/api/sessionsאסימון הפעלה מסוג Bearer או מפתח APIמציג הפעלות עבור המשתמש המאומת. מפעילים רואים הפעלות שהם הפעילו; לקוחות רואים הפעלות על הרובוטים שלהם. קבוצת השדות שונה מעט בין שתי התצוגות: תצוגת הלקוח כוללת episodes_collected ו-data_collected_mb, תצוגת המפעיל כוללת 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/sessionsאסימון הפעלה מסוג Bearer או מפתח API (תפקיד מפעיל)מתחיל הפעלת תפעול מרחוק על רובוט זמין. דורש תפקיד מפעיל: לקוחות לא יכולים להתחיל הפעלות. מפעיל יכול להחזיק לכל היותר הפעלה אחת ACTIVE או PAUSED בכל רגע נתון, והרובוט חייב להיות כרגע בסטטוס AVAILABLE. בהתחלה מיידית הרובוט עובר ל-IN_SESSION והלקוח מקבל התראה.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | חובה. מזהה הרובוט להפעלה. הרובוט חייב להיות AVAILABLE. |
| operatorId | body | string | אופציונלי. מזהה מפעיל מפורש; ברירת המחדל היא המפעיל המאומת. |
| 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מעדכן את מחזור החיים של ההפעלה: השהיה, חידוש, סיום, ופעולות קשורות.
/api/sessions/[id]/extendאסימון הפעלה מסוג Bearer או מפתח API (לקוח, בעל ההפעלה)מבקש הרחבת הפעלה. רק הלקוח שבבעלותו ההפעלה יכול לקרוא לזה, וההפעלה חייבת להיות ACTIVE. הבקשה נרשמת כאירוע הפעלה והמפעיל מקבל התראה; ההרחבה עצמה קורית כשהמפעיל פועל לפיה.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | מזהה ההפעלה. |
| 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]/messagesאסימון הפעלה מסוג Bearer או מפתח APIמציג את הודעות הצ׳אט של הפעלה.
/api/sessions/[id]/messagesאסימון הפעלה מסוג Bearer או מפתח APIשולח הודעת צ׳אט בהפעלה.
/api/sessions/[id]/rateאסימון הפעלה מסוג Bearer או מפתח API (לקוח)מדרג הפעלה שהושלמה בסולם של 1 עד 5 כוכבים, עם הערה אופציונלית.
/api/sessions/exportאסימון הפעלה מסוג Bearer או מפתח APIמייצא נתוני הפעלה.
תשלומים
כל תנועת כסף עוברת דרך Stripe. חיוב לקוחות משתמש בלקוח Stripe עם אמצעי תשלום שמור; משיכות מפעילים משתמשות ב-Stripe Connect. הפלטפורמה עצמה לעולם לא שומרת נתוני כרטיס או בנק.
/api/stripe/customerאסימון הפעלה מסוג Bearer (תפקיד לקוח)יוצר או מחזיר את לקוח ה-Stripe המשמש לחיוב לקוחות.
/api/stripe/connectאסימון הפעלה מסוג Bearer (תפקיד מפעיל)מחזיר את סטטוס חשבון Stripe Connect של המפעיל.
/api/stripe/connectאסימון הפעלה מסוג Bearer (תפקיד מפעיל)מתחיל onboarding של Stripe Connect עבור משיכות מפעילים.
/api/stripe/setup-intentאסימון הפעלה מסוג Bearer (תפקיד לקוח)יוצר Stripe SetupIntent לשמירת אמצעי תשלום.
/api/stripe/portalאסימון הפעלה מסוג Bearer (תפקיד לקוח)יוצר הפעלת פורטל חיוב של Stripe לניהול אמצעי תשלום וחשבוניות.
/api/stripe/payoutאסימון הפעלה מסוג Bearer (תפקיד מפעיל)מחזיר מידע משיכה עבור המפעיל המאומת.
/api/stripe/payoutאסימון הפעלה מסוג Bearer (תפקיד מפעיל)מבקש משיכה של רווחים שנצברו. המשיכה המינימלית היא 10.00 EUR.
/api/stripe/webhookחתימת webhook של Stripeמקבל אירועי webhook של Stripe. נקרא על ידי Stripe, לא על ידי לקוחות API.
נקודות קצה ציבוריות
נקודות קצה אלה לא דורשות אימות. בטוח לקרוא להן ממעקב, עמודי שיווק, או בדיקת סטטוס.
/api/healthבדיקת תקינות עבור ה-API וחיבור מסד הנתונים שלו. מחזיר 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מחזיר סטטיסטיקות פלטפורמה ציבוריות.