API-referens
AY-Robots REST-API finns under https://www.ay-robots.com/api och pratar JSON i båda riktningarna. Den här sidan dokumenterar autentisering, svarskonventionerna och varje slutpunkt, med fullständig parameterdokumentation för de rutter du mest sannolikt kommer att anropa programmatiskt.
Senast uppdaterad 2026-08-09
Autentisering
Varje slutpunkt kräver autentisering om den inte listas i avsnittet Publikt. API:et accepterar två typer av autentiseringsuppgifter, och båda kommer på samma sätt: antingen som sessionscookien instrumentpanelen redan skickar, eller som en Authorization-header med en Bearer-token.
| Metod | Hur den fungerar | Använd den för |
|---|---|---|
| Webbläsarsession | Supabase-sessionstoken för ditt inloggade konto, skickad som en cookie eller som en Bearer-token | Instrumentpanelen själv och snabba experiment från en autentiserad webbläsarkontext |
| API-nyckel | En nyckel med prefixet ayr_live_, skapad i /dashboard/settings och skickad som en Bearer-token | Skript, servrar, CI och allt som inte får bero på en webbläsarinloggning |
| MCP | Den hostade MCP-servern på https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM-agenter och verktyg som pratar Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API-nycklar skapas och återkallas i /dashboard/settings. Behandla dem som lösenord: håll dem serversidan, och rotera genom att skapa en ersättningsnyckel innan du återkallar den gamla. Använder du desktop-CLI:t kan det också exponera plattformen som en lokal MCP-server med kommandot: ay-robots mcp.
Svaren är JSON. Fel använder en konsekvent form: ett JSON-objekt med ett enda error-fält som innehåller ett läsbart meddelande, levererat med en lämplig 4xx- eller 5xx-statuskod. Lyckade svar returnerar resursen direkt; ett fåtal slutpunkter paketerar listor i ett namngivet fält, vilket exemplen nedan visar där det spelar roll.
Auth-slutpunkter
Konto- och profilrörmokeri. De här används i första hand av instrumentpanelen själv, men fungerar med alla giltiga autentiseringsuppgifter.
/api/auth/profileBearer-sessionstoken eller API-nyckelReturnerar profilen för den autentiserade användaren.
/api/auth/profileBearer-sessionstoken eller API-nyckelUppdaterar profilfält som visningsnamnet och aviseringsinställningar.
/api/auth/syncBearer-sessionstokenSynkroniserar Supabase auth-användaren med plattformens användarpost.
/api/auth/check-onboardingBearer-sessionstokenRapporterar om den autentiserade användaren har slutfört onboardingen.
/api/auth/avatarBearer-sessionstokenLaddar upp en ny avatarbild för den autentiserade användaren.
Kundslutpunkter
Allt en robotägare hanterar: registrerade robotar, kundprofilen, dataset, fakturor och instrumentpanelsstatistik.
/api/client/robotsBearer-sessionstoken eller API-nyckel (kundroll)Listar robotarna registrerade av den autentiserade kunden, senaste först, upp till 50 poster. Tidsstämplar är ISO 8601; last_online och last_heartbeat är null tills roboten anslutit en gång.
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-sessionstoken eller API-nyckel (kundroll)Registrerar en ny robot och returnerar dess id. Ett motorkorts hårdvaru-id kan bara tillhöra en robot; en kollision avvisas med status 409.
/api/client/profileBearer-sessionstoken eller API-nyckel (kundroll)Returnerar kundprofilen för den autentiserade användaren.
/api/client/profileBearer-sessionstoken eller API-nyckel (kundroll)Uppdaterar kundprofilfält.
/api/client/datasetsBearer-sessionstoken eller API-nyckel (kundroll)Listar kundens molndataset med episodantal och storlekar.
/api/client/invoicesBearer-sessionstoken eller API-nyckel (kundroll)Listar kundens månadsfakturor.
/api/client/statsBearer-sessionstoken eller API-nyckel (kundroll)Returnerar användningsstatistik för kundens instrumentpanel.
Operatörsslutpunkter
Operatörssidan: profil och tillgänglighet, certifieringar, schemaläggning och intäktsstatistik.
/api/operator/profileBearer-sessionstoken eller API-nyckel (operatörsroll)Returnerar operatörsprofilen för den autentiserade användaren.
/api/operator/profileBearer-sessionstoken eller API-nyckel (operatörsroll)Skapar eller uppdaterar operatörsprofilen.
/api/operator/available-robotsBearer-sessionstoken eller API-nyckel (operatörsroll)Listar robotar som för närvarande är tillgängliga och matchar operatörens certifieringar.
/api/operator/certificationsBearer-sessionstoken eller API-nyckel (operatörsroll)Listar operatörens certifieringsbegäranden och deras status.
/api/operator/certificationsBearer-sessionstoken eller API-nyckel (operatörsroll)Begär certifiering för en robottyp.
/api/operator/scheduleBearer-sessionstoken eller API-nyckel (operatörsroll)Returnerar operatörens veckovisa tillgänglighetsschema.
/api/operator/scheduleBearer-sessionstoken eller API-nyckel (operatörsroll)Uppdaterar det veckovisa tillgänglighetsschemat.
/api/operator/availabilityBearer-sessionstoken eller API-nyckel (operatörsroll)Returnerar operatörens aktuella tillgänglighet.
/api/operator/statsBearer-sessionstoken eller API-nyckel (operatörsroll)Returnerar intäkts- och sessionsstatistik för operatörens instrumentpanel.
Sessioner
Sessioner är plattformens kärnresurs: en session är ett sammanhängande teleopereringsengagemang mellan en operatör och en robot. Sessionsstatus rör sig genom PENDING, ACTIVE, PAUSED, COMPLETED och CANCELLED.
/api/sessionsBearer-sessionstoken eller API-nyckelListar sessioner för den autentiserade användaren. Operatörer ser sessioner de opererade; kunder ser sessioner på sina robotar. Fältuppsättningen skiljer sig något mellan de två vyerna: kundvyn inkluderar episodes_collected och data_collected_mb, operatörsvyn inkluderar operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Valfritt. Filtrera efter sessionsstatus, till exempel ACTIVE eller COMPLETED. Utelämna för att lista alla. |
| limit | query | number | Valfritt. Sidstorlek, standard 50, maximalt 100. |
| offset | query | number | Valfritt. Pagineringsoffset, 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-sessionstoken eller API-nyckel (operatörsroll)Startar en teleopereringssession på en tillgänglig robot. Kräver operatörsrollen: kunder kan inte starta sessioner. En operatör kan hålla högst en ACTIVE eller PAUSED session åt gången, och roboten måste för närvarande ha status AVAILABLE. Vid en omedelbar start växlar roboten till IN_SESSION och kunden meddelas.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Obligatoriskt. Id för roboten som ska styras. Roboten måste vara AVAILABLE. |
| operatorId | body | string | Valfritt. Explicit operatörs-id; standard är den autentiserade operatören. |
| scheduledFor | body | string (ISO 8601) | Valfritt. Schemalägger sessionen till en framtida tidpunkt i stället för att starta den omedelbart. |
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-sessionstoken eller API-nyckelReturnerar en enskild session med dess detaljer.
/api/sessions/[id]Bearer-sessionstoken eller API-nyckelUppdaterar sessionens livscykel: pausa, återuppta, avsluta och relaterade åtgärder.
/api/sessions/[id]/extendBearer-sessionstoken eller API-nyckel (kund, sessionsägare)Begär en sessionsförlängning. Bara kunden som äger sessionen kan anropa den här, och sessionen måste vara ACTIVE. Begäran loggas som en sessionshändelse och operatören får en avisering; själva förlängningen sker när operatören agerar på den.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Sessions-id:t. |
| additionalMinutes | body | number | Begärd förlängningslängd i minuter. |
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-sessionstoken eller API-nyckelListar chattmeddelandena för en session.
/api/sessions/[id]/messagesBearer-sessionstoken eller API-nyckelSkickar ett chattmeddelande i en session.
/api/sessions/[id]/rateBearer-sessionstoken eller API-nyckel (kund)Betygsätter en avslutad session på en skala från 1 till 5 stjärnor, med en valfri kommentar.
/api/sessions/exportBearer-sessionstoken eller API-nyckelExporterar sessionsdata.
Betalningar
All pengarörelse går genom Stripe. Kundfakturering använder en Stripe-kund med en sparad betalningsmetod; operatörsutbetalningar använder Stripe Connect. Plattformen själv lagrar aldrig kort- eller bankdata.
/api/stripe/customerBearer-sessionstoken (kundroll)Skapar eller returnerar Stripe-kunden som används för kundfakturering.
/api/stripe/connectBearer-sessionstoken (operatörsroll)Returnerar statusen för operatörens Stripe Connect-konto.
/api/stripe/connectBearer-sessionstoken (operatörsroll)Startar Stripe Connect-onboarding för operatörsutbetalningar.
/api/stripe/setup-intentBearer-sessionstoken (kundroll)Skapar en Stripe SetupIntent för att spara en betalningsmetod.
/api/stripe/portalBearer-sessionstoken (kundroll)Skapar en Stripe-faktureringsportalsession för att hantera betalningsmetoder och fakturor.
/api/stripe/payoutBearer-sessionstoken (operatörsroll)Returnerar utbetalningsinformation för den autentiserade operatören.
/api/stripe/payoutBearer-sessionstoken (operatörsroll)Begär en utbetalning av ackumulerade intäkter. Minsta utbetalning är 10,00 EUR.
/api/stripe/webhookStripe webhook-signaturTar emot Stripe webhook-händelser. Anropas av Stripe, inte av API-klienter.
Publika slutpunkter
De här slutpunkterna kräver ingen autentisering. De är säkra att anropa från övervakning, marknadsföringssidor eller en statuskontroll.
/api/healthHälsokontroll för API:et och dess databasanslutning. Returnerar 200 när båda är okej; om databaskontrollen misslyckas returneras samma form med status och db satta till error och 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]Returnerar publik information om en robotmodell som stöds.
/api/public/pricingReturnerar de aktuella publika prisplanerna.
/api/contactSkickar ett kontaktformulärsmeddelande. Meddelandet lagras först och levereras sedan via e-post, så ett tillfälligt mejlavbrott gör att det inte går förlorat: i så fall rapporterar svaret stored true och delivered false, och leveransen görs om operativt.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Obligatoriskt. Ditt namn. |
| body | string | Obligatoriskt. En giltig e-postadress för svaret. | |
| category | body | string | Obligatoriskt. En av: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Obligatoriskt. Kort ämnesrad. |
| message | body | string | Obligatoriskt. Meddelandetexten. |
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-requestBegär stöd för en robottyp som ännu inte finns på plattformen.
/api/statsReturnerar publik plattformsstatistik.
Så säkrar AY-Robots konton och live-robotstyrning: Supabase-autentisering, rollmodell, API-nycklar, sessionsskydd, granskningsspår och kryptering.
Så fungerar AY-Robots-sessioner: livscykeln från PENDING till COMPLETED, aktivitetshändelser förklarade, sessionschatt, betyg, förlängningar och träningsdata.