Reference API
REST API AY-Robots žije na https://www.ay-robots.com/api a mluví JSON oběma směry. Tato stránka dokumentuje autentizaci, konvence odpovědí a každý endpoint, s úplnou dokumentací parametrů pro routy, které nejspíš budete volat programově.
Naposledy aktualizováno 2026-08-09
Autentizace
Každý endpoint vyžaduje autentizaci, pokud není uvedený v sekci Veřejné endpointy. API přijímá dvě formy přihlašovacích údajů a obě přichází stejnou cestou: buď jako session cookie, kterou dashboard stejně posílá, nebo jako hlavička Authorization s Bearer tokenem.
| Metoda | Jak funguje | Použití |
|---|---|---|
| Browser session | Supabase session token vašeho přihlášeného účtu, poslaný jako cookie nebo jako Bearer token | Samotný dashboard a rychlé experimenty z autentizovaného kontextu prohlížeče |
| API klíč | Klíč s prefixem ayr_live_, vytvořený v /dashboard/settings a poslaný jako Bearer token | Skripty, servery, CI a vše, co nesmí záviset na přihlášení v prohlížeči |
| MCP | Hostovaný MCP server na https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM agenti a nástroje, které mluví Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API klíče se vytváří a odvolávají v /dashboard/settings. Zacházejte s nimi jako s hesly: uchovávejte je na straně serveru a rotujte je tak, že nejdřív vytvoříte náhradní klíč a pak odvoláte starý. Pokud používáte desktopové CLI, může platformu vystavit i jako lokální MCP server příkazem: ay-robots mcp.
Odpovědi jsou JSON. Chyby mají jednotný tvar: JSON objekt s jediným polem error obsahujícím čitelnou zprávu, doručený s odpovídajícím stavovým kódem 4xx nebo 5xx. Úspěšné odpovědi vrací zdroj přímo; pár endpointů balí seznamy do pojmenovaného pole, což příklady níže ukazují tam, kde na tom záleží.
Endpointy pro autentizaci
Základní správa účtu a profilu. Tyto endpointy primárně používá samotný dashboard, ale fungují s jakýmkoli platným přihlašovacím údajem.
/api/auth/profileBearer session token nebo API klíčVrátí profil autentizovaného uživatele.
/api/auth/profileBearer session token nebo API klíčAktualizuje pole profilu, jako je zobrazované jméno a nastavení notifikací.
/api/auth/syncBearer session tokenSynchronizuje uživatele Supabase Auth se záznamem uživatele na platformě.
/api/auth/check-onboardingBearer session tokenHlásí, zda autentizovaný uživatel dokončil onboarding.
/api/auth/avatarBearer session tokenNahraje nový obrázek avataru pro autentizovaného uživatele.
Endpointy pro klienty
Vše, co spravuje majitel robota: registrovaní roboti, klientský profil, datasety, faktury a statistiky dashboardu.
/api/client/robotsBearer session token nebo API klíč (role klienta)Vypíše roboty registrované autentizovaným klientem, od nejnovějších, až do 50 záznamů. Časové značky jsou ve formátu ISO 8601; last_online a last_heartbeat jsou null, dokud se robot alespoň jednou nepřipojil.
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 nebo API klíč (role klienta)Zaregistruje nového robota a vrátí jeho id. Hardwarové id motorové desky může patřit jen jednomu robotu; kolize je odmítnuta se stavem 409.
/api/client/profileBearer session token nebo API klíč (role klienta)Vrátí klientský profil autentizovaného uživatele.
/api/client/profileBearer session token nebo API klíč (role klienta)Aktualizuje pole klientského profilu.
/api/client/datasetsBearer session token nebo API klíč (role klienta)Vypíše cloudové datasety klienta s počty epizod a velikostmi.
/api/client/invoicesBearer session token nebo API klíč (role klienta)Vypíše měsíční faktury klienta.
/api/client/statsBearer session token nebo API klíč (role klienta)Vrátí statistiky využití pro dashboard klienta.
Endpointy pro operátory
Strana operátora: profil a dostupnost, certifikace, plánování a statistiky výdělků.
/api/operator/profileBearer session token nebo API klíč (role operátora)Vrátí operátorský profil autentizovaného uživatele.
/api/operator/profileBearer session token nebo API klíč (role operátora)Vytvoří nebo aktualizuje operátorský profil.
/api/operator/available-robotsBearer session token nebo API klíč (role operátora)Vypíše roboty, kteří jsou aktuálně dostupní a odpovídají certifikacím operátora.
/api/operator/certificationsBearer session token nebo API klíč (role operátora)Vypíše žádosti o certifikaci operátora a jejich stav.
/api/operator/certificationsBearer session token nebo API klíč (role operátora)Vyžádá certifikaci pro typ robota.
/api/operator/scheduleBearer session token nebo API klíč (role operátora)Vrátí týdenní plán dostupnosti operátora.
/api/operator/scheduleBearer session token nebo API klíč (role operátora)Aktualizuje týdenní plán dostupnosti.
/api/operator/availabilityBearer session token nebo API klíč (role operátora)Vrátí aktuální dostupnost operátora.
/api/operator/statsBearer session token nebo API klíč (role operátora)Vrátí statistiky výdělků a session pro dashboard operátora.
Session
Session jsou hlavním zdrojem platformy: jedna session je jedno souvislé teleoperační zapojení mezi operátorem a robotem. Stav session prochází PENDING, ACTIVE, PAUSED, COMPLETED a CANCELLED.
/api/sessionsBearer session token nebo API klíčVypíše session pro autentizovaného uživatele. Operátoři vidí session, které řídili; klienti vidí session na svých robotech. Sada polí se mezi oběma pohledy mírně liší: klientský pohled obsahuje episodes_collected a data_collected_mb, pohled operátora obsahuje operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Volitelné. Filtruje podle stavu session, například ACTIVE nebo COMPLETED. Vynechte pro výpis všech. |
| limit | query | number | Volitelné. Velikost stránky, výchozí 50, maximum 100. |
| offset | query | number | Volitelné. Offset stránkování, výchozí 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 nebo API klíč (role operátora)Spustí teleoperační session na dostupném robotu. Vyžaduje roli operátora: klienti session spouštět nemohou. Operátor může naráz držet nejvýš jednu session ve stavu ACTIVE nebo PAUSED a robot musí mít v danou chvíli stav AVAILABLE. Při okamžitém spuštění se robot přepne na IN_SESSION a klient je upozorněn.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Povinné. Id robota, který se má ovládat. Robot musí být AVAILABLE. |
| operatorId | body | string | Volitelné. Explicitní id operátora; výchozí je autentizovaný operátor. |
| scheduledFor | body | string (ISO 8601) | Volitelné. Naplánuje session na budoucí čas místo okamžitého spuštění. |
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 nebo API klíčVrátí jednu session s jejími detaily.
/api/sessions/[id]Bearer session token nebo API klíčAktualizuje životní cyklus session: pozastavení, obnovení, ukončení a související akce.
/api/sessions/[id]/extendBearer session token nebo API klíč (klient, vlastník session)Vyžádá prodloužení session. Volat to může jen klient, kterému session patří, a session musí být ACTIVE. Žádost se zaznamená jako událost session a operátor dostane notifikaci; samotné prodloužení proběhne, až na ni operátor zareaguje.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Id session. |
| additionalMinutes | body | number | Požadovaná délka prodloužení v minutách. |
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 nebo API klíčVypíše chatové zprávy session.
/api/sessions/[id]/messagesBearer session token nebo API klíčPošle chatovou zprávu v session.
/api/sessions/[id]/rateBearer session token nebo API klíč (klient)Ohodnotí dokončenou session na škále 1 až 5 hvězdiček, s volitelným komentářem.
/api/sessions/exportBearer session token nebo API klíčExportuje data session.
Platby
Veškerý pohyb peněz probíhá přes Stripe. Fakturace klientů používá Stripe zákazníka s uloženou platební metodou; výplaty operátorům používají Stripe Connect. Samotná platforma nikdy neukládá data karet ani bankovní údaje.
/api/stripe/customerBearer session token (role klienta)Vytvoří nebo vrátí Stripe zákazníka použitého pro fakturaci klienta.
/api/stripe/connectBearer session token (role operátora)Vrátí stav Stripe Connect účtu operátora.
/api/stripe/connectBearer session token (role operátora)Spustí onboarding Stripe Connect pro výplaty operátorovi.
/api/stripe/setup-intentBearer session token (role klienta)Vytvoří Stripe SetupIntent pro uložení platební metody.
/api/stripe/portalBearer session token (role klienta)Vytvoří session Stripe billing portálu pro správu platebních metod a faktur.
/api/stripe/payoutBearer session token (role operátora)Vrátí informace o výplatě pro autentizovaného operátora.
/api/stripe/payoutBearer session token (role operátora)Vyžádá výplatu nashromážděných výdělků. Minimální výplata je 10,00 EUR.
/api/stripe/webhookPodpis webhooku StripePřijímá webhook události Stripe. Volá ho Stripe, ne klienti API.
Veřejné endpointy
Tyto endpointy nevyžadují žádnou autentizaci. Lze je bezpečně volat z monitoringu, marketingových stránek nebo sondy stavu.
/api/healthKontrola stavu API a jeho připojení k databázi. Vrací 200, když je vše v pořádku; pokud kontrola databáze selže, vrátí se stejný tvar se status a db nastavenými na error a HTTP stavem 503.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Vrátí veřejné informace o podporovaném modelu robota.
/api/public/pricingVrátí aktuální veřejné cenové plány.
/api/contactOdešle zprávu z kontaktního formuláře. Zpráva se nejdřív uloží a poté doručí e-mailem, takže dočasný výpadek pošty ji neztratí: v takovém případě odpověď hlásí stored true a delivered false a doručení se provozně opakuje.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Povinné. Vaše jméno. |
| body | string | Povinné. Platná e-mailová adresa pro odpověď. | |
| category | body | string | Povinné. Jedna z: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Povinné. Krátký předmět. |
| message | body | string | Povinné. Text zprávy. |
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-requestVyžádá podporu pro typ robota, který zatím na platformě není.
/api/statsVrátí veřejné statistiky platformy.
Jak AY-Robots zabezpečuje účty a živé ovládání robotů: autentizace přes Supabase, model rolí, API klíče, ochrana session, audit trail a šifrování.
Jak fungují session na AY-Robots: životní cyklus od PENDING po COMPLETED, aktivitní události, chat session, hodnocení, prodloužení a trénovací data.