API ማጣቀሻ
የ AY-Robots REST API በ https://www.ay-robots.com/api ስር ይኖራል በሁለቱም አቅጣጫ JSON ይናገራል። ይህ ገጽ ማረጋገጫን፣ የ response ልማዶችን፣ እያንዳንዱን endpoint ይመዘግባል፣ በ programmatically ሊደውሏቸው ለሚችሏቸው routes ሙሉ የ parameter ሰነድ ጋር።
መጨረሻ የተዘመነው 2026-08-09
ማረጋገጫ
በ Public ክፍል ውስጥ ካልተዘረዘረ በስተቀር እያንዳንዱ endpoint ማረጋገጫ ይፈልጋል። API ሁለት ዓይነት credentials ይቀበላል፣ ሁለቱም በተመሳሳይ መንገድ ይደርሳሉ: dashboard አስቀድሞ የሚልከው session cookie ወይም Bearer token ያለው Authorization header ሆነው።
| ዘዴ | እንዴት እንደሚሰራ | ለምን እንደሚያገለግል |
|---|---|---|
| Browser session | እንደ cookie ወይም Bearer token የተላከው የገባ መለያዎ Supabase session token | ራሱ dashboard ና ከተረጋገጠ browser context ፈጣን ሙከራዎች |
| API key | በ /dashboard/settings የተፈጠረና እንደ Bearer token የሚላክ ayr_live_ prefix ያለው key | Scripts, servers, CI, ብራውዘር login ላይ መደገፍ የሌለበት ማንኛውም ነገር |
| MCP | በ https://www.ay-robots.com/api/mcp ላይ ያለው ተስተናጋጅ MCP server (Streamable HTTP) | Model Context Protocol የሚናገሩ LLM agent ዎችና መሳሪያዎች |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API keys በ /dashboard/settings ውስጥ ይፈጠራሉ ይሰረዛሉም። እንደ ይለፍ ቃል ይያዙዋቸው: server-side ያቆዩዋቸው፣ አሮጌውን key ከመሰረዝዎ በፊት አዲስ key በመፍጠር ይቀያይሩ። Desktop CLI ን የሚጠቀሙ ከሆነ፣ በ ay-robots mcp ትዕዛዝ መድረኩን እንደ አካባቢያዊ MCP server ማጋለጥም ይችላል።
Response ዎች JSON ናቸው። ስህተቶች ወጥ ቅርጽ ይጠቀማሉ: ተነባቢ መልዕክት ያለው ነጠላ error field ያለው JSON object፣ ተገቢ 4xx ወይም 5xx status code ጋር ተላልፎ። Success response ዎች resource ውን በቀጥታ ይመልሳሉ፤ ጥቂት endpoint ዎች ዝርዝሮችን በተሰየመ field ውስጥ ይጠቀልላሉ፣ ከዚህ በታች ያሉት ምሳሌዎችም ሲያስፈልግ ያሳያሉ።
Auth Endpoint ዎች
የመለያና የመገለጫ መሰረታዊ ስራዎች። እነዚህ በዋነኝነት ራሱ dashboard ይጠቀማቸዋል፣ ግን ከማንኛውም ትክክለኛ credential ጋር ይሰራሉ።
/api/auth/profileBearer session token ወይም API keyየተረጋገጠውን ተጠቃሚ መገለጫ ይመልሳል።
/api/auth/profileBearer session token ወይም API keyእንደ display name እና notification preferences ያሉ የመገለጫ fields ያድሳል።
/api/auth/syncBearer session tokenየ Supabase auth ተጠቃሚን ከመድረክ ተጠቃሚ ሪከርድ ጋር ያመሳስላል።
/api/auth/check-onboardingBearer session tokenየተረጋገጠው ተጠቃሚ onboarding ማጠናቀቁን ያሳውቃል።
/api/auth/avatarBearer session tokenለተረጋገጠው ተጠቃሚ አዲስ avatar ምስል ይሰቅላል።
Client Endpoint ዎች
የሮቦት ባለቤት የሚያስተዳድረው ነገር ሁሉ: የተመዘገቡ ሮቦቶች፣ የደንበኛ መገለጫ፣ dataset ዎች፣ ደረሰኞች፣ የ dashboard ስታቲስቲክስ።
/api/client/robotsBearer session token ወይም API key (የደንበኛ ሚና)በተረጋገጠው ደንበኛ የተመዘገቡ ሮቦቶችን ይዘረዝራል፣ አዲሱ መጀመሪያ፣ እስከ 50 entries። Timestamp ዎች 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 session token ወይም API key (የደንበኛ ሚና)አዲስ ሮቦት ይመዘግባል id ውንም ይመልሳል። አንድ motor board hardware id ለአንድ ሮቦት ብቻ ሊገባ ይችላል፤ ግጭት በ status 409 ውድቅ ይደረጋል።
/api/client/profileBearer session token ወይም API key (የደንበኛ ሚና)የተረጋገጠውን ተጠቃሚ የደንበኛ መገለጫ ይመልሳል።
/api/client/profileBearer session token ወይም API key (የደንበኛ ሚና)የደንበኛ መገለጫ fields ያድሳል።
/api/client/datasetsBearer session token ወይም API key (የደንበኛ ሚና)የደንበኛውን cloud dataset ዎች ከ episode ብዛትና መጠን ጋር ይዘረዝራል።
/api/client/invoicesBearer session token ወይም API key (የደንበኛ ሚና)የደንበኛውን ወርሃዊ ደረሰኞች ይዘረዝራል።
/api/client/statsBearer session token ወይም API key (የደንበኛ ሚና)ለደንበኛ dashboard የአጠቃቀም ስታቲስቲክስ ይመልሳል።
Operator Endpoint ዎች
የኦፕሬተር ጎን: መገለጫና መገኘት፣ ሰርተፊኬሽን፣ ስኬጁል፣ የገቢ ስታቲስቲክስ።
/api/operator/profileBearer session token ወይም API key (የኦፕሬተር ሚና)የተረጋገጠውን ተጠቃሚ የኦፕሬተር መገለጫ ይመልሳል።
/api/operator/profileBearer session token ወይም API key (የኦፕሬተር ሚና)የኦፕሬተር መገለጫ ይፈጥራል ወይም ያድሳል።
/api/operator/available-robotsBearer session token ወይም API key (የኦፕሬተር ሚና)አሁን የሚገኙ ከኦፕሬተሩ ሰርተፊኬሽን ጋር የሚስማሙ ሮቦቶችን ይዘረዝራል።
/api/operator/certificationsBearer session token ወይም API key (የኦፕሬተር ሚና)የኦፕሬተሩን የሰርተፊኬሽን ጥያቄዎችና ሁኔታቸውን ይዘረዝራል።
/api/operator/certificationsBearer session token ወይም API key (የኦፕሬተር ሚና)ለሮቦት ዓይነት ሰርተፊኬት ይጠይቃል።
/api/operator/scheduleBearer session token ወይም API key (የኦፕሬተር ሚና)የኦፕሬተሩን ሳምንታዊ የመገኘት ስኬጁል ይመልሳል።
/api/operator/scheduleBearer session token ወይም API key (የኦፕሬተር ሚና)ሳምንታዊ የመገኘት ስኬጁል ያድሳል።
/api/operator/availabilityBearer session token ወይም API key (የኦፕሬተር ሚና)የኦፕሬተሩን የአሁኑን መገኘት ይመልሳል።
/api/operator/statsBearer session token ወይም API key (የኦፕሬተር ሚና)ለኦፕሬተር dashboard የገቢና ክፍለ ጊዜ ስታቲስቲክስ ይመልሳል።
ክፍለ ጊዜዎች
ክፍለ ጊዜዎች የመድረኩ ዋና resource ናቸው: አንድ ክፍለ ጊዜ በኦፕሬተርና ሮቦት መካከል ያለ አንድ ቀጣይ የቴሌኦፕሬሽን ተሳትፎ ነው። Session status በ PENDING, ACTIVE, PAUSED, COMPLETED, CANCELLED በኩል ይንቀሳቀሳል።
/api/sessionsBearer session token ወይም API keyለተረጋገጠው ተጠቃሚ ክፍለ ጊዜዎችን ይዘረዝራል። ኦፕሬተሮች ያንቀሳቀሱባቸውን ክፍለ ጊዜዎች ያያሉ፤ ደንበኞች በሮቦቶቻቸው ላይ ያሉትን ክፍለ ጊዜዎች ያያሉ። Field set በሁለቱ views መካከል ትንሽ ይለያያል: የደንበኛ view episodes_collected እና data_collected_mb ያካትታል፣ የኦፕሬተር view ደግሞ operator_earnings_cents ያካትታል።
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | ግዴታ የለም። እንደ ACTIVE ወይም COMPLETED ባለ session status ያጣራ። ሁሉንም ለመዘርዘር ይተውት። |
| limit | query | number | ግዴታ የለም። የገጽ መጠን፣ ነባሪ 50፣ ከፍተኛ 100። |
| offset | query | number | ግዴታ የለም። የ pagination offset፣ ነባሪ 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 session token ወይም API key (የኦፕሬተር ሚና)በሚገኝ ሮቦት ላይ የቴሌኦፕሬሽን ክፍለ ጊዜ ይጀምራል። የኦፕሬተር ሚና ይፈልጋል: ደንበኞች ክፍለ ጊዜዎችን መጀመር አይችሉም። ኦፕሬተር በአንድ ጊዜ ቢበዛ አንድ ACTIVE ወይም PAUSED ክፍለ ጊዜ ብቻ ሊይዝ ይችላል፣ ሮቦቱም አሁን status 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 session token ወይም API keyነጠላ ክፍለ ጊዜን ከዝርዝሮቹ ጋር ይመልሳል።
/api/sessions/[id]Bearer session token ወይም API keyየክፍለ ጊዜ የህይወት ዑደት ያድሳል: ማቆም፣ መቀጠል፣ ማጠናቀቅ፣ ተዛማጅ ድርጊቶች።
/api/sessions/[id]/extendBearer session token ወይም API key (ደንበኛ፣ የክፍለ ጊዜ ባለቤት)የክፍለ ጊዜ ማራዘሚያ ይጠይቃል። ክፍለ ጊዜውን የያዘው ደንበኛ ብቻ ይህንን ሊጠራ ይችላል፣ ክፍለ ጊዜውም ACTIVE መሆን አለበት። ጥያቄው እንደ session event ይመዘገባል ኦፕሬተሩም ማስታወቂያ ይቀበላል፤ ማራዘሚያው ራሱ ኦፕሬተሩ ምላሽ ሲሰጥ ይከናወናል።
| 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 session token ወይም API keyየክፍለ ጊዜውን የውይይት መልዕክቶች ይዘረዝራል።
/api/sessions/[id]/messagesBearer session token ወይም API keyበክፍለ ጊዜ ውስጥ የውይይት መልዕክት ይልካል።
/api/sessions/[id]/rateBearer session token ወይም API key (ደንበኛ)የተጠናቀቀ ክፍለ ጊዜ ከ 1 እስከ 5 ኮከብ ደረጃ ላይ ይገመግማል፣ ከግዴታ ውጭ አስተያየት ጋር።
/api/sessions/exportBearer session token ወይም API keyየክፍለ ጊዜ ዳታ export ያደርጋል።
ክፍያዎች
ገንዘብ የሚንቀሳቀሰው ሁሉ በ Stripe በኩል ነው። የደንበኛ ቢሊንግ የተቀመጠ የክፍያ ዘዴ ያለው የ Stripe customer ይጠቀማል፤ የኦፕሬተር ክፍያዎች Stripe Connect ይጠቀማሉ። ራሱ መድረኩ የካርድ ወይም የባንክ ዳታ በፍጹም አያከማችም።
/api/stripe/customerBearer session token (የደንበኛ ሚና)ለደንበኛ ቢሊንግ የሚያገለግለውን Stripe customer ይፈጥራል ወይም ይመልሳል።
/api/stripe/connectBearer session token (የኦፕሬተር ሚና)የኦፕሬተሩን Stripe Connect account ሁኔታ ይመልሳል።
/api/stripe/connectBearer session token (የኦፕሬተር ሚና)ለኦፕሬተር ክፍያዎች Stripe Connect onboarding ይጀምራል።
/api/stripe/setup-intentBearer session token (የደንበኛ ሚና)የክፍያ ዘዴ ለማከማቸት Stripe SetupIntent ይፈጥራል።
/api/stripe/portalBearer session token (የደንበኛ ሚና)የክፍያ ዘዴዎችንና ደረሰኞችን ለማስተዳደር Stripe billing portal session ይፈጥራል።
/api/stripe/payoutBearer session token (የኦፕሬተር ሚና)ለተረጋገጠው ኦፕሬተር የክፍያ መረጃ ይመልሳል።
/api/stripe/payoutBearer session token (የኦፕሬተር ሚና)ከተጠራቀመ ገቢ ክፍያ ይጠይቃል። ዝቅተኛው ክፍያ 10.00 EUR ነው።
/api/stripe/webhookStripe webhook signatureየ Stripe webhook ክስተቶችን ይቀበላል። በ Stripe ይጠራል፣ በ API clients አይደለም።
የህዝብ Endpoint ዎች
እነዚህ endpoint ዎች ምንም ማረጋገጫ አይፈልጉም። ከክትትል፣ ከማርኬቲንግ ገጾች፣ ወይም ከ status probe መጥራት ደህና ናቸው።
/api/healthለ API ው እና ለ database ግንኙነቱ የጤና ምርመራ። ሁለቱም ደህና ሲሆኑ 200 ይመልሳል፤ database ምርመራው ቢወድቅ፣ ተመሳሳዩ ቅርጽ 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የአሁኑን የህዝብ pricing plans ይመልሳል።
/api/contactየ contact form መልዕክት ያቀርባል። መልዕክቱ መጀመሪያ ይቀመጣል ከዚያም በኢሜይል ይላካል፣ ስለዚህ ጊዜያዊ የፖስታ መቋረጥ አያጠፋውም: በዚያ ጊዜ response ው stored true እና delivered false ሪፖርት ያደርጋል፣ delivery ውም በ operational ደረጃ ደግሞ ይሞከራል።
| 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የህዝብ የመድረክ ስታቲስቲክስ ይመልሳል።