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.
| Metode | Hoe dit werk | Gebruik dit vir |
|---|---|---|
| Blaaiersessie | Die Supabase-sessietoken van jou aangemelde rekening, gestuur as 'n koekie of as 'n Bearer-token | Die 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-token | Skripte, bedieners, CI, en enigiets wat nie van 'n blaaieraanmelding mag afhang nie |
| MCP | Die gehuisveste MCP-bediener by https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM-agente en gereedskap wat die Model Context Protocol praat |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'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.
/api/auth/profileBearer-sessietoken of API-sleutelGee die profiel van die geverifieerde gebruiker terug.
/api/auth/profileBearer-sessietoken of API-sleutelWerk profielvelde by, soos die vertoonnaam en kennisgewingvoorkeure.
/api/auth/syncBearer-sessietokenSinchroniseer die Supabase-verifikasiegebruiker met die platformgebruikersrekord.
/api/auth/check-onboardingBearer-sessietokenRapporteer of die geverifieerde gebruiker onboarding voltooi het.
/api/auth/avatarBearer-sessietokenLaai '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.
/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.
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-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.
/api/client/profileBearer-sessietoken of API-sleutel (kliëntrol)Gee die kliëntprofiel van die geverifieerde gebruiker terug.
/api/client/profileBearer-sessietoken of API-sleutel (kliëntrol)Werk kliëntprofielvelde by.
/api/client/datasetsBearer-sessietoken of API-sleutel (kliëntrol)Lys die kliënt se wolkdatastelle met episodetellings en groottes.
/api/client/invoicesBearer-sessietoken of API-sleutel (kliëntrol)Lys die kliënt se maandelikse fakture.
/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.
/api/operator/profileBearer-sessietoken of API-sleutel (operateurrol)Gee die operateurprofiel van die geverifieerde gebruiker terug.
/api/operator/profileBearer-sessietoken of API-sleutel (operateurrol)Skep of werk die operateurprofiel by.
/api/operator/available-robotsBearer-sessietoken of API-sleutel (operateurrol)Lys robotte wat tans beskikbaar is en by die operateur se sertifisering pas.
/api/operator/certificationsBearer-sessietoken of API-sleutel (operateurrol)Lys die operateur se sertifiseringsaanvrae en hul status.
/api/operator/certificationsBearer-sessietoken of API-sleutel (operateurrol)Vra sertifisering vir 'n robottipe aan.
/api/operator/scheduleBearer-sessietoken of API-sleutel (operateurrol)Gee die operateur se weeklikse beskikbaarheidskedule terug.
/api/operator/scheduleBearer-sessietoken of API-sleutel (operateurrol)Werk die weeklikse beskikbaarheidskedule by.
/api/operator/availabilityBearer-sessietoken of API-sleutel (operateurrol)Gee die operateur se huidige beskikbaarheid terug.
/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.
/api/sessionsBearer-sessietoken of API-sleutelLys 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.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Opsioneel. Filter volgens sessiestatus, byvoorbeeld ACTIVE of COMPLETED. Laat weg om almal te lys. |
| limit | query | number | Opsioneel. Bladsygrootte, verstek 50, maksimum 100. |
| offset | query | number | Opsioneel. Pagineringsverskuiwing, verstek 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-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.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Verpligtend. Id van die robot om te bedien. Die robot moet AVAILABLE wees. |
| operatorId | body | string | Opsioneel. Eksplisiete operateur-id; verstek is die geverifieerde operateur. |
| scheduledFor | body | string (ISO 8601) | Opsioneel. Skeduleer die sessie vir 'n toekomstige tyd in plaas daarvan om dit onmiddellik te begin. |
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-sessietoken of API-sleutelGee 'n enkele sessie met sy besonderhede terug.
/api/sessions/[id]Bearer-sessietoken of API-sleutelWerk die sessielewensiklus by: pouseer, hervat, beëindig, en verwante aksies.
/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.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Die sessie-id. |
| additionalMinutes | body | number | Aangevraagde verlengingslengte in minute. |
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-sessietoken of API-sleutel'n Sessie se kletsboodskappe lys.
/api/sessions/[id]/messagesBearer-sessietoken of API-sleutel'n Kletsboodskap in 'n sessie stuur.
/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.
/api/sessions/exportBearer-sessietoken of API-sleutelVoer 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.
/api/stripe/customerBearer-sessietoken (kliëntrol)Skep of gee die Stripe-kliënt terug wat vir kliëntfakturering gebruik word.
/api/stripe/connectBearer-sessietoken (operateurrol)Gee die status van die operateur se Stripe Connect-rekening terug.
/api/stripe/connectBearer-sessietoken (operateurrol)Begin Stripe Connect-onboarding vir operateuruitbetalings.
/api/stripe/setup-intentBearer-sessietoken (kliëntrol)Skep 'n Stripe SetupIntent om 'n betaalmetode te stoor.
/api/stripe/portalBearer-sessietoken (kliëntrol)Skep 'n Stripe billing portal-sessie om betaalmetodes en fakture te bestuur.
/api/stripe/payoutBearer-sessietoken (operateurrol)Gee uitbetalinginligting vir die geverifieerde operateur terug.
/api/stripe/payoutBearer-sessietoken (operateurrol)Vra 'n uitbetaling van opgehoopte verdienste aan. Die minimum uitbetaling is 10,00 EUR.
/api/stripe/webhookStripe-webhookhandtekeningOntvang 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.
/api/healthGesondheidstoets 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.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Gee openbare inligting oor 'n ondersteunde robotmodel terug.
/api/public/pricingGee die huidige openbare prysplanne terug.
/api/contactDien '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.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Verpligtend. Jou naam. |
| body | string | 'n Geldige e-posadres vir die antwoord. Verpligtend. | |
| category | body | string | Verpligtend. Een van: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Verpligtend. Kort onderwerpreël. |
| message | body | string | Verpligtend. Die boodskapinhoud. |
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-requestVra ondersteuning aan vir 'n robottipe wat nog nie op die platform is nie.
/api/statsGee openbare platformstatistieke terug.
Hoe AY-Robots rekeninge en lewende robotbeheer beveilig: Supabase-verifikasie, rolmodel, API-sleutels, sessiewaarborge, oudit-spoor, en enkripsie.
Hoe AY-Robots-sessies werk: die lewensiklus van PENDING tot COMPLETED, elke aktiwiteitsgebeurtenis, sessieklets, gradering, en verlengings vir opleidingsdata.