API referenca
REST API AY-Robots-a se nalazi pod https://www.ay-robots.com/api i govori JSON u oba smera. Ova stranica dokumentuje autentifikaciju, konvencije odgovora i svaku krajnju tačku, sa kompletnom dokumentacijom parametara za rute koje ćete najverovatnije pozivati programski.
Poslednje ažurirano 2026-08-09
Autentifikacija
Svaka krajnja tačka zahteva autentifikaciju osim ako je navedena u odeljku Javno. API prihvata dva oblika kredencijala, i oba stižu na isti način: bilo kao kolačić sesije koji kontrolna tabla i inače šalje, ili kao Authorization zaglavlje sa Bearer token-om.
| Metod | Kako funkcioniše | Koristite za |
|---|---|---|
| Sesija pregledača | Supabase token sesije vašeg prijavljenog naloga, poslat kao kolačić ili kao Bearer token | Samu kontrolnu tablu i brze eksperimente iz autentifikovanog konteksta pregledača |
| API ključ | Ključ sa prefiksom ayr_live_, kreiran u /dashboard/settings i poslat kao Bearer token | Skripte, servere, CI i sve što ne sme da zavisi od prijave preko pregledača |
| 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 na strani servera, a rotirajte tako što ćete prvo da kreirate zamenski ključ pre opoziva starog. Ako koristite desktop CLI, on takođe može da izloži platformu kao lokalni MCP server komandom: ay-robots mcp.
Odgovori su u JSON-u. Greške imaju dosledan oblik: JSON objekat sa jednim poljem error koje sadrži čitljivu poruku, isporučen sa odgovarajućim 4xx ili 5xx statusnim kodom. Uspešni odgovori vraćaju resurs direktno; nekoliko krajnjih tačaka omotava liste u imenovano polje, što primeri ispod pokazuju tamo gde je to bitno.
Auth krajnje tačke
Infrastruktura naloga i profila. Ove krajnje tačke prvenstveno koristi sama kontrolna tabla, ali rade sa bilo kojim validnim kredencijalom.
/api/auth/profileBearer token sesije ili API ključVraća profil autentifikovanog korisnika.
/api/auth/profileBearer token sesije ili API ključAžurira polja profila poput prikaznog imena i podešavanja obaveštenja.
/api/auth/syncBearer token sesijeSinhronizuje Supabase auth korisnika sa zapisom korisnika platforme.
/api/auth/check-onboardingBearer token sesijeJavlja da li je autentifikovani korisnik završio onboarding.
/api/auth/avatarBearer token sesijeOtprema novu sliku avatara za autentifikovanog korisnika.
Krajnje tačke za klijente
Sve čime upravlja vlasnik robota: registrovani roboti, profil klijenta, dataset-ovi, fakture i statistika kontrolne table.
/api/client/robotsBearer token sesije ili API ključ (uloga klijenta)Navodi robote registrovane od strane autentifikovanog klijenta, najnoviji prvi, do 50 unosa. Vremenske oznake su ISO 8601; last_online i last_heartbeat su null dok se robot bar 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 token sesije ili API ključ (uloga klijenta)Registruje novog robota i vraća njegov id. Hardverski id ploče motora može da pripada samo jednom robotu; sukob se odbija sa statusom 409.
/api/client/profileBearer token sesije ili API ključ (uloga klijenta)Vraća profil klijenta autentifikovanog 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 dataset-ove klijenta sa brojem epizoda i veličinama.
/api/client/invoicesBearer token sesije ili API ključ (uloga klijenta)Navodi mesečne fakture klijenta.
/api/client/statsBearer token sesije ili API ključ (uloga klijenta)Vraća statistiku korišćenja za kontrolnu tablu klijenta.
Krajnje tačke za operatere
Strana operatera: profil i dostupnost, sertifikacije, raspoređivanje i statistika zarade.
/api/operator/profileBearer token sesije ili API ključ (uloga operatera)Vraća profil operatera autentifikovanog korisnika.
/api/operator/profileBearer token sesije ili API ključ (uloga operatera)Kreira ili ažurira profil operatera.
/api/operator/available-robotsBearer token sesije ili API ključ (uloga operatera)Navodi robote koji su trenutno dostupni i odgovaraju sertifikacijama operatera.
/api/operator/certificationsBearer token sesije ili API ključ (uloga operatera)Navodi zahteve za sertifikaciju operatera i njihov status.
/api/operator/certificationsBearer token sesije ili API ključ (uloga operatera)Zahteva sertifikaciju za tip robota.
/api/operator/scheduleBearer token sesije ili API ključ (uloga operatera)Vraća nedeljni raspored dostupnosti operatera.
/api/operator/scheduleBearer token sesije ili API ključ (uloga operatera)Ažurira nedeljni 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 kontrolnu tablu operatera.
Sesije
Sesije su osnovni resurs platforme: jedna sesija je jedan neprekidan 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 autentifikovanog korisnika. Operateri vide sesije kojima su upravljali; klijenti vide sesije na svojim robotima. Skup polja se neznatno 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. Filtrira po statusu sesije, na primer ACTIVE ili COMPLETED. Izostavite za listu svih. |
| limit | query | number | Opciono. Veličina stranice, podrazumevano 50, najviše 100. |
| offset | query | number | Opciono. Pomak za straničenje, podrazumevano 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. Zahteva ulogu operatera: klijenti ne mogu da pokreću sesije. Operater može istovremeno da drži najviše jednu ACTIVE ili PAUSED sesiju, a robot trenutno mora da ima status AVAILABLE. Pri trenutnom pokretanju robot prelazi u IN_SESSION i klijent se obaveštava.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Obavezno. Id robota kojim se upravlja. Robot mora da bude AVAILABLE. |
| operatorId | body | string | Opciono. Eksplicitan id operatera; podrazumevano je autentifikovani operater. |
| scheduledFor | body | string (ISO 8601) | Opciono. Zakazuje sesiju za budući trenutak umesto 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 sa njenim 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)Zahteva produženje sesije. Samo klijent koji je vlasnik sesije može ovo da pozove, a sesija mora da bude ACTIVE. Zahtev se beleži kao događaj sesije, a operater dobija obaveštenje; samo produženje se dešava kada operater postupi po njemu.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Id sesije. |
| additionalMinutes | body | number | Zatražena dužina produženja u minutima. |
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 četa sesije.
/api/sessions/[id]/messagesBearer token sesije ili API ključŠalje poruku četa unutar sesije.
/api/sessions/[id]/rateBearer token sesije ili API ključ (klijent)Ocenjuje završenu sesiju na skali od 1 do 5 zvezdica, uz opcioni komentar.
/api/sessions/exportBearer token sesije ili API ključIzvozi podatke sesije.
Plaćanja
Sve kretanje novca odvija se preko Stripe-a. Naplata klijenta koristi Stripe korisnika sa sačuvanim načinom plaćanja; isplate operaterima koriste Stripe Connect. Platforma sama nikada ne čuva podatke o kartici ili banci.
/api/stripe/customerBearer token sesije (uloga klijenta)Kreira ili vraća Stripe korisnika koji se koristi za naplatu klijenta.
/api/stripe/connectBearer token sesije (uloga operatera)Vraća status Stripe Connect naloga 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)Kreira Stripe SetupIntent za čuvanje načina plaćanja.
/api/stripe/portalBearer token sesije (uloga klijenta)Kreira sesiju Stripe portala za naplatu radi upravljanja načinima plaćanja i fakturama.
/api/stripe/payoutBearer token sesije (uloga operatera)Vraća podatke o isplati za autentifikovanog operatera.
/api/stripe/payoutBearer token sesije (uloga operatera)Zahteva isplatu nagomilane zarade. Minimalna isplata iznosi 10,00 EUR.
/api/stripe/webhookStripe webhook potpisPrima Stripe webhook događaje. Poziva ga Stripe, a ne API klijenti.
Javne krajnje tačke
Ove krajnje tačke ne zahtevaju autentifikaciju. Bezbedno ih je pozivati iz monitoringa, marketinških stranica ili probe statusa.
/api/healthProvera zdravlja za API i njegovu vezu sa bazom podataka. Vraća 200 kada su oboje u redu; ako provera baze podataka ne uspe, 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 podatke o podržanom modelu robota.
/api/public/pricingVraća trenutne javne planove cena.
/api/contactŠalje poruku kontakt forme. Poruka se prvo čuva, a zatim isporučuje putem i-mejla, pa privremeni ispad pošte ne dovodi do njenog gubitka: u tom slučaju odgovor prijavljuje stored true i delivered false, a isporuka se operativno ponovo pokušava.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Obavezno. Vaše ime. |
| body | string | Obavezno. Validna i-mejl 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. Telo 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-requestZahteva podršku za tip robota koji još nije na platformi.
/api/statsVraća javnu statistiku platforme.
Kako AY-Robots štiti naloge i upravljanje robotom uživo: autentifikacija, uloge, API ključevi, zaštita sesije, revizioni dnevnik i enkripcija.
Kako funkcionišu sesije na AY-Robots: životni ciklus od PENDING do COMPLETED, događaji aktivnosti, čet, ocene, produženja i podaci za treniranje.