API referenca
AY-Robots REST API živi pod https://www.ay-robots.com/api i govori JSON u oba smjera. Ova stranica dokumentuje autentikaciju, konvencije odgovora i svaki endpoint, sa punom dokumentacijom parametara za rute koje ćete najvjerovatnije pozivati programski.
Zadnje ažurirano 2026-08-09
Autentikacija
Svaki endpoint zahtijeva autentikaciju osim ako nije naveden u odjeljku Public. API prihvata dva oblika kredencijala, i oba stižu na isti način: bilo kao sesijski cookie koji kontrolna tabla već šalje, ili kao Authorization header sa Bearer tokenom.
| Metoda | Kako funkcioniše | Koristite je za |
|---|---|---|
| Sesija browsera | Supabase sesijski token vašeg prijavljenog računa, poslat kao cookie ili kao Bearer token | Samu kontrolnu tablu i brze eksperimente iz autentikovanog konteksta browsera |
| API ključ | Ključ sa prefiksom ayr_live_, kreiran u /dashboard/settings i poslat kao Bearer token | Skripte, servere, CI i sve što ne smije zavisiti od prijave putem browsera |
| MCP | Hostovani MCP server na https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM agente i alate koji govore Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API ključevi se kreiraju i opozivaju u /dashboard/settings. Tretirajte ih kao lozinke: čuvajte ih samo na serveru i rotirajte tako što prvo kreirate zamjenski ključ prije nego što opozovete stari. Ako koristite desktop CLI, on takođe može izložiti platformu kao lokalni MCP server komandom: ay-robots mcp.
Odgovori su JSON. Greške koriste dosljedan oblik: JSON objekat sa jednim poljem error koje sadrži poruku čitljivu ljudima, isporučenu sa odgovarajućim 4xx ili 5xx statusnim kodom. Uspješni odgovori vraćaju resurs direktno; nekoliko endpoint-a umata liste u imenovano polje, što primjeri ispod pokazuju gdje je važno.
Endpoint-i za autentikaciju
Infrastruktura računa i profila. Ove uglavnom koristi sama kontrolna tabla, ali funkcionišu sa bilo kojim validnim kredencijalom.
/api/auth/profileBearer sesijski token ili API ključVraća profil autentikovanog korisnika.
/api/auth/profileBearer sesijski token ili API ključAžurira polja profila poput prikazanog imena i preferenci obavještenja.
/api/auth/syncBearer sesijski tokenSinhronizuje Supabase auth korisnika sa zapisom korisnika platforme.
/api/auth/check-onboardingBearer sesijski tokenIzvještava da li je autentikovani korisnik završio onboarding.
/api/auth/avatarBearer sesijski tokenOtprema novu sliku avatara za autentikovanog korisnika.
Endpoint-i za klijente
Sve čime upravlja vlasnik robota: registrovani roboti, profil klijenta, dataset-ovi, fakture i statistika kontrolne table.
/api/client/robotsBearer sesijski token ili API ključ (uloga klijent)Navodi robote registrovane od strane autentikovanog klijenta, najnovije prvo, do 50 unosa. Vremenske oznake su ISO 8601; last_online i last_heartbeat su null dok se robot barem jednom ne poveže.
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 sesijski token ili API ključ (uloga klijent)Registruje novog robota i vraća njegov id. Hardware id ploče motora može pripadati samo jednom robotu; sukob se odbija sa statusom 409.
/api/client/profileBearer sesijski token ili API ključ (uloga klijent)Vraća profil klijenta autentikovanog korisnika.
/api/client/profileBearer sesijski token ili API ključ (uloga klijent)Ažurira polja profila klijenta.
/api/client/datasetsBearer sesijski token ili API ključ (uloga klijent)Navodi cloud dataset-ove klijenta sa brojem epizoda i veličinama.
/api/client/invoicesBearer sesijski token ili API ključ (uloga klijent)Navodi mjesečne fakture klijenta.
/api/client/statsBearer sesijski token ili API ključ (uloga klijent)Vraća statistiku korištenja za kontrolnu tablu klijenta.
Endpoint-i za operatere
Strana operatera: profil i dostupnost, certifikacije, raspored i statistika zarade.
/api/operator/profileBearer sesijski token ili API ključ (uloga operater)Vraća profil operatera autentikovanog korisnika.
/api/operator/profileBearer sesijski token ili API ključ (uloga operater)Kreira ili ažurira profil operatera.
/api/operator/available-robotsBearer sesijski token ili API ključ (uloga operater)Navodi robote koji su trenutno dostupni i odgovaraju certifikacijama operatera.
/api/operator/certificationsBearer sesijski token ili API ključ (uloga operater)Navodi zahtjeve za certifikaciju operatera i njihov status.
/api/operator/certificationsBearer sesijski token ili API ključ (uloga operater)Traži certifikaciju za tip robota.
/api/operator/scheduleBearer sesijski token ili API ključ (uloga operater)Vraća sedmični raspored dostupnosti operatera.
/api/operator/scheduleBearer sesijski token ili API ključ (uloga operater)Ažurira sedmični raspored dostupnosti.
/api/operator/availabilityBearer sesijski token ili API ključ (uloga operater)Vraća trenutnu dostupnost operatera.
/api/operator/statsBearer sesijski token ili API ključ (uloga operater)Vraća statistiku zarade i sesija za kontrolnu tablu operatera.
Sesije
Sesije su osnovni resurs platforme: jedna sesija je jedno kontinuirano angažovanje teleoperacije između operatera i robota. Status sesije prolazi kroz PENDING, ACTIVE, PAUSED, COMPLETED i CANCELLED.
/api/sessionsBearer sesijski token ili API ključNavodi sesije za autentikovanog korisnika. Operateri vide sesije kojima su upravljali; klijenti vide sesije na svojim robotima. Skup polja se malo razlikuje između dva prikaza: prikaz klijenta uključuje episodes_collected i data_collected_mb, prikaz operatera uključuje operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Opciono. Filtrirajte po statusu sesije, na primjer ACTIVE ili COMPLETED. Izostavite da navedete sve. |
| limit | query | number | Opciono. Veličina stranice, podrazumijevano 50, maksimalno 100. |
| offset | query | number | Opciono. Pomak za paginaciju, podrazumijevano 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 sesijski token ili API ključ (uloga operater)Pokreće sesiju teleoperacije na dostupnom robotu. Zahtijeva ulogu operater: klijenti ne mogu pokretati sesije. Operater može držati najviše jednu ACTIVE ili PAUSED sesiju u isto vrijeme, a robot mora trenutno imati status AVAILABLE. Pri trenutnom pokretanju robot prelazi u IN_SESSION i klijent biva obaviješten.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Obavezno. Id robota koji će se upravljati. Robot mora biti AVAILABLE. |
| operatorId | body | string | Opciono. Eksplicitan id operatera; podrazumijevano je autentikovani operater. |
| scheduledFor | body | string (ISO 8601) | Opciono. Zakazuje sesiju za buduće vrijeme umjesto da je odmah pokrene. |
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 sesijski token ili API ključVraća pojedinačnu sesiju sa njenim detaljima.
/api/sessions/[id]Bearer sesijski token ili API ključAžurira životni ciklus sesije: pauzu, nastavak, kraj i povezane akcije.
/api/sessions/[id]/extendBearer sesijski token ili API ključ (klijent, vlasnik sesije)Traži produženje sesije. Samo klijent koji je vlasnik sesije može ovo pozvati, a sesija mora biti ACTIVE. Zahtjev se bilježi kao aktivnost sesije i operater dobija obavještenje; samo produženje se dešava kada operater postupi po njemu.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Id sesije. |
| additionalMinutes | body | number | Traženo trajanje produženja u minutama. |
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 sesijski token ili API ključNavodi poruke chata sesije.
/api/sessions/[id]/messagesBearer sesijski token ili API ključŠalje poruku u chatu sesije.
/api/sessions/[id]/rateBearer sesijski token ili API ključ (klijent)Ocjenjuje završenu sesiju na skali od 1 do 5 zvjezdica, sa opcionim komentarom.
/api/sessions/exportBearer sesijski token ili API ključIzvozi podatke sesije.
Plaćanja
Svako kretanje novca ide preko Stripe-a. Naplata klijenata koristi Stripe kupca sa sačuvanim načinom plaćanja; isplate operatera koriste Stripe Connect. Sama platforma nikada ne čuva podatke o karticama ili bankovnim računima.
/api/stripe/customerBearer sesijski token (uloga klijent)Kreira ili vraća Stripe kupca koji se koristi za naplatu klijenta.
/api/stripe/connectBearer sesijski token (uloga operater)Vraća status Stripe Connect računa operatera.
/api/stripe/connectBearer sesijski token (uloga operater)Pokreće Stripe Connect onboarding za isplate operatera.
/api/stripe/setup-intentBearer sesijski token (uloga klijent)Kreira Stripe SetupIntent za čuvanje načina plaćanja.
/api/stripe/portalBearer sesijski token (uloga klijent)Kreira Stripe billing portal sesiju za upravljanje načinima plaćanja i fakturama.
/api/stripe/payoutBearer sesijski token (uloga operater)Vraća informacije o isplati za autentikovanog operatera.
/api/stripe/payoutBearer sesijski token (uloga operater)Traži isplatu akumulirane zarade. Minimalna isplata je 10,00 EUR.
/api/stripe/webhookStripe webhook potpisPrima Stripe webhook događaje. Poziva ga Stripe, ne API klijenti.
Javni endpoint-i
Ovi endpoint-i ne zahtijevaju autentikaciju. Bezbjedni su za pozivanje iz monitoringa, marketinških stranica ili sonde statusa.
/api/healthProvjera zdravlja za API i njegovu vezu sa bazom podataka. Vraća 200 kada je oboje u redu; ako provjera baze podataka ne uspije, vraća se isti oblik sa status i db postavljenim na error i HTTP statusom 503.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Vraća javne informacije o podržanom modelu robota.
/api/public/pricingVraća trenutne javne planove cijena.
/api/contactŠalje poruku putem kontakt obrasca. Poruka se prvo čuva, a zatim isporučuje putem emaila, tako da privremeni prekid pošte ne izgubi poruku: u tom slučaju odgovor prijavljuje stored true i delivered false, a isporuka se operativno ponavlja.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Obavezno. Vaše ime. |
| body | string | Obavezno. Validna email adresa za odgovor. | |
| category | body | string | Obavezno. Jedno od: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Obavezno. Kratak naslov. |
| message | body | string | Obavezno. Tijelo poruke. |
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-requestTraži podršku za tip robota koji još nije na platformi.
/api/statsVraća javnu statistiku platforme.
Kako AY-Robots obezbjeđuje račune i upravljanje robotima uživo: Supabase autentikacija, model uloga, API ključevi, mjere zaštite sesija, revizijski trag i enkripcija.
Kako funkcionišu sesije na AY-Robots: ciklus od PENDING do COMPLETED, svaka aktivnost objašnjena, chat sesije, ocjene, produženja i podaci za treniranje.