API-verwysing

Die AY-Robots REST API leef onder https://www.ay-robots.com/api en praat JSON in albei rigtings. Hierdie bladsy dokumenteer verifikasie, die responskonvensies, en elke eindpunt, met volledige parameterdokumentasie vir die roetes wat jy waarskynlik programmaties sal aanroep.

Laas bygewerk 2026-08-09

Verifikasie

Elke eindpunt vereis verifikasie tensy dit in die Public-afdeling gelys word. Die API aanvaar twee vorme van geloofsbriewe, en albei kom op dieselfde manier aan: óf as die sessiekoekie wat die dashboard reeds stuur, óf as 'n Authorization-header met 'n Bearer-token.

MetodeHoe dit werkGebruik dit vir
BlaaiersessieDie Supabase-sessietoken van jou aangemelde rekening, gestuur as 'n koekie of as 'n Bearer-tokenDie dashboard self en vinnige eksperimente vanuit 'n geverifieerde blaaierkonteks
API-sleutel'n Sleutel met die voorvoegsel ayr_live_, geskep in /dashboard/settings en gestuur as 'n Bearer-tokenSkripte, bedieners, CI, en enigiets wat nie van 'n blaaieraanmelding mag afhang nie
MCPDie gehuisveste MCP-bediener by https://www.ay-robots.com/api/mcp (Streamable HTTP)LLM-agente en gereedskap wat die Model Context Protocol praat
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Verifieer met 'n API-sleutel

API-sleutels word in /dashboard/settings geskep en herroep. Behandel hulle soos wagwoorde: hou hulle aan die serverkant, en roteer deur eers 'n vervangende sleutel te skep voordat jy die ou een herroep. As jy die desktop CLI gebruik, kan dit ook die platform as 'n plaaslike MCP-bediener blootstel met die opdrag: ay-robots mcp.

Response is JSON. Foute gebruik 'n konsekwente vorm: 'n JSON-objek met 'n enkele error-veld wat 'n leesbare boodskap bevat, gelewer met 'n gepaste 4xx- of 5xx-statuskode. Suksesresponse gee die hulpbron direk terug; 'n paar eindpunte draai lyste toe in 'n benoemde veld, wat die voorbeelde hieronder wys waar dit saak maak.

Auth-eindpunte

Rekening- en profielgrondwerk. Dit word hoofsaaklik deur die dashboard self gebruik, maar werk met enige geldige geloofsbrief.

GET/api/auth/profileBearer-sessietoken of API-sleutel

Gee die profiel van die geverifieerde gebruiker terug.

POST/api/auth/profileBearer-sessietoken of API-sleutel

Werk profielvelde by, soos die vertoonnaam en kennisgewingvoorkeure.

POST/api/auth/syncBearer-sessietoken

Sinchroniseer die Supabase-verifikasiegebruiker met die platformgebruikersrekord.

GET/api/auth/check-onboardingBearer-sessietoken

Rapporteer of die geverifieerde gebruiker onboarding voltooi het.

POST/api/auth/avatarBearer-sessietoken

Laai 'n nuwe avatarbeeld op vir die geverifieerde gebruiker.

Kliënt-eindpunte

Alles wat 'n robot-eienaar bestuur: geregistreerde robotte, die kliëntprofiel, datastelle, fakture, en dashboardstatistieke.

GET/api/client/robotsBearer-sessietoken of API-sleutel (kliëntrol)

Lys die robotte wat deur die geverifieerde kliënt geregistreer is, nuutste eerste, tot 50 inskrywings. Tydstempels is ISO 8601; last_online en last_heartbeat is null totdat die robot een keer gekoppel het.

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-sessietoken of API-sleutel (kliëntrol)

Registreer 'n nuwe robot en gee sy id terug. 'n Motorbord-hardeware-id kan aan slegs een robot behoort; 'n botsing word verwerp met status 409.

GET/api/client/profileBearer-sessietoken of API-sleutel (kliëntrol)

Gee die kliëntprofiel van die geverifieerde gebruiker terug.

PATCH/api/client/profileBearer-sessietoken of API-sleutel (kliëntrol)

Werk kliëntprofielvelde by.

GET/api/client/datasetsBearer-sessietoken of API-sleutel (kliëntrol)

Lys die kliënt se wolkdatastelle met episodetellings en groottes.

GET/api/client/invoicesBearer-sessietoken of API-sleutel (kliëntrol)

Lys die kliënt se maandelikse fakture.

GET/api/client/statsBearer-sessietoken of API-sleutel (kliëntrol)

Gee gebruikstatistieke vir die kliëntdashboard terug.

Operateur-eindpunte

Die operateurkant: profiel en beskikbaarheid, sertifisering, skedulering, en verdienstestatistieke.

GET/api/operator/profileBearer-sessietoken of API-sleutel (operateurrol)

Gee die operateurprofiel van die geverifieerde gebruiker terug.

POST/api/operator/profileBearer-sessietoken of API-sleutel (operateurrol)

Skep of werk die operateurprofiel by.

GET/api/operator/available-robotsBearer-sessietoken of API-sleutel (operateurrol)

Lys robotte wat tans beskikbaar is en by die operateur se sertifisering pas.

GET/api/operator/certificationsBearer-sessietoken of API-sleutel (operateurrol)

Lys die operateur se sertifiseringsaanvrae en hul status.

POST/api/operator/certificationsBearer-sessietoken of API-sleutel (operateurrol)

Vra sertifisering vir 'n robottipe aan.

GET/api/operator/scheduleBearer-sessietoken of API-sleutel (operateurrol)

Gee die operateur se weeklikse beskikbaarheidskedule terug.

POST/api/operator/scheduleBearer-sessietoken of API-sleutel (operateurrol)

Werk die weeklikse beskikbaarheidskedule by.

GET/api/operator/availabilityBearer-sessietoken of API-sleutel (operateurrol)

Gee die operateur se huidige beskikbaarheid terug.

GET/api/operator/statsBearer-sessietoken of API-sleutel (operateurrol)

Gee verdienste- en sessiestatistieke vir die operateurdashboard terug.

Sessies

Sessies is die kernhulpbron van die platform: een sessie is een deurlopende teleoperasie-verbintenis tussen 'n operateur en 'n robot. Sessiestatus beweeg deur PENDING, ACTIVE, PAUSED, COMPLETED, en CANCELLED.

GET/api/sessionsBearer-sessietoken of API-sleutel

Lys sessies vir die geverifieerde gebruiker. Operateurs sien sessies wat hulle bedien het; kliënte sien sessies op hul robotte. Die veldstel verskil effens tussen die twee aansigte: die kliëntaansig sluit episodes_collected en data_collected_mb in, die operateuraansig sluit operator_earnings_cents in.

NameInTypeDescription
statusquerystringOpsioneel. Filter volgens sessiestatus, byvoorbeeld ACTIVE of COMPLETED. Laat weg om almal te lys.
limitquerynumberOpsioneel. Bladsygrootte, verstek 50, maksimum 100.
offsetquerynumberOpsioneel. Pagineringsverskuiwing, verstek 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-sessietoken of API-sleutel (operateurrol)

Begin 'n teleoperasie-sessie op 'n beskikbare robot. Vereis die operateurrol: kliënte kan nie sessies begin nie. 'n Operateur kan hoogstens een ACTIVE- of PAUSED-sessie op 'n slag hou, en die robot moet tans status AVAILABLE hê. By 'n onmiddellike begin skakel die robot na IN_SESSION en die kliënt word ingelig.

NameInTypeDescription
robotIdbodystringVerpligtend. Id van die robot om te bedien. Die robot moet AVAILABLE wees.
operatorIdbodystringOpsioneel. Eksplisiete operateur-id; verstek is die geverifieerde operateur.
scheduledForbodystring (ISO 8601)Opsioneel. Skeduleer die sessie vir 'n toekomstige tyd in plaas daarvan om dit onmiddellik te begin.
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-sessietoken of API-sleutel

Gee 'n enkele sessie met sy besonderhede terug.

PATCH/api/sessions/[id]Bearer-sessietoken of API-sleutel

Werk die sessielewensiklus by: pouseer, hervat, beëindig, en verwante aksies.

POST/api/sessions/[id]/extendBearer-sessietoken of API-sleutel (kliënt, sessie-eienaar)

Vra 'n sessieverlenging aan. Slegs die kliënt wat die sessie besit, kan dit aanroep, en die sessie moet ACTIVE wees. Die aanvraag word as 'n sessiegebeurtenis geregistreer en die operateur ontvang 'n kennisgewing; die verlenging self gebeur wanneer die operateur daarop reageer.

NameInTypeDescription
idpathstringDie sessie-id.
additionalMinutesbodynumberAangevraagde verlengingslengte in minute.
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-sessietoken of API-sleutel

'n Sessie se kletsboodskappe lys.

POST/api/sessions/[id]/messagesBearer-sessietoken of API-sleutel

'n Kletsboodskap in 'n sessie stuur.

POST/api/sessions/[id]/rateBearer-sessietoken of API-sleutel (kliënt)

'n Voltooide sessie op 'n skaal van 1 tot 5 sterre gradeer, met 'n opsionele opmerking.

POST/api/sessions/exportBearer-sessietoken of API-sleutel

Voer sessiedata uit.

Betalings

Alle geldbeweging loop deur Stripe. Kliëntfakturering gebruik 'n Stripe-kliënt met 'n gestoorde betaalmetode; operateuruitbetalings gebruik Stripe Connect. Die platform self stoor nooit kaart- of bankdata nie.

POST/api/stripe/customerBearer-sessietoken (kliëntrol)

Skep of gee die Stripe-kliënt terug wat vir kliëntfakturering gebruik word.

GET/api/stripe/connectBearer-sessietoken (operateurrol)

Gee die status van die operateur se Stripe Connect-rekening terug.

POST/api/stripe/connectBearer-sessietoken (operateurrol)

Begin Stripe Connect-onboarding vir operateuruitbetalings.

POST/api/stripe/setup-intentBearer-sessietoken (kliëntrol)

Skep 'n Stripe SetupIntent om 'n betaalmetode te stoor.

POST/api/stripe/portalBearer-sessietoken (kliëntrol)

Skep 'n Stripe billing portal-sessie om betaalmetodes en fakture te bestuur.

GET/api/stripe/payoutBearer-sessietoken (operateurrol)

Gee uitbetalinginligting vir die geverifieerde operateur terug.

POST/api/stripe/payoutBearer-sessietoken (operateurrol)

Vra 'n uitbetaling van opgehoopte verdienste aan. Die minimum uitbetaling is 10,00 EUR.

POST/api/stripe/webhookStripe-webhookhandtekening

Ontvang Stripe-webhookgebeure. Word deur Stripe aangeroep, nie deur API-kliënte nie.

Openbare eindpunte

Hierdie eindpunte vereis geen verifikasie nie. Dit is veilig om vanaf monitering, bemarkingsbladsye, of 'n statusprobe aan te roep.

GET/api/health

Gesondheidstoets vir die API en sy databasiskoppeling. Gee 200 terug wanneer albei in orde is; as die databasistoets faal, word dieselfde vorm teruggegee met status en db op error en HTTP-status 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]

Gee openbare inligting oor 'n ondersteunde robotmodel terug.

GET/api/public/pricing

Gee die huidige openbare prysplanne terug.

POST/api/contact

Dien 'n kontakvormboodskap in. Die boodskap word eers gestoor en dan per e-pos afgelewer, sodat 'n tydelike posonderbreking dit nie verloor nie: in daardie geval rapporteer die respons stored true en delivered false, en aflewering word operasioneel herprobeer.

NameInTypeDescription
namebodystringVerpligtend. Jou naam.
emailbodystring'n Geldige e-posadres vir die antwoord. Verpligtend.
categorybodystringVerpligtend. Een van: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringVerpligtend. Kort onderwerpreël.
messagebodystringVerpligtend. Die boodskapinhoud.
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

Vra ondersteuning aan vir 'n robottipe wat nog nie op die platform is nie.

GET/api/stats

Gee openbare platformstatistieke terug.