Referencia API

REST API AY-Robots žije pod https://www.ay-robots.com/api a v oboch smeroch hovorí JSON. Táto stránka dokumentuje autentifikáciu, konvencie odpovedí a každý endpoint, s úplnou dokumentáciou parametrov pre trasy, ktoré s najväčšou pravdepodobnosťou budete volať programovo.

Naposledy aktualizované 2026-08-09

Autentifikácia

Každý endpoint vyžaduje autentifikáciu, pokiaľ nie je uvedený v sekcii Verejné endpointy. API akceptuje dve formy prihlasovacích údajov a obe prichádzajú rovnakým spôsobom: buď ako cookie relácie, ktorú dashboard aj tak posiela, alebo ako hlavička Authorization s Bearer tokenom.

MetódaAko fungujePoužite ju na
Relácia prehliadačaToken relácie Supabase vášho prihláseného účtu, poslaný ako cookie alebo ako Bearer tokenSamotný dashboard a rýchle experimenty z autentifikovaného kontextu prehliadača
API kľúčKľúč s predponou ayr_live_, vytvorený v /dashboard/settings a poslaný ako Bearer tokenSkripty, servery, CI a všetko, čo nesmie závisieť od prihlásenia v prehliadači
MCPHostovaný server MCP na https://www.ay-robots.com/api/mcp (Streamable HTTP)LLM agenti a nástroje, ktoré hovoria Model Context Protocol
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Autentifikácia pomocou API kľúča

API kľúče sa vytvárajú a rušia v /dashboard/settings. Zaobchádzajte s nimi ako s heslami: uchovávajte ich na strane servera a rotujte ich vytvorením náhradného kľúča ešte pred zrušením starého. Ak používate desktopové CLI, môže platformu tiež sprístupniť ako lokálny server MCP príkazom: ay-robots mcp.

Odpovede sú vo formáte JSON. Chyby majú konzistentnú formu: objekt JSON s jediným poľom error obsahujúcim ľudsky čitateľnú správu, doručený s vhodným stavovým kódom 4xx alebo 5xx. Úspešné odpovede vracajú zdroj priamo; niekoľko málo endpointov balí zoznamy do pomenovaného poľa, čo príklady nižšie ukazujú tam, kde na tom záleží.

Auth endpointy

Základná práca s účtom a profilom. Tieto sa primárne používajú v samotnom dashboarde, no fungujú s akýmikoľvek platnými prihlasovacími údajmi.

GET/api/auth/profileBearer token relácie alebo API kľúč

Vráti profil autentifikovaného používateľa.

POST/api/auth/profileBearer token relácie alebo API kľúč

Aktualizuje polia profilu, ako je zobrazované meno a preferencie oznámení.

POST/api/auth/syncBearer token relácie

Synchronizuje používateľa Supabase auth so záznamom používateľa platformy.

GET/api/auth/check-onboardingBearer token relácie

Nahlási, či autentifikovaný používateľ dokončil onboarding.

POST/api/auth/avatarBearer token relácie

Nahrá nový obrázok avatara pre autentifikovaného používateľa.

Endpointy pre klientov

Všetko, čo majiteľ robota spravuje: registrované roboty, klientsky profil, datasety, faktúry a štatistiky dashboardu.

GET/api/client/robotsBearer token relácie alebo API kľúč (rola klient)

Zobrazí zoznam robotov registrovaných autentifikovaným klientom, najnovšie prvé, až 50 záznamov. Časové značky sú vo formáte ISO 8601; last_online a last_heartbeat sú null, kým sa robot raz nepripojí.

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 token relácie alebo API kľúč (rola klient)

Zaregistruje nového robota a vráti jeho id. Hardvérové id dosky motora môže patriť len jednému robotovi; kolízia sa odmietne so stavom 409.

GET/api/client/profileBearer token relácie alebo API kľúč (rola klient)

Vráti klientsky profil autentifikovaného používateľa.

PATCH/api/client/profileBearer token relácie alebo API kľúč (rola klient)

Aktualizuje polia klientskeho profilu.

GET/api/client/datasetsBearer token relácie alebo API kľúč (rola klient)

Zobrazí zoznam cloudových datasetov klienta s počtami epizód a veľkosťami.

GET/api/client/invoicesBearer token relácie alebo API kľúč (rola klient)

Zobrazí zoznam mesačných faktúr klienta.

GET/api/client/statsBearer token relácie alebo API kľúč (rola klient)

Vráti štatistiky používania pre klientsky dashboard.

Endpointy pre operátorov

Strana operátora: profil a dostupnosť, certifikácie, plánovanie a štatistiky zárobkov.

GET/api/operator/profileBearer token relácie alebo API kľúč (rola operátor)

Vráti profil operátora autentifikovaného používateľa.

POST/api/operator/profileBearer token relácie alebo API kľúč (rola operátor)

Vytvorí alebo aktualizuje profil operátora.

GET/api/operator/available-robotsBearer token relácie alebo API kľúč (rola operátor)

Zobrazí zoznam robotov, ktoré sú aktuálne dostupné a zodpovedajú certifikáciám operátora.

GET/api/operator/certificationsBearer token relácie alebo API kľúč (rola operátor)

Zobrazí zoznam žiadostí operátora o certifikáciu a ich stav.

POST/api/operator/certificationsBearer token relácie alebo API kľúč (rola operátor)

Vyžiada certifikáciu pre daný typ robota.

GET/api/operator/scheduleBearer token relácie alebo API kľúč (rola operátor)

Vráti týždenný plán dostupnosti operátora.

POST/api/operator/scheduleBearer token relácie alebo API kľúč (rola operátor)

Aktualizuje týždenný plán dostupnosti.

GET/api/operator/availabilityBearer token relácie alebo API kľúč (rola operátor)

Vráti aktuálnu dostupnosť operátora.

GET/api/operator/statsBearer token relácie alebo API kľúč (rola operátor)

Vráti štatistiky zárobkov a relácií pre dashboard operátora.

Relácie

Relácie sú centrálnym zdrojom platformy: jedna relácia je jedno súvislé teleoperačné pôsobenie medzi operátorom a robotom. Stav relácie prechádza cez PENDING, ACTIVE, PAUSED, COMPLETED a CANCELLED.

GET/api/sessionsBearer token relácie alebo API kľúč

Zobrazí zoznam relácií pre autentifikovaného používateľa. Operátori vidia relácie, ktoré viedli; klienti vidia relácie na svojich robotoch. Súbor polí sa medzi oboma pohľadmi mierne líši: klientský pohľad zahŕňa episodes_collected a data_collected_mb, pohľad operátora zahŕňa operator_earnings_cents.

NameInTypeDescription
statusquerystringVoliteľné. Filtruje podľa stavu relácie, napríklad ACTIVE alebo COMPLETED. Vynechajte, ak chcete zobraziť všetky.
limitquerynumberVoliteľné. Veľkosť stránky, predvolene 50, maximálne 100.
offsetquerynumberVoliteľné. Posun stránkovania, predvolene 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 token relácie alebo API kľúč (rola operátor)

Spustí reláciu teleoperácie na dostupnom robotovi. Vyžaduje rolu operátor: klienti nemôžu relácie spúšťať. Operátor môže mať naraz najviac jednu reláciu ACTIVE alebo PAUSED a robot musí mať aktuálne stav AVAILABLE. Pri okamžitom spustení sa robot prepne na IN_SESSION a klient dostane upozornenie.

NameInTypeDescription
robotIdbodystringPovinné. Id robota, ktorý sa má ovládať. Robot musí byť AVAILABLE.
operatorIdbodystringVoliteľné. Explicitné id operátora; predvolene autentifikovaný operátor.
scheduledForbodystring (ISO 8601)Voliteľné. Naplánuje reláciu na budúci čas namiesto okamžitého spustenia.
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 token relácie alebo API kľúč

Vráti jednu reláciu s jej detailmi.

PATCH/api/sessions/[id]Bearer token relácie alebo API kľúč

Aktualizuje životný cyklus relácie: pozastavenie, obnovenie, ukončenie a súvisiace akcie.

POST/api/sessions/[id]/extendBearer token relácie alebo API kľúč (klient, vlastník relácie)

Vyžiada predĺženie relácie. Volať to môže len klient, ktorý reláciu vlastní, a relácia musí byť ACTIVE. Žiadosť sa zaznamená ako udalosť relácie a operátor dostane oznámenie; samotné predĺženie nastane, keď na to operátor zareaguje.

NameInTypeDescription
idpathstringId relácie.
additionalMinutesbodynumberPožadovaná dĺžka predĺženia v minútach.
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 token relácie alebo API kľúč

Zobrazí zoznam chatových správ relácie.

POST/api/sessions/[id]/messagesBearer token relácie alebo API kľúč

Odošle chatovú správu v relácii.

POST/api/sessions/[id]/rateBearer token relácie alebo API kľúč (klient)

Ohodnotí dokončenú reláciu na škále od 1 do 5 hviezdičiek, s voliteľným komentárom.

POST/api/sessions/exportBearer token relácie alebo API kľúč

Exportuje dáta relácie.

Platby

Všetok pohyb peňazí prebieha cez Stripe. Fakturácia klientov používa zákazníka Stripe s uloženým spôsobom platby; výplaty operátorov používajú Stripe Connect. Samotná platforma nikdy neukladá údaje o karte ani bankových účtoch.

POST/api/stripe/customerBearer token relácie (rola klient)

Vytvorí alebo vráti zákazníka Stripe používaného na fakturáciu klienta.

GET/api/stripe/connectBearer token relácie (rola operátor)

Vráti stav účtu Stripe Connect operátora.

POST/api/stripe/connectBearer token relácie (rola operátor)

Spustí onboarding Stripe Connect pre výplaty operátorovi.

POST/api/stripe/setup-intentBearer token relácie (rola klient)

Vytvorí Stripe SetupIntent na uloženie spôsobu platby.

POST/api/stripe/portalBearer token relácie (rola klient)

Vytvorí reláciu fakturačného portálu Stripe na správu spôsobov platby a faktúr.

GET/api/stripe/payoutBearer token relácie (rola operátor)

Vráti informácie o výplate pre autentifikovaného operátora.

POST/api/stripe/payoutBearer token relácie (rola operátor)

Vyžiada výplatu nazbieraných zárobkov. Minimálna výplata je 10,00 EUR.

POST/api/stripe/webhookPodpis webhooku Stripe

Prijíma udalosti webhooku Stripe. Volá ho Stripe, nie klienti API.

Verejné endpointy

Tieto endpointy nevyžadujú žiadnu autentifikáciu. Je bezpečné volať ich z monitoringu, marketingových stránok alebo stavovej sondy.

GET/api/health

Kontrola zdravia pre API a jeho pripojenie k databáze. Vráti 200, keď je oboje v poriadku; ak kontrola databázy zlyhá, vráti sa rovnaká štruktúra so status a db nastavenými na error a stavom HTTP 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]

Vráti verejné informácie o podporovanom modeli robota.

GET/api/public/pricing

Vráti aktuálne verejné cenové plány.

POST/api/contact

Odošle správu z kontaktného formulára. Správa sa najprv uloží a potom doručí e-mailom, takže dočasný výpadok pošty ju nestratí: v takom prípade odpoveď hlási stored true a delivered false a doručenie sa prevádzkovo znovu skúša.

NameInTypeDescription
namebodystringPovinné. Vaše meno.
emailbodystringPovinné. Platná e-mailová adresa na odpoveď.
categorybodystringPovinné. Jedna z: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringPovinné. Krátky predmet.
messagebodystringPovinné. Text správy.
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

Vyžiada podporu pre typ robota, ktorý ešte nie je na platforme.

GET/api/stats

Vráti verejné štatistiky platformy.