API reference
REST API AY-Robots berada di https://www.ay-robots.com/api dan bertutur JSON dalam kedua-dua arah. Halaman ini mendokumentasikan pengesahan, konvensyen respons, dan setiap titik akhir, dengan dokumentasi parameter penuh untuk laluan yang paling mungkin anda panggil secara berprogram.
Terakhir dikemas kini 2026-08-09
Pengesahan
Setiap titik akhir memerlukan pengesahan melainkan ia disenaraikan dalam bahagian Public. API menerima dua bentuk kelayakan, dan kedua-duanya tiba dengan cara yang sama: sama ada sebagai kuki sesi yang dihantar oleh papan pemuka pada bila-bila masa, atau sebagai header Authorization dengan token Bearer.
| Kaedah | Cara ia berfungsi | Gunakan untuk |
|---|---|---|
| Sesi pelayar | Token sesi Supabase akaun anda yang log masuk, dihantar sebagai kuki atau sebagai token Bearer | Papan pemuka itu sendiri dan eksperimen pantas daripada konteks pelayar yang disahkan |
| Kunci API | Kunci dengan awalan ayr_live_, dicipta di /dashboard/settings dan dihantar sebagai token Bearer | Skrip, pelayan, CI, dan apa jua yang tidak boleh bergantung pada log masuk pelayar |
| MCP | Pelayan MCP dihoskan di https://www.ay-robots.com/api/mcp (Streamable HTTP) | Agen LLM dan alat yang bertutur Model Context Protocol |
curl https://www.ay-robots.com/api/sessions \
-H 'Authorization: Bearer ayr_live_your_key_here'Kunci API dicipta dan dibatalkan di /dashboard/settings. Layankan seperti kata laluan: simpan di sisi pelayan, dan pusingkan dengan mencipta kunci pengganti sebelum membatalkan yang lama. Jika anda menggunakan CLI desktop, ia juga boleh mendedahkan platform sebagai pelayan MCP tempatan dengan arahan: ay-robots mcp.
Respons adalah JSON. Ralat menggunakan bentuk yang konsisten: satu objek JSON dengan medan error tunggal yang mengandungi mesej boleh dibaca manusia, dihantar bersama kod status 4xx atau 5xx yang sesuai. Respons berjaya mengembalikan sumber secara terus; beberapa titik akhir membalut senarai dalam medan bernama, yang ditunjukkan oleh contoh di bawah apabila ia penting.
Titik akhir pengesahan
Perpaipan akaun dan profil. Ini terutamanya digunakan oleh papan pemuka itu sendiri, tetapi ia berfungsi dengan sebarang kelayakan yang sah.
/api/auth/profileToken sesi jenis Bearer atau kunci APIMengembalikan profil pengguna yang disahkan.
/api/auth/profileToken sesi jenis Bearer atau kunci APIMengemas kini medan profil seperti nama paparan dan keutamaan pemberitahuan.
/api/auth/syncToken sesi jenis BearerMenyelaraskan pengguna auth Supabase dengan rekod pengguna platform.
/api/auth/check-onboardingToken sesi jenis BearerMelaporkan sama ada pengguna yang disahkan telah melengkapkan onboarding.
/api/auth/avatarToken sesi jenis BearerMemuat naik imej avatar baharu untuk pengguna yang disahkan.
Titik akhir pelanggan
Segala yang diuruskan oleh pemilik robot: robot yang didaftarkan, profil pelanggan, set data, invois, dan statistik papan pemuka.
/api/client/robotsToken sesi jenis Bearer atau kunci API (peranan pelanggan)Menyenaraikan robot yang didaftarkan oleh pelanggan yang disahkan, terbaharu dahulu, sehingga 50 rekod. Cap masa adalah ISO 8601; last_online dan last_heartbeat adalah null sehingga robot pernah menyambung sekali.
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/robotsToken sesi jenis Bearer atau kunci API (peranan pelanggan)Mendaftarkan robot baharu dan mengembalikan id-nya. hardware id papan motor hanya boleh tergolong kepada satu robot; pertembungan ditolak dengan status 409.
/api/client/profileToken sesi jenis Bearer atau kunci API (peranan pelanggan)Mengembalikan profil pelanggan pengguna yang disahkan.
/api/client/profileToken sesi jenis Bearer atau kunci API (peranan pelanggan)Mengemas kini medan profil pelanggan.
/api/client/datasetsToken sesi jenis Bearer atau kunci API (peranan pelanggan)Menyenaraikan set data awan pelanggan dengan bilangan episod dan saiz.
/api/client/invoicesToken sesi jenis Bearer atau kunci API (peranan pelanggan)Menyenaraikan invois bulanan pelanggan.
/api/client/statsToken sesi jenis Bearer atau kunci API (peranan pelanggan)Mengembalikan statistik penggunaan untuk papan pemuka pelanggan.
Titik akhir operator
Bahagian operator: profil dan ketersediaan, sijil, penjadualan, dan statistik pendapatan.
/api/operator/profileToken sesi jenis Bearer atau kunci API (peranan operator)Mengembalikan profil operator pengguna yang disahkan.
/api/operator/profileToken sesi jenis Bearer atau kunci API (peranan operator)Mencipta atau mengemas kini profil operator.
/api/operator/available-robotsToken sesi jenis Bearer atau kunci API (peranan operator)Menyenaraikan robot yang tersedia pada masa ini dan sepadan dengan sijil operator.
/api/operator/certificationsToken sesi jenis Bearer atau kunci API (peranan operator)Menyenaraikan permintaan sijil operator dan statusnya.
/api/operator/certificationsToken sesi jenis Bearer atau kunci API (peranan operator)Meminta sijil untuk satu jenis robot.
/api/operator/scheduleToken sesi jenis Bearer atau kunci API (peranan operator)Mengembalikan jadual ketersediaan mingguan operator.
/api/operator/scheduleToken sesi jenis Bearer atau kunci API (peranan operator)Mengemas kini jadual ketersediaan mingguan.
/api/operator/availabilityToken sesi jenis Bearer atau kunci API (peranan operator)Mengembalikan ketersediaan semasa operator.
/api/operator/statsToken sesi jenis Bearer atau kunci API (peranan operator)Mengembalikan statistik pendapatan dan sesi untuk papan pemuka operator.
Sesi
Sesi ialah sumber teras platform: satu sesi ialah satu penglibatan teleoperasi berterusan antara operator dan robot. Status sesi bergerak melalui PENDING, ACTIVE, PAUSED, COMPLETED, dan CANCELLED.
/api/sessionsToken sesi jenis Bearer atau kunci APIMenyenaraikan sesi untuk pengguna yang disahkan. Operator melihat sesi yang mereka kendalikan; pelanggan melihat sesi pada robot mereka. Set medan berbeza sedikit antara kedua-dua paparan: paparan pelanggan merangkumi episodes_collected dan data_collected_mb, paparan operator merangkumi operator_earnings_cents.
| Name | In | Type | Description |
|---|---|---|---|
| status | query | string | Pilihan. Tapis mengikut status sesi, contohnya ACTIVE atau COMPLETED. Tinggalkan untuk menyenaraikan semua. |
| limit | query | number | Pilihan. Saiz halaman, lalai 50, maksimum 100. |
| offset | query | number | Pilihan. Ofset penomboran halaman, lalai 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/sessionsToken sesi jenis Bearer atau kunci API (peranan operator)Memulakan sesi teleoperasi pada robot yang tersedia. Memerlukan peranan operator: pelanggan tidak boleh memulakan sesi. Seorang operator boleh memegang paling banyak satu sesi ACTIVE atau PAUSED pada satu masa, dan robot itu mesti pada masa ini berstatus AVAILABLE. Pada permulaan segera robot bertukar kepada IN_SESSION dan pelanggan dimaklumkan.
| Name | In | Type | Description |
|---|---|---|---|
| robotId | body | string | Wajib. Id robot yang perlu dikendalikan. Robot itu mesti AVAILABLE. |
| operatorId | body | string | Pilihan. Id operator eksplisit; lalai kepada operator yang disahkan. |
| scheduledFor | body | string (ISO 8601) | Pilihan. Menjadualkan sesi untuk masa akan datang dan bukannya memulakannya serta-merta. |
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]Token sesi jenis Bearer atau kunci APIMengembalikan satu sesi tunggal berserta perinciannya.
/api/sessions/[id]Token sesi jenis Bearer atau kunci APIMengemas kini kitaran hayat sesi: jeda, sambung semula, tamat, dan tindakan berkaitan.
/api/sessions/[id]/extendToken sesi jenis Bearer atau kunci API (pelanggan, pemilik sesi)Meminta lanjutan sesi. Hanya pelanggan yang memiliki sesi boleh memanggil ini, dan sesi itu mesti ACTIVE. Permintaan direkodkan sebagai peristiwa sesi dan operator menerima pemberitahuan; lanjutan itu sendiri berlaku apabila operator bertindak ke atasnya.
| Name | In | Type | Description |
|---|---|---|---|
| id | path | string | Id sesi. |
| additionalMinutes | body | number | Panjang lanjutan yang diminta dalam minit. |
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]/messagesToken sesi jenis Bearer atau kunci APIMenyenaraikan mesej sembang bagi satu sesi.
/api/sessions/[id]/messagesToken sesi jenis Bearer atau kunci APIMenghantar mesej sembang dalam satu sesi.
/api/sessions/[id]/rateToken sesi jenis Bearer atau kunci API (pelanggan)Menilai sesi yang selesai pada skala 1 hingga 5 bintang, dengan komen pilihan.
/api/sessions/exportToken sesi jenis Bearer atau kunci APIMengeksport data sesi.
Pembayaran
Semua pergerakan wang berjalan melalui Stripe. Pengebilan pelanggan menggunakan pelanggan Stripe dengan kaedah pembayaran yang disimpan; pengeluaran operator menggunakan Stripe Connect. Platform itu sendiri tidak pernah menyimpan data kad atau bank.
/api/stripe/customerToken sesi jenis Bearer (peranan pelanggan)Mencipta atau mengembalikan pelanggan Stripe yang digunakan untuk pengebilan pelanggan.
/api/stripe/connectToken sesi jenis Bearer (peranan operator)Mengembalikan status akaun Stripe Connect operator.
/api/stripe/connectToken sesi jenis Bearer (peranan operator)Memulakan onboarding Stripe Connect untuk pengeluaran operator.
/api/stripe/setup-intentToken sesi jenis Bearer (peranan pelanggan)Mencipta Stripe SetupIntent untuk menyimpan kaedah pembayaran.
/api/stripe/portalToken sesi jenis Bearer (peranan pelanggan)Mencipta sesi portal pengebilan Stripe untuk menguruskan kaedah pembayaran dan invois.
/api/stripe/payoutToken sesi jenis Bearer (peranan operator)Mengembalikan maklumat pengeluaran untuk operator yang disahkan.
/api/stripe/payoutToken sesi jenis Bearer (peranan operator)Meminta pengeluaran pendapatan yang terkumpul. Pengeluaran minimum ialah 10.00 EUR.
/api/stripe/webhookTandatangan webhook StripeMenerima peristiwa webhook daripada Stripe. Dipanggil oleh Stripe, bukan oleh klien API.
Titik akhir awam
Titik akhir ini tidak memerlukan sebarang pengesahan. Selamat dipanggil daripada pemantauan, halaman pemasaran, atau probe status.
/api/healthSemakan kesihatan untuk API dan sambungan pangkalan datanya. Mengembalikan 200 apabila kedua-duanya baik; jika semakan pangkalan data gagal, bentuk yang sama dikembalikan dengan status dan db ditetapkan kepada error dan status HTTP 503.
curl https://www.ay-robots.com/api/health{
"status": "ok",
"db": "ok",
"timestamp": "2026-08-09T10:12:00.000Z"
}/api/robots/[id]Mengembalikan maklumat awam mengenai model robot yang disokong.
/api/public/pricingMengembalikan pelan harga awam semasa.
/api/contactMenghantar mesej borang hubungi. Mesej itu disimpan dahulu dan kemudian dihantar melalui e-mel, jadi gangguan mel sementara tidak akan kehilangannya: dalam kes itu respons melaporkan stored true dan delivered false, dan penghantaran dicuba semula secara operasi.
| Name | In | Type | Description |
|---|---|---|---|
| name | body | string | Wajib. Nama anda. |
| body | string | Wajib. Alamat e-mel yang sah untuk balasan. | |
| category | body | string | Wajib. Salah satu daripada: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other. |
| subject | body | string | Wajib. Baris subjek yang ringkas. |
| message | body | string | Wajib. Kandungan mesej. |
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-requestMeminta sokongan untuk jenis robot yang belum ada pada platform.
/api/statsMengembalikan statistik platform awam.
Cara AY-Robots melindungi akaun dan kawalan robot langsung: pengesahan Supabase, model peranan, kunci API, langkah keselamatan, jejak audit, dan penyulitan.
Cara sesi AY-Robots berfungsi: kitaran hayat PENDING hingga COMPLETED, peristiwa aktiviti, sembang sesi, penilaian, lanjutan, dan data latihan.