API reference
Nabubuhay ang AY-Robots REST API sa ilalim ng https://www.ay-robots.com/api at nagsasalita ng JSON sa parehong direksyon. Dinodokumento ng pahinang ito ang authentication, ang mga convention ng response, at bawat endpoint, kasama ang kumpletong dokumentasyon ng parameter para sa mga route na malamang tatawagin mo nang programmatic.
Huling na-update 2026-08-09
Authentication
Nangangailangan ng authentication ang bawat endpoint maliban kung nakalista ito sa seksyong Public. Tumatanggap ang API ng dalawang uri ng credential, at pareho itong dumarating sa parehong paraan: alinman bilang session cookie na ipinapadala na ng dashboard, o bilang Authorization header na may Bearer token.
| Paraan | Paano gumagana | Gamitin para sa |
|---|---|---|
| Browser session | Ang Supabase session token ng naka-log-in mong account, ipinapadala bilang cookie o bilang Bearer token | Ang dashboard mismo at mabilisang eksperimento mula sa authenticated na browser context |
| API key | Key na may ayr_live_ prefix, ginawa sa /dashboard/settings at ipinapadala bilang Bearer token | Script, server, CI, at anumang hindi dapat umaasa sa browser login |
| MCP | Ang hosted MCP server sa https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM agent at tool na nagsasalita ng Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'Ginagawa at binabawi ang mga API key sa /dashboard/settings. Itratong parang password: itago sa server-side, at i-rotate sa pamamagitan ng paggawa ng kapalit na key bago bawiin ang luma. Kung ginagamit mo ang desktop CLI, puwede rin nitong ilantad ang platform bilang lokal na MCP server gamit ang command: ay-robots mcp.
JSON ang mga response. Gumagamit ang mga error ng consistent na shape: JSON object na may iisang error field na naglalaman ng mababasang mensahe, na inihahatid kasama ng angkop na 4xx o 5xx status code. Ibinabalik nang direkta ng success response ang resource; binabalot ng ilang endpoint ang listahan sa isang named field, na ipinapakita ng mga halimbawa sa ibaba kung saan mahalaga ito.
Mga auth endpoint
Ang plumbing ng account at profile. Ginagamit ito pangunahin ng dashboard mismo, pero gumagana ito sa anumang valid na credential.
/api/auth/profileBearer session token o API keyIbinabalik ang profile ng authenticated na user.
/api/auth/profileBearer session token o API keyIna-update ang mga profile field tulad ng display name at notification preference.
/api/auth/syncBearer session tokenSina-synchronize ang Supabase auth user sa platform user record.
/api/auth/check-onboardingBearer session tokenInirereport kung nakumpleto na ng authenticated na user ang onboarding.
/api/auth/avatarBearer session tokenNag-a-upload ng bagong avatar image para sa authenticated na user.
Mga client endpoint
Lahat ng pinamamahalaan ng may-ari ng robot: mga naka-register na robot, ang client profile, dataset, invoice, at dashboard statistics.
/api/client/robotsBearer session token o API key (client role)Naglilista ng mga robot na naka-register ng authenticated na kliyente, pinakabago muna, hanggang 50 entry. ISO 8601 ang mga timestamp; null ang last_online at last_heartbeat hangga't hindi pa nagkakaroon ng koneksyon ang robot.
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 o API key (client role)Nagre-register ng bagong robot at ibinabalik ang id nito. Isang robot lang ang puwedeng pagmayarian ng isang motor board hardware id; tinatanggihan ang collision gamit ang status 409.
/api/client/profileBearer session token o API key (client role)Ibinabalik ang client profile ng authenticated na user.
/api/client/profileBearer session token o API key (client role)Ina-update ang mga field ng client profile.
/api/client/datasetsBearer session token o API key (client role)Naglilista ng mga cloud dataset ng kliyente kasama ang bilang ng episode at sukat.
/api/client/invoicesBearer session token o API key (client role)Naglilista ng mga buwanang invoice ng kliyente.
/api/client/statsBearer session token o API key (client role)Ibinabalik ang usage statistics para sa client dashboard.
Mga operator endpoint
Ang panig ng operator: profile at availability, certification, scheduling, at earnings statistics.
/api/operator/profileBearer session token o API key (operator role)Ibinabalik ang operator profile ng authenticated na user.
/api/operator/profileBearer session token o API key (operator role)Gumagawa o nag-a-update ng operator profile.
/api/operator/available-robotsBearer session token o API key (operator role)Naglilista ng mga robot na available ngayon at tugma sa mga certification ng operator.
/api/operator/certificationsBearer session token o API key (operator role)Naglilista ng mga certification request ng operator at ang status nila.
/api/operator/certificationsBearer session token o API key (operator role)Humihiling ng certification para sa isang robot type.
/api/operator/scheduleBearer session token o API key (operator role)Ibinabalik ang lingguhang availability schedule ng operator.
/api/operator/scheduleBearer session token o API key (operator role)Ina-update ang lingguhang availability schedule.
/api/operator/availabilityBearer session token o API key (operator role)Ibinabalik ang kasalukuyang availability ng operator.
/api/operator/statsBearer session token o API key (operator role)Ibinabalik ang earnings at session statistics para sa operator dashboard.
Sessions
Ang sessions ang pangunahing resource ng platform: iisang session ang isang tuloy-tuloy na teleoperation engagement sa pagitan ng operator at robot. Dumadaan ang session status sa PENDING, ACTIVE, PAUSED, COMPLETED, at CANCELLED.
/api/sessionsBearer session token o API keyNaglilista ng mga session para sa authenticated na user. Nakikita ng mga operator ang mga session na pinatakbo nila; nakikita ng mga kliyente ang mga session sa robot nila. Bahagyang naiiba ang field set sa pagitan ng dalawang view: kasama sa client view ang episodes_collected at data_collected_mb, kasama sa operator view ang operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Opsyonal. I-filter ayon sa session status, halimbawa ACTIVE o COMPLETED. Iwan kung gusto ang lahat. |
| limit | query | number | Opsyonal. Page size, default 50, maximum 100. |
| offset | query | number | Opsyonal. Pagination offset, default 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 o API key (operator role)Nagsisimula ng teleoperation session sa isang available na robot. Kailangan ang operator role: hindi puwedeng magsimula ng session ang mga kliyente. Isang ACTIVE o PAUSED na session lang ang puwedeng hawakan ng operator nang sabay, at dapat AVAILABLE ang status ng robot sa oras na iyon. Sa isang immediate na start, lumilipat ang robot sa IN_SESSION at ina-notify ang kliyente.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Kailangan. Id ng robot na papatakbuhin. Dapat AVAILABLE ang robot. |
| operatorId | body | string | Opsyonal. Explicit na operator id; default sa authenticated na operator. |
| scheduledFor | body | string (ISO 8601) | Opsyonal. Nagsi-schedule ng session sa hinaharap na oras sa halip na simulan agad. |
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 o API keyIbinabalik ang isang session kasama ang mga detalye nito.
/api/sessions/[id]Bearer session token o API keyIna-update ang session lifecycle: pause, resume, end, at kaugnay na aksyon.
/api/sessions/[id]/extendBearer session token o API key (client, may-ari ng session)Humihiling ng extension ng session. Ang kliyenteng may-ari ng session lang ang puwedeng tumawag dito, at dapat ACTIVE ang session. Nila-log ang request bilang session event at nakakatanggap ng notification ang operator; ang extension mismo ay nangyayari kapag kumilos ang operator dito.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Ang session id. |
| additionalMinutes | body | number | Hinihiling na haba ng extension sa minuto. |
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 o API keyNaglilista ng mga chat message ng isang session.
/api/sessions/[id]/messagesBearer session token o API keyNagpapadala ng chat message sa isang session.
/api/sessions/[id]/rateBearer session token o API key (client)Nire-rate ang isang natapos na session sa 1 hanggang 5 star scale, may opsyonal na comment.
/api/sessions/exportBearer session token o API keyNag-e-export ng session data.
Payments
Dumadaan sa Stripe ang lahat ng galaw ng pera. Gumagamit ang client billing ng Stripe customer na may saved payment method; gumagamit ang operator payout ng Stripe Connect. Hindi kailanman nag-i-store ang platform mismo ng card o bank data.
/api/stripe/customerBearer session token (client role)Gumagawa o ibinabalik ang Stripe customer na ginagamit para sa client billing.
/api/stripe/connectBearer session token (operator role)Ibinabalik ang status ng Stripe Connect account ng operator.
/api/stripe/connectBearer session token (operator role)Sinisimulan ang Stripe Connect onboarding para sa operator payout.
/api/stripe/setup-intentBearer session token (client role)Gumagawa ng Stripe SetupIntent para sa pag-save ng payment method.
/api/stripe/portalBearer session token (client role)Gumagawa ng Stripe billing portal session para sa pamamahala ng payment method at invoice.
/api/stripe/payoutBearer session token (operator role)Ibinabalik ang impormasyon ng payout para sa authenticated na operator.
/api/stripe/payoutBearer session token (operator role)Humihiling ng payout ng naipong earnings. Ang minimum na payout ay 10.00 EUR.
/api/stripe/webhookStripe webhook signatureTumatanggap ng Stripe webhook event. Tinatawag ng Stripe, hindi ng API client.
Mga public endpoint
Walang kailangang authentication ang mga endpoint na ito. Ligtas silang tawagin mula sa monitoring, marketing page, o status probe.
/api/healthHealth check para sa API at koneksyon nito sa database. Nagbabalik ng 200 kapag maayos ang dalawa; kung nabigo ang database check, ibinabalik ang parehong shape na may status at db na naka-set sa error at 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]Ibinabalik ang pampublikong impormasyon tungkol sa isang suportadong robot model.
/api/public/pricingIbinabalik ang kasalukuyang pampublikong pricing plan.
/api/contactNag-su-submit ng mensahe sa contact form. Nakaimbak muna ang mensahe bago ihatid sa pamamagitan ng email, kaya hindi ito nawawala kahit may pansamantalang outage sa mail: sa ganitong sitwasyon, iniuulat ng response na stored true at delivered false, at ine-retry ang delivery sa operational na antas.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Kailangan. Pangalan mo. |
| body | string | Kailangan. Valid na email address para sa reply. | |
| category | body | string | Kailangan. Isa sa: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Kailangan. Maikling subject line. |
| message | body | string | Kailangan. Ang laman ng mensahe. |
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-requestHumihiling ng support para sa robot type na wala pa sa platform.
/api/statsIbinabalik ang pampublikong statistics ng platform.
Paano pinoprotektahan ng AY-Robots ang mga account at live na kontrol ng robot: Supabase authentication, role model, API key, session safeguard, audit trail, at encryption.
Paano gumagana ang mga session sa AY-Robots: ang lifecycle mula PENDING hanggang COMPLETED, bawat activity event na ipinaliwanag, session chat, rating, extension, at training data.