API යොමුව

AY-Robots REST API එක https://www.ay-robots.com/api යටතේ වාසය කර දෙපැත්තෙන්ම JSON කථා කරයි. මෙම පිටුව සත්‍යාපනය, response conventions, සෑම endpoint එකක්ම, ඔබ programmatically call කිරීමට වැඩිම ඉඩක් ඇති routes සඳහා සම්පූර්ණ parameter ලේඛනගත කිරීම සමඟ ලේඛනගත කරයි.

අවසන් යාවත්කාලීන 2026-08-09

සත්‍යාපනය

Public කොටසේ ලැයිස්තුගත කර නොමැති නම් සෑම endpoint එකකටම සත්‍යාපනය අවශ්‍ය වේ. API එක credentials ආකාර දෙකක් පිළිගන්නා අතර, දෙකම එකම ආකාරයකින් පැමිණේ: ඩෑෂ්බෝඩය දැනටමත් යවන session cookie එක ලෙස, නැතහොත් Bearer token එකක් සහිත Authorization header එකක් ලෙස.

ක්‍රමයඑය ක්‍රියා කරන ආකාරයභාවිත කරන්නේ
බ්‍රවුසර සැසියඔබේ පුරන ලද ගිණුමේ Supabase session token එක, cookie එකක් ලෙස හෝ Bearer token එකක් ලෙස යවනු ලැබේඩෑෂ්බෝඩය එකම සහ සත්‍යාපිත බ්‍රවුසර සන්දර්භයකින් ඉක්මන් අත්හදාබැලීම්
API යතුර/dashboard/settings හි නිර්මාණය කර Bearer token එකක් ලෙස යවනු ලබන ayr_live_ prefix එකක් සහිත යතුරක්scripts, servers, CI, බ්‍රවුසර login එකක් මත රඳා නොසිටිය යුතු ඕනෑම දෙයක්
MCPhttps://www.ay-robots.com/api/mcp හි host කළ MCP සර්වරය (Streamable HTTP)Model Context Protocol කථා කරන LLM agents සහ tools
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
API යතුරකින් සත්‍යාපනය කිරීම

API යතුරු /dashboard/settings හි නිර්මාණය කර අවලංගු කෙරේ. ඒවා මුරපදයක් මෙන් සලකන්න: server-side එකේ තබා, පැරණි යතුර අවලංගු කිරීමට පෙර ප්‍රතිස්ථාපන යතුරක් නිර්මාණය කිරීමෙන් rotate කරන්න. ඔබ desktop CLI භාවිත කරන්නේ නම්, එයට වේදිකාව ස්ථානීය MCP සර්වරයක් ලෙසද ලබා දිය හැක: ay-robots mcp යන command එකෙන්.

Responses JSON වේ. Errors ස්ථාවර හැඩයක් භාවිත කරයි: manviya-කියවිය හැකි message එකක් සහිත එකම error field එකක් සහිත JSON object එකක්, සුදුසු 4xx හෝ 5xx status code එකක් සමඟ. සාර්ථක responses resource එක කෙලින්ම ලබා දෙයි; සමහර endpoints lists නම් කළ field එකක ඔතන අතර, එය පහත උදාහරණ වැදගත් වන තැන පෙන්වයි.

Auth endpoints

ගිණුම් හා පැතිකඩ plumbing. මේවා ප්‍රධාන වශයෙන් ඩෑෂ්බෝඩය විසින්ම භාවිත කෙරෙන නමුත් ඕනෑම වලංගු 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 පරිශීලකයා වේදිකා පරිශීලක record එක සමඟ sync කරයි.

GET/api/auth/check-onboardingBearer session token

සත්‍යාපිත පරිශීලකයා ඔන්බෝඩින් සම්පූර්ණ කර ඇත්දැයි වාර්තා කරයි.

POST/api/auth/avatarBearer session token

සත්‍යාපිත පරිශීලකයා සඳහා නව avatar image එකක් upload කරයි.

Client endpoints

රොබෝ හිමියෙකු කළමනාකරණය කරන සියල්ල: ලියාපදිංචි කළ රොබෝ, client පැතිකඩ, ඩේටාසෙට්, invoices, ඩෑෂ්බෝඩ් සංඛ්‍යාලේඛන.

GET/api/client/robotsBearer session token හෝ API key (client භූමිකාව)

සත්‍යාපිත client එකා ලියාපදිංචි කළ රොබෝ, අලුත්ම මුලින්, entries 50ක් දක්වා ලැයිස්තුගත කරයි. timestamps 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 (client භූමිකාව)

නව රොබෝවක් ලියාපදිංචි කර එහි id ලබා දෙයි. motor board hardware id එකක් එක් රොබෝවකට පමණක් අයත් විය හැක; ගැටුමක් status 409 සමඟ ප්‍රතික්ෂේප කෙරේ.

GET/api/client/profileBearer session token හෝ API key (client භූමිකාව)

සත්‍යාපිත පරිශීලකයාගේ client පැතිකඩ ලබා දෙයි.

PATCH/api/client/profileBearer session token හෝ API key (client භූමිකාව)

client පැතිකඩ fields යාවත්කාලීන කරයි.

GET/api/client/datasetsBearer session token හෝ API key (client භූමිකාව)

episode ගණන් හා ප්‍රමාණ සමඟ client එකාගේ ක්ලවුඩ් ඩේටාසෙට් ලැයිස්තුගත කරයි.

GET/api/client/invoicesBearer session token හෝ API key (client භූමිකාව)

client එකාගේ මාසික invoices ලැයිස්තුගත කරයි.

GET/api/client/statsBearer session token හෝ API key (client භූමිකාව)

client ඩෑෂ්බෝඩය සඳහා භාවිත සංඛ්‍යාලේඛන ලබා දෙයි.

Operator endpoints

operator පැත්ත: පැතිකඩ හා ලබාගත හැකිතාව, සහතික කිරීම්, කාලසටහන්, ආදායම් සංඛ්‍යාලේඛන.

GET/api/operator/profileBearer session token හෝ API key (operator භූමිකාව)

සත්‍යාපිත පරිශීලකයාගේ operator පැතිකඩ ලබා දෙයි.

POST/api/operator/profileBearer session token හෝ API key (operator භූමිකාව)

operator පැතිකඩ නිර්මාණය කරයි හෝ යාවත්කාලීන කරයි.

GET/api/operator/available-robotsBearer session token හෝ API key (operator භූමිකාව)

දැනට ලබාගත හැකි හා operator එකාගේ සහතික කිරීම්වලට ගැලපෙන රොබෝ ලැයිස්තුගත කරයි.

GET/api/operator/certificationsBearer session token හෝ API key (operator භූමිකාව)

operator එකාගේ certification ඉල්ලීම් හා ඒවායේ තත්ත්වය ලැයිස්තුගත කරයි.

POST/api/operator/certificationsBearer session token හෝ API key (operator භූමිකාව)

රොබෝ වර්ගයක් සඳහා certification ඉල්ලයි.

GET/api/operator/scheduleBearer session token හෝ API key (operator භූමිකාව)

operator එකාගේ සතිපතා ලබාගත හැකි කාලසටහන ලබා දෙයි.

POST/api/operator/scheduleBearer session token හෝ API key (operator භූමිකාව)

සතිපතා ලබාගත හැකි කාලසටහන යාවත්කාලීන කරයි.

GET/api/operator/availabilityBearer session token හෝ API key (operator භූමිකාව)

operator එකාගේ වර්තමාන ලබාගත හැකිතාව ලබා දෙයි.

GET/api/operator/statsBearer session token හෝ API key (operator භූමිකාව)

operator ඩෑෂ්බෝඩය සඳහා ආදායම් හා සැසි සංඛ්‍යාලේඛන ලබා දෙයි.

Sessions

සැසි වේදිකාවේ ප්‍රධාන resource එකයි: එක් සැසියක් යනු operator එකෙකු හා රොබෝවක් අතර එක් අඛණ්ඩ දුරස්ථ මෙහෙයුම් engagement එකකි. සැසි status එක PENDING, ACTIVE, PAUSED, COMPLETED, CANCELLED හරහා ගමන් කරයි.

GET/api/sessionsBearer session token හෝ API key

සත්‍යාපිත පරිශීලකයා සඳහා සැසි ලැයිස්තුගත කරයි. operators ඔවුන් operate කළ සැසි දකින අතර, clients ඔවුන්ගේ රොබෝ මත ඇති සැසි දකී. දර්ශන දෙක අතර field set එක ටිකක් වෙනස් වේ: client දර්ශනයට episodes_collected සහ data_collected_mb ඇතුළත් වේ, operator දර්ශනයට operator_earnings_cents ඇතුළත් වේ.

NameInTypeDescription
statusquerystringවිකල්පයි. සැසි status එක අනුව filter කරන්න, උදාහරණයක් ලෙස ACTIVE හෝ COMPLETED. සියල්ල ලැයිස්තුගත කිරීමට හැර දමන්න.
limitquerynumberවිකල්පයි. page ප්‍රමාණය, default 50, උපරිම 100.
offsetquerynumberවිකල්පයි. pagination offset, default 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 (operator භූමිකාව)

ලබාගත හැකි රොබෝවක් මත දුරස්ථ මෙහෙයුම් සැසියක් ආරම්භ කරයි. operator භූමිකාව අවශ්‍යයි: clients සඳහා සැසි ආරම්භ කළ නොහැක. operator එකෙකුට එකවර උපරිම ACTIVE හෝ PAUSED සැසියක් පමණක් තිබිය හැක, රොබෝවේ වර්තමාන status එක AVAILABLE විය යුතුය. වහාම ආරම්භ වීමකදී රොබෝව IN_SESSION බවට හැරෙන අතර client එකාට දැනුම් දෙනු ලැබේ.

NameInTypeDescription
robotIdbodystringඅවශ්‍යයි. operate කළ යුතු රොබෝවේ id. රොබෝව AVAILABLE විය යුතුය.
operatorIdbodystringවිකල්පයි. පැහැදිලි operator id; default සත්‍යාපිත operator එකයි.
scheduledForbodystring (ISO 8601)විකල්පයි. වහාම ආරම්භ කරනවා වෙනුවට අනාගත වේලාවකට සැසිය schedule කරයි.
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

සැසි ජීවන චක්‍රය යාවත්කාලීන කරයි: pause, resume, end, සම්බන්ධ ක්‍රියා.

POST/api/sessions/[id]/extendBearer session token හෝ API key (client, සැසි හිමිකරු)

සැසි දිගු කිරීමක් ඉල්ලයි. සැසිය සතු client එකාට පමණක් මෙය call කළ හැක, සැසිය ACTIVE විය යුතුය. ඉල්ලීම සැසි සිදුවීමක් ලෙස ලොග් වන අතර operator එකාට notification එකක් ලැබේ; දිගු කිරීම සිදුවන්නේ operator එකා එය මත ක්‍රියා කරන විටයි.

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

සැසියක chat messages ලැයිස්තුගත කරයි.

POST/api/sessions/[id]/messagesBearer session token හෝ API key

සැසියක chat message එකක් යවයි.

POST/api/sessions/[id]/rateBearer session token හෝ API key (client)

සම්පූර්ණ කළ සැසියක් තරු 1 සිට 5 දක්වා පරිමාණයකින්, විකල්ප අදහසක් සමඟ, ශ්‍රේණිගත කරයි.

POST/api/sessions/exportBearer session token හෝ API key

සැසි දත්ත නිර්යාත කරයි.

Payments

සියලු මුදල් චලනය Stripe හරහා ධාවනය වේ. client billing එක සුරැකි ගෙවීම් ක්‍රමයක් සහිත Stripe customer එකක් භාවිත කරයි; operator payouts Stripe Connect භාවිත කරයි. වේදිකාව ම කිසිදා card හෝ bank දත්ත ගබඩා නොකරයි.

POST/api/stripe/customerBearer session token (client භූමිකාව)

client billing සඳහා භාවිත කරන Stripe customer එක නිර්මාණය කරයි හෝ ලබා දෙයි.

GET/api/stripe/connectBearer session token (operator භූමිකාව)

operator එකාගේ Stripe Connect ගිණුමේ status එක ලබා දෙයි.

POST/api/stripe/connectBearer session token (operator භූමිකාව)

operator payouts සඳහා Stripe Connect ඔන්බෝඩින් ආරම්භ කරයි.

POST/api/stripe/setup-intentBearer session token (client භූමිකාව)

ගෙවීම් ක්‍රමයක් save කිරීම සඳහා Stripe SetupIntent එකක් නිර්මාණය කරයි.

POST/api/stripe/portalBearer session token (client භූමිකාව)

ගෙවීම් ක්‍රම හා invoices කළමනාකරණය කිරීම සඳහා Stripe billing portal සැසියක් නිර්මාණය කරයි.

GET/api/stripe/payoutBearer session token (operator භූමිකාව)

සත්‍යාපිත operator එකා සඳහා payout තොරතුරු ලබා දෙයි.

POST/api/stripe/payoutBearer session token (operator භූමිකාව)

රැස් වූ ආදායමේ payout එකක් ඉල්ලයි. අවම payout එක යුරෝ 10.00 කි.

POST/api/stripe/webhookStripe webhook අත්සන

Stripe webhook සිදුවීම් ලබා ගනී. Stripe විසින් call කෙරේ, API clients විසින් නොවේ.

Public endpoints

මෙම endpoints සඳහා කිසිදු සත්‍යාපනයක් අවශ්‍ය නොවේ. නිරීක්ෂණය, marketing pages, හෝ status probe එකකින් call කිරීමට ආරක්ෂිතයි.

GET/api/health

API එක හා එහි database සම්බන්ධතාවය සඳහා health check එකක්. දෙකම හොඳින් ඇත්නම් 200 ලබා දෙයි; database check එක අසාර්ථක වුවහොත්, එකම හැඩය 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

වර්තමාන පොදු මිල නියම සැලසුම් ලබා දෙයි.

POST/api/contact

contact form message එකක් submit කරයි. message එක මුලින්ම ගබඩා කර පසුව email මගින් delivered වේ, එබැවින් තාවකාලික mail outage එකකින් එය නැති නොවේ: එවැනි අවස්ථාවක response එක stored true සහ delivered false වාර්තා කරන අතර, delivery operationally retry කෙරේ.

NameInTypeDescription
namebodystringඅවශ්‍යයි. ඔබේ නම.
emailbodystringඅවශ්‍යයි. reply එක සඳහා වලංගු email ලිපිනයක්.
categorybodystringඅවශ්‍යයි. මේවායින් එකක්: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringඅවශ්‍යයි. කෙටි subject line එකක්.
messagebodystringඅවශ්‍යයි. message body එක.
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

පොදු වේදිකා සංඛ්‍යාලේඛන ලබා දෙයි.