API-viite
AY-Robotsin REST-API sijaitsee osoitteessa https://www.ay-robots.com/api ja puhuu JSON:ia molempiin suuntiin. Tämä sivu dokumentoi todennuksen, vastauskäytännöt ja jokaisen rajapinnan, täydellisellä parametridokumentaatiolla niille reiteille, joita todennäköisimmin kutsut ohjelmallisesti.
Viimeksi päivitetty 2026-08-09
Todennus
Jokainen rajapinta vaatii todennuksen, ellei se ole listattu Julkinen-osiossa. API hyväksyy kaksi tunnistetietojen muotoa, ja molemmat saapuvat samalla tavalla: joko dashboardin jo lähettämänä istuntoevästeenä tai Authorization-otsakkeena Bearer-tokenin kanssa.
| Menetelmä | Miten se toimii | Käytä sitä |
|---|---|---|
| Selainistunto | Kirjautuneen tilisi Supabase-istuntotoken, lähetettynä evästeenä tai Bearer-tokenina | Itse dashboardiin ja nopeisiin kokeiluihin todennetusta selainkontekstista |
| API-avain | Avain etuliitteellä ayr_live_, luotuna osoitteessa /dashboard/settings ja lähetettynä Bearer-tokenina | Skripteihin, palvelimiin, CI:hin ja mihin tahansa, mikä ei saa riippua selainkirjautumisesta |
| MCP | Hostattu MCP-palvelin osoitteessa https://www.ay-robots.com/api/mcp (Streamable HTTP) | LLM-agenteille ja työkaluille, jotka puhuvat Model Context Protocolia |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'API-avaimet luodaan ja perutaan osoitteessa /dashboard/settings. Käsittele niitä kuin salasanoja: pidä ne palvelinpuolella, ja rotatoi luomalla korvaava avain ennen vanhan peruuttamista. Jos käytät työpöytäsovelluksen CLI:tä, se voi myös paljastaa alustan paikallisena MCP-palvelimena komennolla: ay-robots mcp.
Vastaukset ovat JSON:ia. Virheet käyttävät johdonmukaista muotoa: JSON-objekti, jossa on yksi error-kenttä, joka sisältää luettavan viestin, toimitettuna sopivalla 4xx- tai 5xx-tilakoodilla. Onnistuneet vastaukset palauttavat resurssin suoraan; muutama rajapinta kääri listat nimettyyn kenttään, minkä alla olevat esimerkit näyttävät siellä, missä sillä on merkitystä.
Auth-rajapinnat
Tilin ja profiilin perustoiminnot. Näitä käyttää ensisijaisesti itse dashboard, mutta ne toimivat minkä tahansa kelvollisen tunnistetiedon kanssa.
/api/auth/profileBearer-istuntotoken tai API-avainPalauttaa todennetun käyttäjän profiilin.
/api/auth/profileBearer-istuntotoken tai API-avainPäivittää profiilikenttiä, kuten näyttönimen ja ilmoitusasetukset.
/api/auth/syncBearer-istuntotokenSynkronoi Supabase-todennuskäyttäjän alustan käyttäjätietueen kanssa.
/api/auth/check-onboardingBearer-istuntotokenKertoo, onko todennettu käyttäjä suorittanut käyttöönoton loppuun.
/api/auth/avatarBearer-istuntotokenLataa uuden avatarkuvan todennetulle käyttäjälle.
Asiakasrajapinnat
Kaikki, mitä robotinomistaja hallinnoi: rekisteröidyt robotit, asiakasprofiili, datasetit, laskut ja dashboardin tilastot.
/api/client/robotsBearer-istuntotoken tai API-avain (asiakasrooli)Listaa todennetun asiakkaan rekisteröimät robotit, uusimmat ensin, enintään 50 merkintää. Aikaleimat ovat ISO 8601 -muodossa; last_online ja last_heartbeat ovat null, kunnes robotti on yhdistänyt kerran.
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-istuntotoken tai API-avain (asiakasrooli)Rekisteröi uuden robotin ja palauttaa sen id:n. Moottorikortin laitteisto-id voi kuulua vain yhdelle robotille; törmäys hylätään tilalla 409.
/api/client/profileBearer-istuntotoken tai API-avain (asiakasrooli)Palauttaa todennetun käyttäjän asiakasprofiilin.
/api/client/profileBearer-istuntotoken tai API-avain (asiakasrooli)Päivittää asiakasprofiilin kenttiä.
/api/client/datasetsBearer-istuntotoken tai API-avain (asiakasrooli)Listaa asiakkaan pilvidatasetit episodimäärineen ja kokoineen.
/api/client/invoicesBearer-istuntotoken tai API-avain (asiakasrooli)Listaa asiakkaan kuukausilaskut.
/api/client/statsBearer-istuntotoken tai API-avain (asiakasrooli)Palauttaa käyttötilastot asiakkaan dashboardille.
Operaattorirajapinnat
Operaattoripuoli: profiili ja saatavuus, sertifioinnit, aikataulutus ja ansiotilastot.
/api/operator/profileBearer-istuntotoken tai API-avain (operaattorirooli)Palauttaa todennetun käyttäjän operaattoriprofiilin.
/api/operator/profileBearer-istuntotoken tai API-avain (operaattorirooli)Luo tai päivittää operaattoriprofiilin.
/api/operator/available-robotsBearer-istuntotoken tai API-avain (operaattorirooli)Listaa robotit, jotka ovat parhaillaan saatavilla ja vastaavat operaattorin sertifiointeja.
/api/operator/certificationsBearer-istuntotoken tai API-avain (operaattorirooli)Listaa operaattorin sertifiointipyynnöt ja niiden tilan.
/api/operator/certificationsBearer-istuntotoken tai API-avain (operaattorirooli)Pyytää sertifiointia robottityypille.
/api/operator/scheduleBearer-istuntotoken tai API-avain (operaattorirooli)Palauttaa operaattorin viikoittaisen saatavuusaikataulun.
/api/operator/scheduleBearer-istuntotoken tai API-avain (operaattorirooli)Päivittää viikoittaisen saatavuusaikataulun.
/api/operator/availabilityBearer-istuntotoken tai API-avain (operaattorirooli)Palauttaa operaattorin nykyisen saatavuuden.
/api/operator/statsBearer-istuntotoken tai API-avain (operaattorirooli)Palauttaa ansio- ja istuntotilastot operaattorin dashboardille.
Istunnot
Istunnot ovat alustan ydinresurssi: yksi istunto on yksi jatkuva teleoperointitapahtuma operaattorin ja robotin välillä. Istunnon tila etenee tilojen PENDING, ACTIVE, PAUSED, COMPLETED ja CANCELLED läpi.
/api/sessionsBearer-istuntotoken tai API-avainListaa todennetun käyttäjän istunnot. Operaattorit näkevät istunnot, joita he ovat ohjanneet; asiakkaat näkevät istunnot omilla roboteillaan. Kenttäjoukko eroaa hieman näiden kahden näkymän välillä: asiakasnäkymä sisältää kentät episodes_collected ja data_collected_mb, operaattorinäkymä sisältää kentän operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Valinnainen. Suodata istunnon tilan mukaan, esimerkiksi ACTIVE tai COMPLETED. Jätä pois listataksesi kaikki. |
| limit | query | number | Valinnainen. Sivukoko, oletus 50, enintään 100. |
| offset | query | number | Valinnainen. Sivutuksen siirtymä, oletus 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-istuntotoken tai API-avain (operaattorirooli)Käynnistää teleoperointi-istunnon käytettävissä olevalla robotilla. Vaatii operaattorin roolin: asiakkaat eivät voi käynnistää istuntoja. Operaattorilla voi olla kerrallaan enintään yksi ACTIVE- tai PAUSED-istunto, ja robotin tilan täytyy tällä hetkellä olla AVAILABLE. Välittömässä käynnistyksessä robotti vaihtuu tilaan IN_SESSION ja asiakkaalle ilmoitetaan.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Pakollinen. Ohjattavan robotin id. Robotin täytyy olla tilassa AVAILABLE. |
| operatorId | body | string | Valinnainen. Nimenomainen operaattorin id; oletuksena todennettu operaattori. |
| scheduledFor | body | string (ISO 8601) | Valinnainen. Ajoittaa istunnon tulevaan ajankohtaan sen sijaan, että se käynnistyisi heti. |
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-istuntotoken tai API-avainPalauttaa yksittäisen istunnon tietoineen.
/api/sessions/[id]Bearer-istuntotoken tai API-avainPäivittää istunnon elinkaarta: keskeytys, jatkaminen, lopetus ja niihin liittyvät toiminnot.
/api/sessions/[id]/extendBearer-istuntotoken tai API-avain (asiakas, istunnon omistaja)Pyytää istunnon jatkoa. Vain istunnon omistava asiakas voi kutsua tätä, ja istunnon täytyy olla ACTIVE. Pyyntö kirjataan istuntotapahtumana, ja operaattori saa ilmoituksen; itse jatko tapahtuu, kun operaattori toimii sen mukaisesti.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Istunnon id. |
| additionalMinutes | body | number | Pyydetty jatkon pituus minuutteina. |
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-istuntotoken tai API-avainListaa istunnon chat-viestit.
/api/sessions/[id]/messagesBearer-istuntotoken tai API-avainLähettää chat-viestin istunnossa.
/api/sessions/[id]/rateBearer-istuntotoken tai API-avain (asiakas)Arvioi suoritetun istunnon asteikolla 1-5 tähteä, valinnaisella kommentilla.
/api/sessions/exportBearer-istuntotoken tai API-avainVie istuntodataa.
Maksut
Kaikki rahaliikenne kulkee Stripen kautta. Asiakaslaskutus käyttää Stripe-asiakasta tallennetulla maksutavalla; operaattorimaksut käyttävät Stripe Connectia. Alusta itse ei koskaan tallenna kortti- tai pankkidataa.
/api/stripe/customerBearer-istuntotoken (asiakasrooli)Luo tai palauttaa asiakaslaskutukseen käytettävän Stripe-asiakkaan.
/api/stripe/connectBearer-istuntotoken (operaattorirooli)Palauttaa operaattorin Stripe Connect -tilin tilan.
/api/stripe/connectBearer-istuntotoken (operaattorirooli)Käynnistää Stripe Connect -käyttöönoton operaattorimaksuja varten.
/api/stripe/setup-intentBearer-istuntotoken (asiakasrooli)Luo Stripe SetupIntentin maksutavan tallentamista varten.
/api/stripe/portalBearer-istuntotoken (asiakasrooli)Luo Stripe-laskutusportaali-istunnon maksutapojen ja laskujen hallintaan.
/api/stripe/payoutBearer-istuntotoken (operaattorirooli)Palauttaa todennetun operaattorin maksutiedot.
/api/stripe/payoutBearer-istuntotoken (operaattorirooli)Pyytää kertyneiden ansioiden maksua. Vähimmäismaksu on 10,00 EUR.
/api/stripe/webhookStripen webhook-allekirjoitusVastaanottaa Stripen webhook-tapahtumat. Stripen kutsuma, ei API-asiakkaiden.
Julkiset rajapinnat
Nämä rajapinnat eivät vaadi todennusta. Niitä on turvallista kutsua seurannasta, markkinointisivuilta tai tilan tarkistuksesta.
/api/healthAPI:n ja sen tietokantayhteyden terveystarkistus. Palauttaa 200, kun molemmat ovat kunnossa; jos tietokantatarkistus epäonnistuu, palautetaan sama muoto status- ja db-kentillä arvona error sekä HTTP-tilalla 503.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Palauttaa julkista tietoa tuetusta robottimallista.
/api/public/pricingPalauttaa nykyiset julkiset hinnoittelusuunnitelmat.
/api/contactLähettää yhteydenottolomakkeen viestin. Viesti tallennetaan ensin ja toimitetaan sitten sähköpostitse, joten tilapäinen sähköpostikatkos ei hukkaa sitä: siinä tapauksessa vastaus ilmoittaa stored true ja delivered false, ja toimitusta yritetään uudelleen operatiivisesti.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Pakollinen. Nimesi. |
| body | string | Pakollinen. Kelvollinen sähköpostiosoite vastausta varten. | |
| category | body | string | Pakollinen. Yksi seuraavista: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Pakollinen. Lyhyt aiherivi. |
| message | body | string | Pakollinen. Viestin sisältö. |
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-requestPyytää tukea robottityypille, joka ei vielä ole alustalla.
/api/statsPalauttaa julkiset alustan tilastot.
Näin AY-Robots suojaa tilit ja reaaliaikaisen robottiohjauksen: Supabase-todennus, roolimalli, API-avaimet, istuntosuojaukset, tapahtumaloki ja salaus.
Näin AY-Robots-istunnot toimivat: elinkaari PENDING-tilasta COMPLETED-tilaan, aktiviteettitapahtumat, istuntochat, arviot, jatkot ja harjoitusdata.