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 ያለው keyScripts, servers, CI, ብራውዘር login ላይ መደገፍ የሌለበት ማንኛውም ነገር
MCPበ https://www.ay-robots.com/api/mcp ላይ ያለው ተስተናጋጅ MCP server (Streamable HTTP)Model Context Protocol የሚናገሩ LLM agent ዎችና መሳሪያዎች
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
በ API key ማረጋገጥ

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 ጋር ይሰራሉ።

GET/api/auth/profileBearer session token ወይም API key

የተረጋገጠውን ተጠቃሚ መገለጫ ይመልሳል።

POST/api/auth/profileBearer session token ወይም API key

እንደ display name እና notification preferences ያሉ የመገለጫ fields ያድሳል።

POST/api/auth/syncBearer session token

የ Supabase auth ተጠቃሚን ከመድረክ ተጠቃሚ ሪከርድ ጋር ያመሳስላል።

GET/api/auth/check-onboardingBearer session token

የተረጋገጠው ተጠቃሚ onboarding ማጠናቀቁን ያሳውቃል።

POST/api/auth/avatarBearer session token

ለተረጋገጠው ተጠቃሚ አዲስ avatar ምስል ይሰቅላል።

Client Endpoint ዎች

የሮቦት ባለቤት የሚያስተዳድረው ነገር ሁሉ: የተመዘገቡ ሮቦቶች፣ የደንበኛ መገለጫ፣ dataset ዎች፣ ደረሰኞች፣ የ dashboard ስታቲስቲክስ።

GET/api/client/robotsBearer session token ወይም API key (የደንበኛ ሚና)

በተረጋገጠው ደንበኛ የተመዘገቡ ሮቦቶችን ይዘረዝራል፣ አዲሱ መጀመሪያ፣ እስከ 50 entries። Timestamp ዎች 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 session token ወይም API key (የደንበኛ ሚና)

አዲስ ሮቦት ይመዘግባል id ውንም ይመልሳል። አንድ motor board hardware id ለአንድ ሮቦት ብቻ ሊገባ ይችላል፤ ግጭት በ status 409 ውድቅ ይደረጋል።

GET/api/client/profileBearer session token ወይም API key (የደንበኛ ሚና)

የተረጋገጠውን ተጠቃሚ የደንበኛ መገለጫ ይመልሳል።

PATCH/api/client/profileBearer session token ወይም API key (የደንበኛ ሚና)

የደንበኛ መገለጫ fields ያድሳል።

GET/api/client/datasetsBearer session token ወይም API key (የደንበኛ ሚና)

የደንበኛውን cloud dataset ዎች ከ episode ብዛትና መጠን ጋር ይዘረዝራል።

GET/api/client/invoicesBearer session token ወይም API key (የደንበኛ ሚና)

የደንበኛውን ወርሃዊ ደረሰኞች ይዘረዝራል።

GET/api/client/statsBearer session token ወይም API key (የደንበኛ ሚና)

ለደንበኛ dashboard የአጠቃቀም ስታቲስቲክስ ይመልሳል።

Operator Endpoint ዎች

የኦፕሬተር ጎን: መገለጫና መገኘት፣ ሰርተፊኬሽን፣ ስኬጁል፣ የገቢ ስታቲስቲክስ።

GET/api/operator/profileBearer session token ወይም API key (የኦፕሬተር ሚና)

የተረጋገጠውን ተጠቃሚ የኦፕሬተር መገለጫ ይመልሳል።

POST/api/operator/profileBearer session token ወይም API key (የኦፕሬተር ሚና)

የኦፕሬተር መገለጫ ይፈጥራል ወይም ያድሳል።

GET/api/operator/available-robotsBearer session token ወይም API key (የኦፕሬተር ሚና)

አሁን የሚገኙ ከኦፕሬተሩ ሰርተፊኬሽን ጋር የሚስማሙ ሮቦቶችን ይዘረዝራል።

GET/api/operator/certificationsBearer session token ወይም API key (የኦፕሬተር ሚና)

የኦፕሬተሩን የሰርተፊኬሽን ጥያቄዎችና ሁኔታቸውን ይዘረዝራል።

POST/api/operator/certificationsBearer session token ወይም API key (የኦፕሬተር ሚና)

ለሮቦት ዓይነት ሰርተፊኬት ይጠይቃል።

GET/api/operator/scheduleBearer session token ወይም API key (የኦፕሬተር ሚና)

የኦፕሬተሩን ሳምንታዊ የመገኘት ስኬጁል ይመልሳል።

POST/api/operator/scheduleBearer session token ወይም API key (የኦፕሬተር ሚና)

ሳምንታዊ የመገኘት ስኬጁል ያድሳል።

GET/api/operator/availabilityBearer session token ወይም API key (የኦፕሬተር ሚና)

የኦፕሬተሩን የአሁኑን መገኘት ይመልሳል።

GET/api/operator/statsBearer session token ወይም API key (የኦፕሬተር ሚና)

ለኦፕሬተር dashboard የገቢና ክፍለ ጊዜ ስታቲስቲክስ ይመልሳል።

ክፍለ ጊዜዎች

ክፍለ ጊዜዎች የመድረኩ ዋና resource ናቸው: አንድ ክፍለ ጊዜ በኦፕሬተርና ሮቦት መካከል ያለ አንድ ቀጣይ የቴሌኦፕሬሽን ተሳትፎ ነው። Session status በ PENDING, ACTIVE, PAUSED, COMPLETED, CANCELLED በኩል ይንቀሳቀሳል።

GET/api/sessionsBearer session token ወይም API key

ለተረጋገጠው ተጠቃሚ ክፍለ ጊዜዎችን ይዘረዝራል። ኦፕሬተሮች ያንቀሳቀሱባቸውን ክፍለ ጊዜዎች ያያሉ፤ ደንበኞች በሮቦቶቻቸው ላይ ያሉትን ክፍለ ጊዜዎች ያያሉ። Field set በሁለቱ views መካከል ትንሽ ይለያያል: የደንበኛ view episodes_collected እና data_collected_mb ያካትታል፣ የኦፕሬተር view ደግሞ operator_earnings_cents ያካትታል።

NameInTypeDescription
statusquerystringግዴታ የለም። እንደ ACTIVE ወይም COMPLETED ባለ session status ያጣራ። ሁሉንም ለመዘርዘር ይተውት።
limitquerynumberግዴታ የለም። የገጽ መጠን፣ ነባሪ 50፣ ከፍተኛ 100።
offsetquerynumberግዴታ የለም። የ pagination offset፣ ነባሪ 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 session token ወይም API key (የኦፕሬተር ሚና)

በሚገኝ ሮቦት ላይ የቴሌኦፕሬሽን ክፍለ ጊዜ ይጀምራል። የኦፕሬተር ሚና ይፈልጋል: ደንበኞች ክፍለ ጊዜዎችን መጀመር አይችሉም። ኦፕሬተር በአንድ ጊዜ ቢበዛ አንድ ACTIVE ወይም PAUSED ክፍለ ጊዜ ብቻ ሊይዝ ይችላል፣ ሮቦቱም አሁን status 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 session token ወይም API key

ነጠላ ክፍለ ጊዜን ከዝርዝሮቹ ጋር ይመልሳል።

PATCH/api/sessions/[id]Bearer session token ወይም API key

የክፍለ ጊዜ የህይወት ዑደት ያድሳል: ማቆም፣ መቀጠል፣ ማጠናቀቅ፣ ተዛማጅ ድርጊቶች።

POST/api/sessions/[id]/extendBearer session token ወይም API key (ደንበኛ፣ የክፍለ ጊዜ ባለቤት)

የክፍለ ጊዜ ማራዘሚያ ይጠይቃል። ክፍለ ጊዜውን የያዘው ደንበኛ ብቻ ይህንን ሊጠራ ይችላል፣ ክፍለ ጊዜውም ACTIVE መሆን አለበት። ጥያቄው እንደ session event ይመዘገባል ኦፕሬተሩም ማስታወቂያ ይቀበላል፤ ማራዘሚያው ራሱ ኦፕሬተሩ ምላሽ ሲሰጥ ይከናወናል።

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 session token ወይም API key

የክፍለ ጊዜውን የውይይት መልዕክቶች ይዘረዝራል።

POST/api/sessions/[id]/messagesBearer session token ወይም API key

በክፍለ ጊዜ ውስጥ የውይይት መልዕክት ይልካል።

POST/api/sessions/[id]/rateBearer session token ወይም API key (ደንበኛ)

የተጠናቀቀ ክፍለ ጊዜ ከ 1 እስከ 5 ኮከብ ደረጃ ላይ ይገመግማል፣ ከግዴታ ውጭ አስተያየት ጋር።

POST/api/sessions/exportBearer session token ወይም API key

የክፍለ ጊዜ ዳታ export ያደርጋል።

ክፍያዎች

ገንዘብ የሚንቀሳቀሰው ሁሉ በ Stripe በኩል ነው። የደንበኛ ቢሊንግ የተቀመጠ የክፍያ ዘዴ ያለው የ Stripe customer ይጠቀማል፤ የኦፕሬተር ክፍያዎች Stripe Connect ይጠቀማሉ። ራሱ መድረኩ የካርድ ወይም የባንክ ዳታ በፍጹም አያከማችም።

POST/api/stripe/customerBearer session token (የደንበኛ ሚና)

ለደንበኛ ቢሊንግ የሚያገለግለውን Stripe customer ይፈጥራል ወይም ይመልሳል።

GET/api/stripe/connectBearer session token (የኦፕሬተር ሚና)

የኦፕሬተሩን Stripe Connect account ሁኔታ ይመልሳል።

POST/api/stripe/connectBearer session token (የኦፕሬተር ሚና)

ለኦፕሬተር ክፍያዎች Stripe Connect onboarding ይጀምራል።

POST/api/stripe/setup-intentBearer session token (የደንበኛ ሚና)

የክፍያ ዘዴ ለማከማቸት Stripe SetupIntent ይፈጥራል።

POST/api/stripe/portalBearer session token (የደንበኛ ሚና)

የክፍያ ዘዴዎችንና ደረሰኞችን ለማስተዳደር Stripe billing portal session ይፈጥራል።

GET/api/stripe/payoutBearer session token (የኦፕሬተር ሚና)

ለተረጋገጠው ኦፕሬተር የክፍያ መረጃ ይመልሳል።

POST/api/stripe/payoutBearer session token (የኦፕሬተር ሚና)

ከተጠራቀመ ገቢ ክፍያ ይጠይቃል። ዝቅተኛው ክፍያ 10.00 EUR ነው።

POST/api/stripe/webhookStripe webhook signature

የ Stripe webhook ክስተቶችን ይቀበላል። በ Stripe ይጠራል፣ በ API clients አይደለም።

የህዝብ Endpoint ዎች

እነዚህ endpoint ዎች ምንም ማረጋገጫ አይፈልጉም። ከክትትል፣ ከማርኬቲንግ ገጾች፣ ወይም ከ status probe መጥራት ደህና ናቸው።

GET/api/health

ለ API ው እና ለ database ግንኙነቱ የጤና ምርመራ። ሁለቱም ደህና ሲሆኑ 200 ይመልሳል፤ database ምርመራው ቢወድቅ፣ ተመሳሳዩ ቅርጽ status እና db ን error ወደሆነ ተቀናብሮ HTTP status 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

የአሁኑን የህዝብ pricing plans ይመልሳል።

POST/api/contact

የ contact form መልዕክት ያቀርባል። መልዕክቱ መጀመሪያ ይቀመጣል ከዚያም በኢሜይል ይላካል፣ ስለዚህ ጊዜያዊ የፖስታ መቋረጥ አያጠፋውም: በዚያ ጊዜ response ው stored true እና delivered false ሪፖርት ያደርጋል፣ delivery ውም በ operational ደረጃ ደግሞ ይሞከራል።

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

የህዝብ የመድረክ ስታቲስቲክስ ይመልሳል።