API রেফারেন্স
AY-Robots REST API থাকে https://www.ay-robots.com/api-এ এবং দুই দিকেই JSON ব্যবহার করে কথা বলে। এই পাতায় অথেনটিকেশন, রেসপন্স কনভেনশনস, এবং প্রতিটি এন্ডপয়েন্ট ডকুমেন্ট করা আছে, যেসব রুট আপনি প্রোগ্রাম্যাটিকভাবে কল করার সম্ভাবনা সবচেয়ে বেশি তাদের জন্য সম্পূর্ণ প্যারামিটার ডকুমেন্টেশনসহ।
সর্বশেষ আপডেট 2026-08-09
অথেনটিকেশন
Public সেকশনে তালিকাভুক্ত না থাকলে প্রতিটি এন্ডপয়েন্টের জন্য অথেনটিকেশন প্রয়োজন। API দুই ধরনের ক্রেডেনশিয়াল গ্রহণ করে, এবং দুটোই একই উপায়ে আসে: হয় ড্যাশবোর্ড ইতিমধ্যে পাঠায় এমন সেশন কুকি হিসেবে, অথবা Bearer টোকেনসহ একটি Authorization হেডার হিসেবে।
| পদ্ধতি | কীভাবে কাজ করে | এর জন্য ব্যবহার করুন |
|---|---|---|
| ব্রাউজার সেশন | আপনার লগ-ইন করা অ্যাকাউন্টের Supabase সেশন টোকেন, কুকি বা Bearer টোকেন হিসেবে পাঠানো হয় | ড্যাশবোর্ড নিজেই এবং একটি অথেনটিকেটেড ব্রাউজার কনটেক্সট থেকে দ্রুত পরীক্ষা |
| API কী | ayr_live_ প্রিফিক্সসহ একটি কী, /dashboard/settings-এ তৈরি এবং Bearer টোকেন হিসেবে পাঠানো হয় | স্ক্রিপ্টস, সার্ভারস, CI, এবং যে কোনো কিছু যা ব্রাউজার লগইনের উপর নির্ভর করা উচিত নয় |
| MCP | https://www.ay-robots.com/api/mcp-এ হোস্টেড 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। এরর একটি সামঞ্জস্যপূর্ণ আকৃতি ব্যবহার করে: একটি পঠনযোগ্য বার্তাসহ একটি একক error ফিল্ডযুক্ত JSON অবজেক্ট, যা যথাযথ 4xx বা 5xx স্ট্যাটাস কোডের সঙ্গে দেওয়া হয়। সাকসেস রেসপন্স সরাসরি রিসোর্স ফেরত দেয়; কিছু এন্ডপয়েন্ট তালিকাকে একটি নামযুক্ত ফিল্ডে মোড়ায়, যা নিচের উদাহরণগুলো যেখানে গুরুত্বপূর্ণ সেখানে দেখায়।
Auth এন্ডপয়েন্টস
অ্যাকাউন্ট ও প্রোফাইলের প্লাম্বিং। এগুলো মূলত ড্যাশবোর্ড নিজেই ব্যবহার করে, তবে এগুলো যেকোনো বৈধ ক্রেডেনশিয়ালের সঙ্গে কাজ করে।
/api/auth/profileBearer সেশন টোকেন বা API কীঅথেনটিকেটেড ব্যবহারকারীর প্রোফাইল ফেরত দেয়।
/api/auth/profileBearer সেশন টোকেন বা API কীডিসপ্লে নাম এবং নোটিফিকেশন প্রেফারেন্সের মতো প্রোফাইল ফিল্ড আপডেট করে।
/api/auth/syncBearer সেশন টোকেনSupabase auth ব্যবহারকারীকে প্ল্যাটফর্ম ইউজার রেকর্ডের সঙ্গে সিঙ্ক্রোনাইজ করে।
/api/auth/check-onboardingBearer সেশন টোকেনঅথেনটিকেটেড ব্যবহারকারী অনবোর্ডিং সম্পন্ন করেছেন কিনা তা রিপোর্ট করে।
/api/auth/avatarBearer সেশন টোকেনঅথেনটিকেটেড ব্যবহারকারীর জন্য একটি নতুন অ্যাভাটার ইমেজ আপলোড করে।
ক্লায়েন্ট এন্ডপয়েন্টস
একজন রোবট মালিক যা কিছু পরিচালনা করেন: রেজিস্টার্ড রোবটস, ক্লায়েন্ট প্রোফাইল, ডেটাসেটস, ইনভয়েসেস, এবং ড্যাশবোর্ড স্ট্যাটিসটিকস।
/api/client/robotsBearer সেশন টোকেন বা API কী (client রোল)অথেনটিকেটেড ক্লায়েন্টের রেজিস্টার্ড রোবটগুলো তালিকাভুক্ত করে, সর্বশেষটি আগে, সর্বোচ্চ 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/robotsBearer সেশন টোকেন বা API কী (client রোল)একটি নতুন রোবট রেজিস্টার করে এবং এর id ফেরত দেয়। একটি মোটর বোর্ড হার্ডওয়্যার id শুধু একটি রোবটের হতে পারে; একটি সংঘর্ষ 409 স্ট্যাটাসের সঙ্গে প্রত্যাখ্যাত হয়।
/api/client/profileBearer সেশন টোকেন বা API কী (client রোল)অথেনটিকেটেড ব্যবহারকারীর ক্লায়েন্ট প্রোফাইল ফেরত দেয়।
/api/client/profileBearer সেশন টোকেন বা API কী (client রোল)ক্লায়েন্ট প্রোফাইল ফিল্ড আপডেট করে।
/api/client/datasetsBearer সেশন টোকেন বা API কী (client রোল)ক্লায়েন্টের ক্লাউড ডেটাসেটস এপিসোড কাউন্ট ও সাইজ সহ তালিকাভুক্ত করে।
/api/client/invoicesBearer সেশন টোকেন বা API কী (client রোল)ক্লায়েন্টের মাসিক ইনভয়েসেস তালিকাভুক্ত করে।
/api/client/statsBearer সেশন টোকেন বা API কী (client রোল)ক্লায়েন্ট ড্যাশবোর্ডের জন্য ব্যবহারের পরিসংখ্যান ফেরত দেয়।
অপারেটর এন্ডপয়েন্টস
অপারেটর পক্ষ: প্রোফাইল ও উপলভ্যতা, সার্টিফিকেশনস, শিডিউলিং, এবং উপার্জনের পরিসংখ্যান।
/api/operator/profileBearer সেশন টোকেন বা API কী (operator রোল)অথেনটিকেটেড ব্যবহারকারীর অপারেটর প্রোফাইল ফেরত দেয়।
/api/operator/profileBearer সেশন টোকেন বা API কী (operator রোল)অপারেটর প্রোফাইল তৈরি বা আপডেট করে।
/api/operator/available-robotsBearer সেশন টোকেন বা API কী (operator রোল)বর্তমানে উপলব্ধ এবং অপারেটরের সার্টিফিকেশনের সঙ্গে মিলে যাওয়া রোবটস তালিকাভুক্ত করে।
/api/operator/certificationsBearer সেশন টোকেন বা API কী (operator রোল)অপারেটরের সার্টিফিকেশন অনুরোধ এবং তাদের স্ট্যাটাস তালিকাভুক্ত করে।
/api/operator/certificationsBearer সেশন টোকেন বা API কী (operator রোল)একটি রোবট টাইপের জন্য সার্টিফিকেশনের অনুরোধ করে।
/api/operator/scheduleBearer সেশন টোকেন বা API কী (operator রোল)অপারেটরের সাপ্তাহিক উপলভ্যতার সময়সূচি ফেরত দেয়।
/api/operator/scheduleBearer সেশন টোকেন বা API কী (operator রোল)সাপ্তাহিক উপলভ্যতার সময়সূচি আপডেট করে।
/api/operator/availabilityBearer সেশন টোকেন বা API কী (operator রোল)অপারেটরের বর্তমান উপলভ্যতা ফেরত দেয়।
/api/operator/statsBearer সেশন টোকেন বা API কী (operator রোল)অপারেটর ড্যাশবোর্ডের জন্য উপার্জন ও সেশন পরিসংখ্যান ফেরত দেয়।
সেশনস
সেশনস হলো প্ল্যাটফর্মের মূল রিসোর্স: একটি সেশন একজন অপারেটর এবং একটি রোবটের মধ্যে একটি ক্রমাগত টেলিঅপারেশন এনগেজমেন্ট। সেশন স্ট্যাটাস PENDING, ACTIVE, PAUSED, COMPLETED, এবং CANCELLED-এর মধ্য দিয়ে চলে।
/api/sessionsBearer সেশন টোকেন বা API কীঅথেনটিকেটেড ব্যবহারকারীর জন্য সেশনস তালিকাভুক্ত করে। অপারেটররা যেসব সেশন চালিয়েছেন তা দেখেন; ক্লায়েন্টরা তাদের রোবটের সেশনস দেখেন। দুই ভিউয়ের মধ্যে ফিল্ড সেট সামান্য ভিন্ন: client ভিউতে episodes_collected এবং data_collected_mb থাকে, operator ভিউতে 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/sessionsBearer সেশন টোকেন বা API কী (operator রোল)একটি উপলব্ধ রোবটে একটি টেলিঅপারেশন সেশন শুরু করে। operator রোল প্রয়োজন: ক্লায়েন্টরা সেশন শুরু করতে পারে না। একজন অপারেটর একই সময়ে সর্বোচ্চ একটি ACTIVE বা PAUSED সেশন ধরে রাখতে পারেন, এবং রোবটের বর্তমান স্ট্যাটাস অবশ্যই 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 সেশন টোকেন বা API কীতার বিবরণসহ একটি একক সেশন ফেরত দেয়।
/api/sessions/[id]Bearer সেশন টোকেন বা API কীসেশন লাইফসাইকেল আপডেট করে: pause, resume, end, এবং সম্পর্কিত অ্যাকশন।
/api/sessions/[id]/extendBearer সেশন টোকেন বা API কী (client, সেশনের মালিক)একটি সেশন এক্সটেনশনের অনুরোধ করে। শুধুমাত্র সেশনের মালিক ক্লায়েন্ট এটি কল করতে পারেন, এবং সেশন অবশ্যই ACTIVE হতে হবে। অনুরোধটি একটি সেশন ইভেন্ট হিসেবে লগ করা হয় এবং অপারেটর একটি নোটিফিকেশন পান; এক্সটেনশনটি ঘটে যখন অপারেটর এতে সাড়া দেন।
| 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 সেশন টোকেন বা API কীএকটি সেশনের চ্যাট মেসেজ তালিকাভুক্ত করে।
/api/sessions/[id]/messagesBearer সেশন টোকেন বা API কীএকটি সেশনে একটি চ্যাট মেসেজ পাঠায়।
/api/sessions/[id]/rateBearer সেশন টোকেন বা API কী (client)একটি সম্পন্ন সেশনকে 1 থেকে 5 তারকা স্কেলে রেট করে, ঐচ্ছিক মন্তব্য সহ।
/api/sessions/exportBearer সেশন টোকেন বা API কীসেশন ডেটা এক্সপোর্ট করে।
পেমেন্টস
সব অর্থ চলাচল Stripe-এর মাধ্যমে হয়। ক্লায়েন্ট বিলিং একটি সংরক্ষিত পেমেন্ট মেথডসহ একটি Stripe কাস্টমার ব্যবহার করে; অপারেটর পেআউট Stripe Connect ব্যবহার করে। প্ল্যাটফর্ম নিজে কখনো কার্ড বা ব্যাংক ডেটা সংরক্ষণ করে না।
/api/stripe/customerBearer সেশন টোকেন (client রোল)ক্লায়েন্ট বিলিংয়ের জন্য ব্যবহৃত Stripe কাস্টমার তৈরি বা ফেরত দেয়।
/api/stripe/connectBearer সেশন টোকেন (operator রোল)অপারেটরের Stripe Connect অ্যাকাউন্টের স্ট্যাটাস ফেরত দেয়।
/api/stripe/connectBearer সেশন টোকেন (operator রোল)অপারেটর পেআউটের জন্য Stripe Connect অনবোর্ডিং শুরু করে।
/api/stripe/setup-intentBearer সেশন টোকেন (client রোল)একটি পেমেন্ট মেথড সংরক্ষণের জন্য একটি Stripe SetupIntent তৈরি করে।
/api/stripe/portalBearer সেশন টোকেন (client রোল)পেমেন্ট মেথড এবং ইনভয়েসেস পরিচালনার জন্য একটি Stripe বিলিং পোর্টাল সেশন তৈরি করে।
/api/stripe/payoutBearer সেশন টোকেন (operator রোল)অথেনটিকেটেড অপারেটরের জন্য পেআউট তথ্য ফেরত দেয়।
/api/stripe/payoutBearer সেশন টোকেন (operator রোল)জমা হওয়া উপার্জনের একটি পেআউটের অনুরোধ করে। সর্বনিম্ন পেআউট 10.00 EUR।
/api/stripe/webhookStripe webhook signatureStripe ওয়েবহুক ইভেন্ট গ্রহণ করে। Stripe দ্বারা কল করা হয়, API ক্লায়েন্টস দ্বারা নয়।
পাবলিক এন্ডপয়েন্টস
এই এন্ডপয়েন্টগুলোর কোনো অথেনটিকেশনের প্রয়োজন নেই। মনিটরিং, মার্কেটিং পাতা, বা স্ট্যাটাস প্রোব থেকে কল করা নিরাপদ।
/api/healthAPI এবং তার ডাটাবেস কানেকশনের জন্য হেলথ চেক। দুটোই ঠিক থাকলে 200 ফেরত দেয়; ডাটাবেস চেক ব্যর্থ হলে, একই আকৃতি ফেরত দেওয়া হয় যেখানে 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বর্তমান পাবলিক প্রাইসিং প্ল্যান ফেরত দেয়।
/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পাবলিক প্ল্যাটফর্ম পরিসংখ্যান ফেরত দেয়।
AY-Robots কীভাবে অ্যাকাউন্ট এবং লাইভ রোবট কন্ট্রোল সুরক্ষিত করে: Supabase অথেনটিকেশন, রোল মডেল, API কীজ, সেশন সেফগার্ডস, অডিট ট্রেইল, এবং এনক্রিপশন।
AY-Robots সেশন কীভাবে কাজ করে: PENDING থেকে COMPLETED পর্যন্ত লাইফসাইকেল, প্রতিটি অ্যাক্টিভিটি ইভেন্ট ব্যাখ্যা করা, সেশন চ্যাট, রেটিংস, এক্সটেনশনস, এবং ট্রেনিং ডেটা।