API референца
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. Третирајте ги како лозинки: чувајте ги на страна на серверот и ротирајте ги така што прво создавате заменски клуч, па дури потоа го повлекувате стариот. Ако го користите desktop CLI-то, тоа исто така може да ја изложи платформата како локален MCP сервер со командата: ay-robots mcp.
Одговорите се JSON. Грешките користат конзистентна форма: JSON објект со едно поле error кое содржи порака читлива за луѓе, испратена со соодветен 4xx или 5xx статус код. Успешните одговори го враќаат ресурсот директно; неколку крајни точки ги завиткуваат листите во именувано поле, што примерите подолу го покажуваат каде е важно.
Крајни точки за автентикација
Инфраструктура за сметка и профил. Овие првенствено ги користи самата контролна табла, но функционираат со кој било валиден акредитив.
/api/auth/profileBearer сесиски токен или API-клучГо враќа профилот на автентицираниот корисник.
/api/auth/profileBearer сесиски токен или API-клучГи ажурира полињата на профилот, како прикажаното име и преференциите за известувања.
/api/auth/syncBearer сесиски токенГо синхронизира Supabase auth корисникот со записот на корисникот на платформата.
/api/auth/check-onboardingBearer сесиски токенИзвестува дали автентицираниот корисник го завршил onboarding.
/api/auth/avatarBearer сесиски токенПрикачува нова слика за аватар на автентицираниот корисник.
Крајни точки за клиенти
Сѐ што управува сопственик на робот: регистрирани роботи, профилот на клиентот, dataset-и, фактури и статистики за контролната табла.
/api/client/robotsBearer сесиски токен или 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/robotsBearer сесиски токен или API-клуч (улога клиент)Регистрира нов робот и го враќа неговиот id. Hardware id на плоча со мотор може да припаѓа само на еден робот; судир се одбива со статус 409.
/api/client/profileBearer сесиски токен или API-клуч (улога клиент)Го враќа профилот на клиентот на автентицираниот корисник.
/api/client/profileBearer сесиски токен или API-клуч (улога клиент)Ги ажурира полињата на профилот на клиентот.
/api/client/datasetsBearer сесиски токен или API-клуч (улога клиент)Ги наведува dataset-ите во облак на клиентот со број на епизоди и големини.
/api/client/invoicesBearer сесиски токен или API-клуч (улога клиент)Ги наведува месечните фактури на клиентот.
/api/client/statsBearer сесиски токен или API-клуч (улога клиент)Враќа статистики за користење за контролната табла на клиентот.
Крајни точки за оператори
Страната на операторот: профил и достапност, сертификации, распоред и статистики за заработка.
/api/operator/profileBearer сесиски токен или API-клуч (улога оператор)Го враќа профилот на операторот на автентицираниот корисник.
/api/operator/profileBearer сесиски токен или API-клуч (улога оператор)Создава или ажурира профил на оператор.
/api/operator/available-robotsBearer сесиски токен или API-клуч (улога оператор)Ги наведува роботите кои се тековно достапни и се совпаѓаат со сертификациите на операторот.
/api/operator/certificationsBearer сесиски токен или API-клуч (улога оператор)Ги наведува барањата за сертификација на операторот и нивниот статус.
/api/operator/certificationsBearer сесиски токен или API-клуч (улога оператор)Бара сертификација за тип робот.
/api/operator/scheduleBearer сесиски токен или API-клуч (улога оператор)Го враќа неделниот распоред на достапност на операторот.
/api/operator/scheduleBearer сесиски токен или API-клуч (улога оператор)Го ажурира неделниот распоред на достапност.
/api/operator/availabilityBearer сесиски токен или API-клуч (улога оператор)Ја враќа тековната достапност на операторот.
/api/operator/statsBearer сесиски токен или API-клуч (улога оператор)Враќа статистики за заработка и сесии за контролната табла на операторот.
Сесии
Сесиите се основниот ресурс на платформата: една сесија е едно непрекинато ангажирање во телеоперација меѓу оператор и робот. Статусот на сесијата поминува низ PENDING, ACTIVE, PAUSED, COMPLETED и CANCELLED.
/api/sessionsBearer сесиски токен или 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/sessionsBearer сесиски токен или API-клуч (улога оператор)Стартува сесија за телеоперација на достапен робот. Бара улога оператор: клиентите не можат да стартуваат сесии. Оператор може да држи најмногу една 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-клучГо ажурира животниот циклус на сесијата: пауза, продолжување, крај и поврзани дејства.
/api/sessions/[id]/extendBearer сесиски токен или API-клуч (клиент, сопственик на сесијата)Бара продолжување на сесија. Само клиентот кој е сопственик на сесијата може да го повика ова, а сесијата мора да е 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-клуч (клиент)Оценува завршена сесија на скала од 1 до 5 ѕвездички, со опционален коментар.
/api/sessions/exportBearer сесиски токен или API-клучИзвезува податоци од сесија.
Плаќања
Секое движење на пари оди преку Stripe. Наплатата на клиентите користи Stripe клиент со зачуван начин на плаќање; исплатите на операторите користат Stripe Connect. Самата платформа никогаш не чува податоци за картички или банкарски сметки.
/api/stripe/customerBearer сесиски токен (улога клиент)Создава или враќа Stripe клиент кој се користи за наплата кон клиентот.
/api/stripe/connectBearer сесиски токен (улога оператор)Го враќа статусот на Stripe Connect сметката на операторот.
/api/stripe/connectBearer сесиски токен (улога оператор)Стартува Stripe Connect onboarding за исплати на операторот.
/api/stripe/setup-intentBearer сесиски токен (улога клиент)Создава Stripe SetupIntent за зачувување начин на плаќање.
/api/stripe/portalBearer сесиски токен (улога клиент)Создава Stripe billing portal сесија за управување со начини на плаќање и фактури.
/api/stripe/payoutBearer сесиски токен (улога оператор)Враќа информации за исплата на автентицираниот оператор.
/api/stripe/payoutBearer сесиски токен (улога оператор)Бара исплата на акумулираната заработка. Минималната исплата е 10,00 EUR.
/api/stripe/webhookПотпис на Stripe webhookПрима настани од Stripe webhook. Ги повикува 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Враќа јавни статистики на платформата.
Како AY-Robots ги обезбедува сметките и управувањето во живо: автентикација преку Supabase, модел на улоги, API-клучеви, мерки за сесии и ревизорски запис.
Како функционираат сесиите на AY-Robots: циклусот од PENDING до COMPLETED, настани на активност, разговор во сесија, оценки, продолжувања и податоци за тренирање.