API žinynas

AY-Robots REST API gyvena adresu https://www.ay-robots.com/api ir abiem kryptimis kalba JSON. Šis puslapis dokumentuoja autentifikaciją, atsakymų konvencijas ir kiekvieną galinį tašką, su pilna parametrų dokumentacija maršrutams, kuriuos greičiausiai kviesite programiškai.

Paskutinį kartą atnaujinta 2026-08-09

Autentifikacija

Kiekvienam galiniam taškui reikalinga autentifikacija, nebent jis išvardytas skyriuje Public. API priima dvi kredencialų formas, ir abi atkeliauja tuo pačiu būdu: arba kaip sesijos slapukas, kurį valdymo skydelis jau siunčia, arba kaip Authorization antraštė su Bearer žetonu.

MetodasKaip veikiaNaudokite
Naršyklės sesijaJūsų prisijungusios paskyros Supabase sesijos žetonas, siunčiamas kaip slapukas arba kaip Bearer žetonasPačiam valdymo skydeliui ir greitiems eksperimentams iš autentifikuoto naršyklės konteksto
API raktasRaktas su ayr_live_ priešdėliu, sukurtas /dashboard/settings ir siunčiamas kaip Bearer žetonasScenarijams, serveriams, CI ir viskam, kas neturi priklausyti nuo prisijungimo per naršyklę
MCPTalpinamas MCP serveris adresu https://www.ay-robots.com/api/mcp (Streamable HTTP)LLM agentams ir įrankiams, kalbantiems Model Context Protocol
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Autentifikacija API raktu

API raktai kuriami ir atšaukiami /dashboard/settings. Traktuokite juos kaip slaptažodžius: laikykite juos serverio pusėje ir keiskite sukurdami pakaitinį raktą prieš atšaukdami seną. Jei naudojate darbalaukio CLI, ji taip pat gali pateikti platformą kaip lokalų MCP serverį komanda: ay-robots mcp.

Atsakymai yra JSON. Klaidos naudoja nuoseklią struktūrą: JSON objektą su vienu error lauku, turinčiu žmogui suprantamą pranešimą, pateikiamą su atitinkamu 4xx ar 5xx būsenos kodu. Sėkmingi atsakymai grąžina resursą tiesiogiai; keli galiniai taškai suvynioja sąrašus į pavadintą lauką, ką žemiau esantys pavyzdžiai rodo ten, kur tai svarbu.

Auth galiniai taškai

Paskyros ir profilio santechnika. Jie pirmiausia naudojami paties valdymo skydelio, bet veikia su bet kuriuo galiojančiu kredencialu.

GET/api/auth/profileBearer sesijos žetonas arba API raktas

Grąžina autentifikuoto naudotojo profilį.

POST/api/auth/profileBearer sesijos žetonas arba API raktas

Atnaujina profilio laukus, tokius kaip rodomas vardas ir pranešimų nuostatos.

POST/api/auth/syncBearer sesijos žetonas

Sinchronizuoja Supabase auth naudotoją su platformos naudotojo įrašu.

GET/api/auth/check-onboardingBearer sesijos žetonas

Praneša, ar autentifikuotas naudotojas baigė registraciją.

POST/api/auth/avatarBearer sesijos žetonas

Įkelia naują avataro paveikslėlį autentifikuotam naudotojui.

Kliento galiniai taškai

Viskas, ką valdo roboto savininkas: registruoti robotai, kliento profilis, duomenų rinkiniai, sąskaitos ir valdymo skydelio statistika.

GET/api/client/robotsBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Išvardija autentifikuoto kliento registruotus robotus, naujausius pirmiausia, iki 50 įrašų. Laiko žymos yra ISO 8601; last_online ir last_heartbeat yra null, kol robotas nė karto neprisijungė.

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 sesijos žetonas arba API raktas (kliento vaidmuo)

Registruoja naują robotą ir grąžina jo id. Variklio plokštės aparatinės įrangos id gali priklausyti tik vienam robotui; konfliktas atmetamas su būsena 409.

GET/api/client/profileBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Grąžina autentifikuoto naudotojo kliento profilį.

PATCH/api/client/profileBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Atnaujina kliento profilio laukus.

GET/api/client/datasetsBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Išvardija kliento debesies duomenų rinkinius su epizodų skaičiais ir dydžiais.

GET/api/client/invoicesBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Išvardija kliento mėnesines sąskaitas.

GET/api/client/statsBearer sesijos žetonas arba API raktas (kliento vaidmuo)

Grąžina naudojimo statistiką kliento valdymo skydeliui.

Operatoriaus galiniai taškai

Operatoriaus pusė: profilis ir prieinamumas, sertifikatai, planavimas ir uždarbio statistika.

GET/api/operator/profileBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Grąžina autentifikuoto naudotojo operatoriaus profilį.

POST/api/operator/profileBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Sukuria arba atnaujina operatoriaus profilį.

GET/api/operator/available-robotsBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Išvardija robotus, kurie šiuo metu laisvi ir atitinka operatoriaus sertifikatus.

GET/api/operator/certificationsBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Išvardija operatoriaus sertifikatų užklausas ir jų būseną.

POST/api/operator/certificationsBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Prašo roboto tipo sertifikato.

GET/api/operator/scheduleBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Grąžina operatoriaus savaitinį prieinamumo tvarkaraštį.

POST/api/operator/scheduleBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Atnaujina savaitinį prieinamumo tvarkaraštį.

GET/api/operator/availabilityBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Grąžina dabartinį operatoriaus prieinamumą.

GET/api/operator/statsBearer sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Grąžina uždarbio ir sesijų statistiką operatoriaus valdymo skydeliui.

Sesijos

Sesijos yra pagrindinis platformos resursas: viena sesija yra vienas nepertraukiamas teleoperacijos užsiėmimas tarp operatoriaus ir roboto. Sesijos būsena pereina per PENDING, ACTIVE, PAUSED, COMPLETED ir CANCELLED.

GET/api/sessionsBearer sesijos žetonas arba API raktas

Išvardija autentifikuoto naudotojo sesijas. Operatoriai mato sesijas, kurias jie valdė; klientai mato sesijas ant savo robotų. Laukų rinkinys šiek tiek skiriasi tarp dviejų vaizdų: kliento vaizde yra episodes_collected ir data_collected_mb, operatoriaus vaizde yra operator_earnings_cents.

NameInTypeDescription
statusquerystringNeprivalomas. Filtruoja pagal sesijos būseną, pavyzdžiui, ACTIVE arba COMPLETED. Praleiskite, kad išvardytumėte visas.
limitquerynumberNeprivalomas. Puslapio dydis, numatytasis 50, maksimalus 100.
offsetquerynumberNeprivalomas. Puslapiavimo poslinkis, numatytasis 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 sesijos žetonas arba API raktas (operatoriaus vaidmuo)

Pradeda teleoperacijos sesiją ant laisvo roboto. Reikalauja operatoriaus vaidmens: klientai sesijų pradėti negali. Operatorius vienu metu gali turėti daugiausiai vieną ACTIVE arba PAUSED sesiją, o robotas šiuo metu turi turėti būseną AVAILABLE. Nedelsiant pradedant, robotas persijungia į IN_SESSION, o klientui išsiunčiamas pranešimas.

NameInTypeDescription
robotIdbodystringPrivalomas. Valdomo roboto id. Robotas turi būti AVAILABLE.
operatorIdbodystringNeprivalomas. Aiškus operatoriaus id; numatytoji reikšmė yra autentifikuotas operatorius.
scheduledForbodystring (ISO 8601)Neprivalomas. Suplanuoja sesiją ateities laikui, o ne pradeda ją iš karto.
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 sesijos žetonas arba API raktas

Grąžina vieną sesiją su jos detalėmis.

PATCH/api/sessions/[id]Bearer sesijos žetonas arba API raktas

Atnaujina sesijos gyvavimo ciklą: pristabdymą, atnaujinimą, pabaigą ir susijusius veiksmus.

POST/api/sessions/[id]/extendBearer sesijos žetonas arba API raktas (klientas, sesijos savininkas)

Prašo sesijos pratęsimo. Tai gali iškviesti tik sesijos savininkas klientas, ir sesija turi būti ACTIVE. Užklausa registruojama kaip sesijos įvykis, o operatorius gauna pranešimą; pats pratęsimas įvyksta, kai operatorius į jį reaguoja.

NameInTypeDescription
idpathstringSesijos id.
additionalMinutesbodynumberPrašomo pratęsimo trukmė minutėmis.
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 sesijos žetonas arba API raktas

Išvardija sesijos pokalbio žinutes.

POST/api/sessions/[id]/messagesBearer sesijos žetonas arba API raktas

Siunčia pokalbio žinutę sesijoje.

POST/api/sessions/[id]/rateBearer sesijos žetonas arba API raktas (klientas)

Įvertina baigtą sesiją 1 iki 5 žvaigždučių skalėje, su neprivalomu komentaru.

POST/api/sessions/exportBearer sesijos žetonas arba API raktas

Eksportuoja sesijos duomenis.

Mokėjimai

Visas pinigų judėjimas vyksta per Stripe. Kliento atsiskaitymas naudoja Stripe klientą su išsaugotu mokėjimo būdu; operatoriaus išmokos naudoja Stripe Connect. Pati platforma niekada nesaugo kortelės ar banko duomenų.

POST/api/stripe/customerBearer sesijos žetonas (kliento vaidmuo)

Sukuria arba grąžina Stripe klientą, naudojamą kliento atsiskaitymui.

GET/api/stripe/connectBearer sesijos žetonas (operatoriaus vaidmuo)

Grąžina operatoriaus Stripe Connect paskyros būseną.

POST/api/stripe/connectBearer sesijos žetonas (operatoriaus vaidmuo)

Pradeda Stripe Connect registraciją operatoriaus išmokoms.

POST/api/stripe/setup-intentBearer sesijos žetonas (kliento vaidmuo)

Sukuria Stripe SetupIntent mokėjimo būdo išsaugojimui.

POST/api/stripe/portalBearer sesijos žetonas (kliento vaidmuo)

Sukuria Stripe atsiskaitymo portalo sesiją mokėjimo būdams ir sąskaitoms valdyti.

GET/api/stripe/payoutBearer sesijos žetonas (operatoriaus vaidmuo)

Grąžina autentifikuoto operatoriaus išmokos informaciją.

POST/api/stripe/payoutBearer sesijos žetonas (operatoriaus vaidmuo)

Prašo sukaupto uždarbio išmokos. Minimali išmoka yra 10,00 EUR.

POST/api/stripe/webhookStripe webhook parašas

Priima Stripe webhook įvykius. Iškviečiamas Stripe, ne API klientų.

Vieši galiniai taškai

Šiems galiniams taškams autentifikacijos nereikia. Juos saugu kviesti iš stebėjimo, rinkodaros puslapių ar būsenos zondo.

GET/api/health

API ir jos duomenų bazės ryšio patikra. Grąžina 200, kai abu tvarkoje; jei duomenų bazės patikra nepavyksta, grąžinama ta pati struktūra su status ir db nustatytais į error ir HTTP būsena 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]

Grąžina viešą informaciją apie palaikomą roboto modelį.

GET/api/public/pricing

Grąžina dabartinius viešus kainodaros planus.

POST/api/contact

Pateikia kontaktų formos žinutę. Žinutė pirmiausia išsaugoma, o tada pristatoma el. paštu, todėl laikina pašto prieinamumo pertrauka jos nepraranda: tokiu atveju atsakymas praneša stored true ir delivered false, o pristatymas bandomas dar kartą operaciniu būdu.

NameInTypeDescription
namebodystringPrivalomas. Jūsų vardas.
emailbodystringPrivalomas. Galiojantis el. pašto adresas atsakymui.
categorybodystringPrivalomas. Vienas iš: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringPrivalomas. Trumpa temos eilutė.
messagebodystringPrivalomas. Žinutės turinys.
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

Prašo palaikymo roboto tipui, kurio dar nėra platformoje.

GET/api/stats

Grąžina viešą platformos statistiką.