Referenca API

API-ja REST e AY-Robots jeton nën https://www.ay-robots.com/api dhe flet JSON në të dy drejtimet. Kjo faqe dokumenton autentikimin, konventat e përgjigjeve dhe çdo endpoint, me dokumentim të plotë parametrash për rrugët që ka më shumë gjasa t'i thirrni në mënyrë programore.

Përditësuar së fundmi 2026-08-09

Autentikimi

Çdo endpoint kërkon autentikim, përveçse nëse është listuar në seksionin Public. API-ja pranon dy forma kredencialesh, dhe të dyja arrijnë në të njëjtën mënyrë: ose si cookie-ja e sesionit që paneli e dërgon tashmë, ose si një header Authorization me një token Bearer.

MetodaSi funksiononPërdoreni për
Sesioni i shfletuesitToken-i i sesionit Supabase i llogarisë suaj të identifikuar, dërguar si cookie ose si token BearerVetë paneli dhe eksperimente të shpejta nga një kontekst shfletuesi i autentikuar
Çelësi APINjë çelës me prefiksin ayr_live_, krijuar te /dashboard/settings dhe dërguar si token BearerSkripte, servera, CI dhe gjithçka që s'duhet të varet nga hyrja në shfletues
MCPServeri i hostuar MCP te https://www.ay-robots.com/api/mcp (Streamable HTTP)Agjentë dhe mjete LLM që flasin Model Context Protocol
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Autentikimi me një çelës API

Çelësat API krijohen dhe revokohen te /dashboard/settings. Trajtojini si fjalëkalime: mbajini vetëm në server dhe rotojini duke krijuar një çelës zëvendësues para se ta revokoni të vjetrin. Nëse përdorni CLI-në desktop, ajo mund ta ekspozojë platformën edhe si server lokal MCP me komandën: ay-robots mcp.

Përgjigjet janë JSON. Gabimet përdorin një formë konsistente: një objekt JSON me një fushë të vetme error që përmban një mesazh të lexueshëm nga njeriu, dërguar me një kod statusi 4xx ose 5xx të përshtatshëm. Përgjigjet e suksesshme e kthejnë burimin direkt; disa endpoint-e i mbështjellin listat në një fushë të emërtuar, gjë që shembujt më poshtë e tregojnë ku ka rëndësi.

Endpoint-et e autentikimit

Infrastruktura e llogarisë dhe profilit. Këto përdoren kryesisht nga vetë paneli, por funksionojnë me çdo kredencial të vlefshëm.

GET/api/auth/profileToken sesioni Bearer ose çelës API

Kthen profilin e përdoruesit të autentikuar.

POST/api/auth/profileToken sesioni Bearer ose çelës API

Përditëson fushat e profilit, si emri i shfaqur dhe preferencat e njoftimeve.

POST/api/auth/syncToken sesioni Bearer

Sinkronizon përdoruesin e autentikimit Supabase me rekordin e përdoruesit të platformës.

GET/api/auth/check-onboardingToken sesioni Bearer

Raporton nëse përdoruesi i autentikuar e ka përfunduar onboarding-un.

POST/api/auth/avatarToken sesioni Bearer

Ngarkon një imazh të ri avatari për përdoruesin e autentikuar.

Endpoint-et e klientit

Gjithçka që menaxhon një pronar roboti: robotë të regjistruar, profili i klientit, dataset-e, fatura dhe statistika paneli.

GET/api/client/robotsToken sesioni Bearer ose çelës API (rol klienti)

Liston robotët e regjistruar nga klienti i autentikuar, më të rejtë së pari, deri në 50 hyrje. Vulat kohore janë ISO 8601; last_online dhe last_heartbeat janë null derisa roboti të jetë lidhur të paktën një herë.

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/robotsToken sesioni Bearer ose çelës API (rol klienti)

Regjistron një robot të ri dhe kthen id-në e tij. Një hardware id i një bordi motori mund t'i përkasë vetëm një roboti; një përplasje refuzohet me statusin 409.

GET/api/client/profileToken sesioni Bearer ose çelës API (rol klienti)

Kthen profilin e klientit të përdoruesit të autentikuar.

PATCH/api/client/profileToken sesioni Bearer ose çelës API (rol klienti)

Përditëson fushat e profilit të klientit.

GET/api/client/datasetsToken sesioni Bearer ose çelës API (rol klienti)

Liston dataset-et e klientit në cloud me numrin e episodeve dhe madhësitë.

GET/api/client/invoicesToken sesioni Bearer ose çelës API (rol klienti)

Liston faturat mujore të klientit.

GET/api/client/statsToken sesioni Bearer ose çelës API (rol klienti)

Kthen statistika përdorimi për panelin e klientit.

Endpoint-et e operatorit

Ana e operatorit: profili dhe disponueshmëria, certifikimet, planifikimi dhe statistikat e fitimeve.

GET/api/operator/profileToken sesioni Bearer ose çelës API (rol operatori)

Kthen profilin e operatorit të përdoruesit të autentikuar.

POST/api/operator/profileToken sesioni Bearer ose çelës API (rol operatori)

Krijon ose përditëson profilin e operatorit.

GET/api/operator/available-robotsToken sesioni Bearer ose çelës API (rol operatori)

Liston robotët aktualisht të disponueshëm që përputhen me certifikimet e operatorit.

GET/api/operator/certificationsToken sesioni Bearer ose çelës API (rol operatori)

Liston kërkesat e certifikimit të operatorit dhe statusin e tyre.

POST/api/operator/certificationsToken sesioni Bearer ose çelës API (rol operatori)

Kërkon certifikim për një tip roboti.

GET/api/operator/scheduleToken sesioni Bearer ose çelës API (rol operatori)

Kthen orarin javor të disponueshmërisë të operatorit.

POST/api/operator/scheduleToken sesioni Bearer ose çelës API (rol operatori)

Përditëson orarin javor të disponueshmërisë.

GET/api/operator/availabilityToken sesioni Bearer ose çelës API (rol operatori)

Kthen disponueshmërinë aktuale të operatorit.

GET/api/operator/statsToken sesioni Bearer ose çelës API (rol operatori)

Kthen statistika fitimesh dhe sesionesh për panelin e operatorit.

Sesionet

Sesionet janë burimi bazë i platformës: një sesion është një angazhim i vazhdueshëm teleoperimi mes një operatori dhe një roboti. Statusi i sesionit kalon nëpër PENDING, ACTIVE, PAUSED, COMPLETED dhe CANCELLED.

GET/api/sessionsToken sesioni Bearer ose çelës API

Liston sesionet për përdoruesin e autentikuar. Operatorët shohin sesionet që kanë operuar; klientët shohin sesionet mbi robotët e tyre. Bashkësia e fushave dallon pak mes dy pamjeve: pamja e klientit përfshin episodes_collected dhe data_collected_mb, pamja e operatorit përfshin operator_earnings_cents.

NameInTypeDescription
statusquerystringOpsionale. Filtro sipas statusit të sesionit, për shembull ACTIVE ose COMPLETED. Lëreni bosh për t'i listuar të gjitha.
limitquerynumberOpsionale. Madhësia e faqes, parazgjedhur 50, maksimumi 100.
offsetquerynumberOpsionale. Zhvendosja e paginimit, parazgjedhur 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/sessionsToken sesioni Bearer ose çelës API (rol operatori)

Nis një sesion teleoperimi mbi një robot të disponueshëm. Kërkon rolin operator: klientët nuk mund të nisin sesione. Një operator mund të mbajë më së shumti një sesion ACTIVE ose PAUSED njëherësh, dhe roboti duhet të ketë aktualisht statusin AVAILABLE. Në një nisje të menjëhershme roboti kalon në IN_SESSION dhe klienti njoftohet.

NameInTypeDescription
robotIdbodystringE detyrueshme. Id-ja e robotit që do të operohet. Roboti duhet të jetë AVAILABLE.
operatorIdbodystringOpsionale. Id operatori i shprehur; parazgjedhja është operatori i autentikuar.
scheduledForbodystring (ISO 8601)Opsionale. E planifikon sesionin për një kohë të ardhme në vend që ta nisë menjëherë.
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]Token sesioni Bearer ose çelës API

Kthen një sesion të vetëm me detajet e tij.

PATCH/api/sessions/[id]Token sesioni Bearer ose çelës API

Përditëson ciklin e jetës së sesionit: pauzë, rifillim, përfundim dhe veprime të lidhura.

POST/api/sessions/[id]/extendToken sesioni Bearer ose çelës API (klient, pronar sesioni)

Kërkon një zgjatje sesioni. Vetëm klienti që zotëron sesionin mund ta thërrasë këtë, dhe sesioni duhet të jetë ACTIVE. Kërkesa regjistrohet si një ngjarje sesioni dhe operatori merr një njoftim; vetë zgjatja ndodh kur operatori vepron mbi të.

NameInTypeDescription
idpathstringId-ja e sesionit.
additionalMinutesbodynumberGjatësia e kërkuar e zgjatjes në minuta.
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]/messagesToken sesioni Bearer ose çelës API

Liston mesazhet e bisedës së një sesioni.

POST/api/sessions/[id]/messagesToken sesioni Bearer ose çelës API

Dërgon një mesazh në bisedën e një sesioni.

POST/api/sessions/[id]/rateToken sesioni Bearer ose çelës API (klient)

Vlerëson një sesion të përfunduar në një shkallë 1 deri në 5 yje, me një koment opsional.

POST/api/sessions/exportToken sesioni Bearer ose çelës API

Eksporton të dhëna sesioni.

Pagesat

Çdo lëvizje parash kalon përmes Stripe. Faturimi i klientit përdor një klient Stripe me një metodë pagese të ruajtur; pagesat e operatorëve përdorin Stripe Connect. Vetë platforma nuk ruan kurrë të dhëna kartash apo bankare.

POST/api/stripe/customerToken sesioni Bearer (rol klienti)

Krijon ose kthen klientin Stripe të përdorur për faturimin e klientit.

GET/api/stripe/connectToken sesioni Bearer (rol operatori)

Kthen statusin e llogarisë Stripe Connect të operatorit.

POST/api/stripe/connectToken sesioni Bearer (rol operatori)

Nis onboarding-un e Stripe Connect për pagesat e operatorit.

POST/api/stripe/setup-intentToken sesioni Bearer (rol klienti)

Krijon një Stripe SetupIntent për ruajtjen e një metode pagese.

POST/api/stripe/portalToken sesioni Bearer (rol klienti)

Krijon një sesion Stripe billing portal për menaxhimin e metodave të pagesës dhe faturave.

GET/api/stripe/payoutToken sesioni Bearer (rol operatori)

Kthen informacione pagese për operatorin e autentikuar.

POST/api/stripe/payoutToken sesioni Bearer (rol operatori)

Kërkon një pagesë të fitimeve të grumbulluara. Pagesa minimale është 10,00 EUR.

POST/api/stripe/webhookNënshkrimi i webhook-ut Stripe

Merr ngjarje webhook nga Stripe. Thirret nga Stripe, jo nga klientë API.

Endpoint-et publike

Këto endpoint-e nuk kërkojnë autentikim. Janë të sigurta për t'u thirrur nga monitorimi, faqet e marketingut, ose një sondë statusi.

GET/api/health

Kontroll shëndeti për API-në dhe lidhjen e saj me bazën e të dhënave. Kthen 200 kur të dyja janë në rregull; nëse kontrolli i bazës së të dhënave dështon, kthehet e njëjta formë me status dhe db të vendosura në error dhe statusin 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]

Kthen informacion publik për një model roboti të mbështetur.

GET/api/public/pricing

Kthen planet aktuale publike të çmimeve.

POST/api/contact

Dërgon një mesazh përmes formularit të kontaktit. Mesazhi ruhet së pari dhe pastaj dorëzohet me email, kështu që një ndërprerje e përkohshme e postës nuk e humb: në atë rast përgjigja raporton stored true dhe delivered false, dhe dorëzimi riprovohet operacionalisht.

NameInTypeDescription
namebodystringE detyrueshme. Emri juaj.
emailbodystringE detyrueshme. Një email i vlefshëm për përgjigjen.
categorybodystringE detyrueshme. Një nga: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringE detyrueshme. Subjekt i shkurtër.
messagebodystringE detyrueshme. Trupi i mesazhit.
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

Kërkon mbështetje për një tip roboti që ende nuk është në platformë.

GET/api/stats

Kthen statistika publike të platformës.