API-referanse
AY-Robots REST-API-et ligger under https://www.ay-robots.com/api og snakker JSON i begge retninger. Denne siden dokumenterer autentisering, svarkonvensjonene, og hvert endepunkt, med full parameterdokumentasjon for rutene du mest sannsynlig kaller programmatisk.
Sist oppdatert 2026-08-09
Autentisering
Hvert endepunkt krever autentisering med mindre det står oppført under Offentlige endepunkter. API-et godtar to former for legitimasjon, og begge kommer inn på samme måte: enten som øktcookien dashbordet uansett sender, eller som en Authorization-header med et Bearer-token.
| Metode | Slik fungerer den | Bruk den til |
|---|---|---|
| Nettleserøkt | Supabase-øktens token for din innloggede konto, sendt som cookie eller som Bearer-token | Selve dashbordet og raske eksperimenter fra en autentisert nettleserkontekst |
| API-nøkkel | En nøkkel med prefikset ayr_live_, opprettet i /dashboard/settings og sendt som Bearer-token | Skript, servere, CI, og alt som ikke skal avhenge av en nettleserinnlogging |
| MCP | Den hostede MCP-serveren på https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM-agenter og verktøy som snakker Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API-nøkler opprettes og tilbakekalles i /dashboard/settings. Behandle dem som passord: oppbevar dem serverside, og roter ved å opprette en erstatningsnøkkel før du tilbakekaller den gamle. Bruker du desktop-CLI-en, kan den også eksponere plattformen som en lokal MCP-server med kommandoen: ay-robots mcp.
Svarene er JSON. Feil har en konsistent form: et JSON-objekt med et enkelt error-felt som inneholder en menneskelesbar melding, levert med en passende 4xx- eller 5xx-statuskode. Vellykkede svar returnerer ressursen direkte; noen få endepunkter pakker lister inn i et navngitt felt, noe eksemplene under viser der det betyr noe.
Auth-endepunkter
Konto- og profilrørlegging. Disse brukes primært av selve dashbordet, men de fungerer med enhver gyldig legitimasjon.
/api/auth/profileBearer-økt-token eller API-nøkkelReturnerer profilen til den autentiserte brukeren.
/api/auth/profileBearer-økt-token eller API-nøkkelOppdaterer profilfelt som visningsnavn og varslingspreferanser.
/api/auth/syncBearer-økt-tokenSynkroniserer Supabase-auth-brukeren med plattformens brukerregister.
/api/auth/check-onboardingBearer-økt-tokenRapporterer om den autentiserte brukeren har fullført onboardingen.
/api/auth/avatarBearer-økt-tokenLaster opp et nytt avatarbilde for den autentiserte brukeren.
Kunde-endepunkter
Alt en roboteier forvalter: registrerte roboter, kundeprofilen, datasett, fakturaer og dashbordstatistikk.
/api/client/robotsBearer-økt-token eller API-nøkkel (kunderolle)Lister robotene registrert av den autentiserte kunden, nyeste først, opptil 50 oppføringer. Tidsstempler er ISO 8601; last_online og last_heartbeat er null til roboten har koblet til én gang.
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-økt-token eller API-nøkkel (kunderolle)Registrerer en ny robot og returnerer id-en. En motorkort-maskinvare-ID kan bare tilhøre én robot; en kollisjon avvises med status 409.
/api/client/profileBearer-økt-token eller API-nøkkel (kunderolle)Returnerer kundeprofilen til den autentiserte brukeren.
/api/client/profileBearer-økt-token eller API-nøkkel (kunderolle)Oppdaterer felt i kundeprofilen.
/api/client/datasetsBearer-økt-token eller API-nøkkel (kunderolle)Lister kundens skydatasett med episodeantall og størrelser.
/api/client/invoicesBearer-økt-token eller API-nøkkel (kunderolle)Lister kundens månedlige fakturaer.
/api/client/statsBearer-økt-token eller API-nøkkel (kunderolle)Returnerer bruksstatistikk for kundedashbordet.
Operatør-endepunkter
Operatørsiden: profil og tilgjengelighet, sertifiseringer, planlegging og inntektsstatistikk.
/api/operator/profileBearer-økt-token eller API-nøkkel (operatørrolle)Returnerer operatørprofilen til den autentiserte brukeren.
/api/operator/profileBearer-økt-token eller API-nøkkel (operatørrolle)Oppretter eller oppdaterer operatørprofilen.
/api/operator/available-robotsBearer-økt-token eller API-nøkkel (operatørrolle)Lister roboter som er tilgjengelige nå og matcher operatørens sertifiseringer.
/api/operator/certificationsBearer-økt-token eller API-nøkkel (operatørrolle)Lister operatørens sertifiseringsforespørsler og status for dem.
/api/operator/certificationsBearer-økt-token eller API-nøkkel (operatørrolle)Ber om sertifisering for en robottype.
/api/operator/scheduleBearer-økt-token eller API-nøkkel (operatørrolle)Returnerer operatørens ukentlige tilgjengelighetsplan.
/api/operator/scheduleBearer-økt-token eller API-nøkkel (operatørrolle)Oppdaterer den ukentlige tilgjengelighetsplanen.
/api/operator/availabilityBearer-økt-token eller API-nøkkel (operatørrolle)Returnerer operatørens gjeldende tilgjengelighet.
/api/operator/statsBearer-økt-token eller API-nøkkel (operatørrolle)Returnerer inntekts- og øktstatistikk for operatørdashbordet.
Økter
Økter er plattformens sentrale ressurs: én økt er ett sammenhengende teleoperasjonsengasjement mellom en operatør og en robot. Øktstatusen beveger seg gjennom PENDING, ACTIVE, PAUSED, COMPLETED og CANCELLED.
/api/sessionsBearer-økt-token eller API-nøkkelLister økter for den autentiserte brukeren. Operatører ser økter de styrte; kunder ser økter på sine roboter. Feltsettet er noe forskjellig mellom de to visningene: kundevisningen inkluderer episodes_collected og data_collected_mb, operatørvisningen inkluderer operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Valgfritt. Filtrer etter øktstatus, for eksempel ACTIVE eller COMPLETED. Utelat for å liste alle. |
| limit | query | number | Valgfritt. Sidestørrelse, standard 50, maksimum 100. |
| offset | query | number | Valgfritt. Pagineringsforskyvning, standard 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-økt-token eller API-nøkkel (operatørrolle)Starter en teleoperasjonsøkt på en tilgjengelig robot. Krever operatørrollen: kunder kan ikke starte økter. En operatør kan holde høyst én ACTIVE- eller PAUSED-økt om gangen, og roboten må for øyeblikket ha status AVAILABLE. Ved umiddelbar start bytter roboten til IN_SESSION og kunden varsles.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Påkrevd. Id-en til roboten som skal styres. Roboten må være AVAILABLE. |
| operatorId | body | string | Valgfritt. Eksplisitt operatør-id; standard er den autentiserte operatøren. |
| scheduledFor | body | string (ISO 8601) | Valgfritt. Planlegger økten til et fremtidig tidspunkt i stedet for å starte den umiddelbart. |
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-økt-token eller API-nøkkelReturnerer én enkelt økt med detaljene dens.
/api/sessions/[id]Bearer-økt-token eller API-nøkkelOppdaterer øktens livssyklus: pause, gjenoppta, avslutt og relaterte handlinger.
/api/sessions/[id]/extendBearer-økt-token eller API-nøkkel (kunde, økteier)Ber om en øktforlengelse. Bare kunden som eier økten, kan kalle dette, og økten må være ACTIVE. Forespørselen logges som en økthendelse, og operatøren mottar et varsel; selve forlengelsen skjer når operatøren handler på den.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Økt-id-en. |
| additionalMinutes | body | number | Ønsket forlengelseslengde i minutter. |
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-økt-token eller API-nøkkelLister chatmeldingene til en økt.
/api/sessions/[id]/messagesBearer-økt-token eller API-nøkkelSender en chatmelding i en økt.
/api/sessions/[id]/rateBearer-økt-token eller API-nøkkel (kunde)Vurderer en fullført økt på en skala fra 1 til 5 stjerner, med en valgfri kommentar.
/api/sessions/exportBearer-økt-token eller API-nøkkelEksporterer øktdata.
Betalinger
All pengebevegelse går gjennom Stripe. Kundefakturering bruker en Stripe-kunde med en lagret betalingsmetode; operatørutbetalinger bruker Stripe Connect. Plattformen selv lagrer aldri kort- eller bankdata.
/api/stripe/customerBearer-økt-token (kunderolle)Oppretter eller returnerer Stripe-kunden brukt til kundefakturering.
/api/stripe/connectBearer-økt-token (operatørrolle)Returnerer statusen til operatørens Stripe Connect-konto.
/api/stripe/connectBearer-økt-token (operatørrolle)Starter Stripe Connect-onboardingen for operatørutbetalinger.
/api/stripe/setup-intentBearer-økt-token (kunderolle)Oppretter en Stripe SetupIntent for å lagre en betalingsmetode.
/api/stripe/portalBearer-økt-token (kunderolle)Oppretter en Stripe-faktureringsportal-økt for å forvalte betalingsmetoder og fakturaer.
/api/stripe/payoutBearer-økt-token (operatørrolle)Returnerer utbetalingsinformasjon for den autentiserte operatøren.
/api/stripe/payoutBearer-økt-token (operatørrolle)Ber om en utbetaling av opparbeidede inntekter. Minsteutbetalingen er 10,00 EUR.
/api/stripe/webhookStripe-webhook-signaturMottar Stripe-webhook-hendelser. Kalles av Stripe, ikke av API-klienter.
Offentlige endepunkter
Disse endepunktene krever ingen autentisering. De er trygge å kalle fra overvåking, markedsføringssider eller en statusprobe.
/api/healthHelsesjekk for API-et og databasetilkoblingen dets. Returnerer 200 når begge er i orden; feiler databasesjekken, returneres samme struktur med status og db satt til error og 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]Returnerer offentlig informasjon om en støttet robotmodell.
/api/public/pricingReturnerer de gjeldende offentlige prisplanene.
/api/contactSender inn en melding fra kontaktskjemaet. Meldingen lagres først og leveres deretter på e-post, slik at et midlertidig e-postavbrudd ikke mister den: i så fall rapporterer svaret stored true og delivered false, og leveringen forsøkes på nytt driftsmessig.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Påkrevd. Navnet ditt. |
| body | string | Påkrevd. En gyldig e-postadresse for svaret. | |
| category | body | string | Påkrevd. En av: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Påkrevd. Kort emnelinje. |
| message | body | string | Påkrevd. Selve meldingsteksten. |
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-requestBer om støtte for en robottype som ikke er på plattformen ennå.
/api/statsReturnerer offentlig plattformstatistikk.
Slik sikrer AY-Robots kontoer og direkte robotstyring: Supabase-autentisering, rollemodell, API-nøkler, øktsikkerhet, revisjonslogg og kryptering.
Slik fungerer AY-Robots-økter: livssyklusen fra PENDING til COMPLETED, hver aktivitetshendelse forklart, øktchat, vurderinger, forlengelser og treningsdata.