API referenca
REST API AY-Robotsa nalazi se pod https://www.ay-robots.com/api i govori JSON u oba smjera. Ova stranica dokumentira autentifikaciju, konvencije odgovora i svaku krajnju točku, s potpunom dokumentacijom parametara za rute koje ćete najvjerojatnije pozivati programski.
Zadnje ažurirano 2026-08-09
Autentifikacija
Svaka krajnja točka zahtijeva autentifikaciju osim ako je navedena u odjeljku Javno. API prihvaća dva oblika vjerodajnica, i oba stižu na isti način: bilo kao kolačić sesije koji nadzorna ploča i inače šalje, ili kao Authorization zaglavlje s Bearer tokenom.
| Metoda | Kako funkcionira | Koristite za |
|---|---|---|
| Sesija preglednika | Supabase token sesije vašeg prijavljenog računa, poslan kao kolačić ili kao Bearer token | Samu nadzornu ploču i brze eksperimente iz autentificiranog konteksta preglednika |
| API ključ | Ključ s prefiksom ayr_live_, izrađen u /dashboard/settings i poslan kao Bearer token | Skripte, servere, CI i sve što ne smije ovisiti o prijavi preglednikom |
| MCP | Hostirani 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 izrađuju se i opozivaju u /dashboard/settings. Tretirajte ih kao lozinke: čuvajte ih na strani servera, a rotirajte tako da prvo izradite zamjenski ključ prije opoziva starog. Ako koristite desktop CLI, on također može izložiti platformu kao lokalni MCP server naredbom: ay-robots mcp.
Odgovori su u JSON-u. Greške imaju dosljedan oblik: JSON objekt s jednim poljem error koje sadrži čitljivu poruku, isporučen s odgovarajućim 4xx ili 5xx statusnim kodom. Uspješni odgovori vraćaju resurs izravno; nekoliko krajnjih točaka omata popise u imenovano polje, što primjeri niže pokazuju gdje je to bitno.
Auth krajnje točke
Infrastruktura računa i profila. Ove krajnje točke prvenstveno koristi sama nadzorna ploča, ali rade s bilo kojom valjanom vjerodajnicom.
/api/auth/profileBearer token sesije ili API ključVraća profil autentificiranog korisnika.
/api/auth/profileBearer token sesije ili API ključAžurira polja profila poput prikaznog imena i postavki obavijesti.
/api/auth/syncBearer token sesijeSinkronizira Supabase auth korisnika sa zapisom korisnika platforme.
/api/auth/check-onboardingBearer token sesijeJavlja je li autentificirani korisnik dovršio onboarding.
/api/auth/avatarBearer token sesijePrenosi novu sliku avatara za autentificiranog korisnika.
Krajnje točke za klijente
Sve čime upravlja vlasnik robota: registrirani roboti, profil klijenta, datasetovi, računi i statistika nadzorne ploče.
/api/client/robotsBearer token sesije ili API ključ (uloga klijenta)Navodi robote registrirane od strane autentificiranog klijenta, najnoviji prvi, do 50 unosa. Vremenske oznake su ISO 8601; last_online i last_heartbeat su null dok se robot barem jednom ne spoji.
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 token sesije ili API ključ (uloga klijenta)Registrira novog robota i vraća njegov id. Hardverski id ploče motora može pripadati samo jednom robotu; sukob se odbija sa statusom 409.
/api/client/profileBearer token sesije ili API ključ (uloga klijenta)Vraća profil klijenta autentificiranog korisnika.
/api/client/profileBearer token sesije ili API ključ (uloga klijenta)Ažurira polja profila klijenta.
/api/client/datasetsBearer token sesije ili API ključ (uloga klijenta)Navodi cloud datasetove klijenta s brojem epizoda i veličinama.
/api/client/invoicesBearer token sesije ili API ključ (uloga klijenta)Navodi mjesečne račune klijenta.
/api/client/statsBearer token sesije ili API ključ (uloga klijenta)Vraća statistiku korištenja za nadzornu ploču klijenta.
Krajnje točke za operatere
Strana operatera: profil i dostupnost, certifikacije, raspoređivanje i statistika zarade.
/api/operator/profileBearer token sesije ili API ključ (uloga operatera)Vraća profil operatera autentificiranog korisnika.
/api/operator/profileBearer token sesije ili API ključ (uloga operatera)Izrađuje ili ažurira profil operatera.
/api/operator/available-robotsBearer token sesije ili API ključ (uloga operatera)Navodi robote koji su trenutno dostupni i odgovaraju certifikacijama operatera.
/api/operator/certificationsBearer token sesije ili API ključ (uloga operatera)Navodi zahtjeve za certifikaciju operatera i njihov status.
/api/operator/certificationsBearer token sesije ili API ključ (uloga operatera)Zahtijeva certifikaciju za tip robota.
/api/operator/scheduleBearer token sesije ili API ključ (uloga operatera)Vraća tjedni raspored dostupnosti operatera.
/api/operator/scheduleBearer token sesije ili API ključ (uloga operatera)Ažurira tjedni raspored dostupnosti.
/api/operator/availabilityBearer token sesije ili API ključ (uloga operatera)Vraća trenutnu dostupnost operatera.
/api/operator/statsBearer token sesije ili API ključ (uloga operatera)Vraća statistiku zarade i sesija za nadzornu ploču operatera.
Sesije
Sesije su temeljni resurs platforme: jedna sesija jedna je neprekinuta angažman teleoperacije između operatera i robota. Status sesije prolazi kroz PENDING, ACTIVE, PAUSED, COMPLETED i CANCELLED.
/api/sessionsBearer token sesije ili API ključNavodi sesije autentificiranog korisnika. Operateri vide sesije kojima su upravljali; klijenti vide sesije na svojim robotima. Skup polja neznatno se 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 | Opcionalno. Filtrira po statusu sesije, primjerice ACTIVE ili COMPLETED. Izostavite za popis svih. |
| limit | query | number | Opcionalno. Veličina stranice, zadano 50, najviše 100. |
| offset | query | number | Opcionalno. Pomak za straničenje, zadano 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 token sesije ili API ključ (uloga operatera)Pokreće sesiju teleoperacije na dostupnom robotu. Zahtijeva ulogu operatera: klijenti ne mogu pokretati sesije. Operater može istovremeno držati najviše jednu ACTIVE ili PAUSED sesiju, a robot trenutno mora imati status AVAILABLE. Pri trenutnom pokretanju robot prelazi u IN_SESSION i klijent se obavještava.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Obavezno. Id robota kojim se upravlja. Robot mora biti AVAILABLE. |
| operatorId | body | string | Opcionalno. Izričit id operatera; zadano je autentificirani operater. |
| scheduledFor | body | string (ISO 8601) | Opcionalno. Zakazuje sesiju za budući trenutak umjesto trenutnog pokretanja. |
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 token sesije ili API ključVraća jednu sesiju s njezinim detaljima.
/api/sessions/[id]Bearer token sesije ili API ključAžurira životni ciklus sesije: pauzu, nastavak, kraj i povezane radnje.
/api/sessions/[id]/extendBearer token sesije ili API ključ (klijent, vlasnik sesije)Zahtijeva produljenje sesije. Samo klijent koji je vlasnik sesije može ovo pozvati, a sesija mora biti ACTIVE. Zahtjev se bilježi kao događaj sesije, a operater prima obavijest; samo produljenje događa se kad operater postupi po njemu.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Id sesije. |
| additionalMinutes | body | number | Zatražena duljina produljenja 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 token sesije ili API ključNavodi poruke chata sesije.
/api/sessions/[id]/messagesBearer token sesije ili API ključŠalje poruku chata unutar sesije.
/api/sessions/[id]/rateBearer token sesije ili API ključ (klijent)Ocjenjuje dovršenu sesiju na skali od 1 do 5 zvjezdica, uz opcionalni komentar.
/api/sessions/exportBearer token sesije ili API ključIzvozi podatke sesije.
Plaćanja
Sve kretanje novca odvija se preko Stripea. Naplata klijenta koristi Stripe korisnika sa spremljenim načinom plaćanja; isplate operaterima koriste Stripe Connect. Platforma sama nikad ne pohranjuje podatke o kartici ili banci.
/api/stripe/customerBearer token sesije (uloga klijenta)Izrađuje ili vraća Stripe korisnika koji se koristi za naplatu klijenta.
/api/stripe/connectBearer token sesije (uloga operatera)Vraća status Stripe Connect računa operatera.
/api/stripe/connectBearer token sesije (uloga operatera)Pokreće onboarding za Stripe Connect radi isplata operateru.
/api/stripe/setup-intentBearer token sesije (uloga klijenta)Izrađuje Stripe SetupIntent za spremanje načina plaćanja.
/api/stripe/portalBearer token sesije (uloga klijenta)Izrađuje sesiju Stripe portala za naplatu radi upravljanja načinima plaćanja i računima.
/api/stripe/payoutBearer token sesije (uloga operatera)Vraća podatke o isplati za autentificiranog operatera.
/api/stripe/payoutBearer token sesije (uloga operatera)Zahtijeva isplatu nakupljene zarade. Minimalna isplata iznosi 10,00 EUR.
/api/stripe/webhookStripe webhook potpisPrima Stripe webhook događaje. Poziva ga Stripe, ne API klijenti.
Javne krajnje točke
Ove krajnje točke ne zahtijevaju autentifikaciju. Sigurno ih je pozivati iz nadzora, marketinških stranica ili probe statusa.
/api/healthProvjera zdravlja za API i njegovu vezu s bazom podataka. Vraća 200 kad su oboje u redu; ako provjera baze podataka ne uspije, vraća se isti oblik sa status i db postavljenima 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 podatke o podržanom modelu robota.
/api/public/pricingVraća trenutne javne cjenovne planove.
/api/contactŠalje poruku kontakt obrasca. Poruka se prvo pohranjuje, a zatim isporučuje e-mailom, pa privremeni ispad pošte ne uzrokuje njezin gubitak: u tom slučaju odgovor prijavljuje stored true i delivered false, a isporuka se operativno ponovno pokušava.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Obavezno. Vaše ime. |
| body | string | Obavezno. Valjana e-mail adresa za odgovor. | |
| category | body | string | Obavezno. Jedna 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-requestZahtijeva podršku za tip robota koji još nije na platformi.
/api/statsVraća javnu statistiku platforme.
Kako AY-Robots štiti račune i upravljanje robotom uživo: autentifikacija, uloge, API ključevi, zaštita sesije, revizijski zapisnik i enkripcija.
Kako funkcioniraju sesije na AY-Robots: životni ciklus od PENDING do COMPLETED, događaji aktivnosti, chat, ocjene, produljenja i podaci za treniranje.