API анықтамалығы

AY-Robots REST API-і https://www.ay-robots.com/api мекенжайында орналасқан және екі бағытта да JSON пайдаланады. Бұл бет аутентификацияны, жауап конвенцияларын және әр соңғы нүктені, оны бағдарламалы түрде шақыруыңыз ықтимал жолдар үшін толық параметр құжаттамасымен бірге қамтиды.

Соңғы жаңарту 2026-08-09

Аутентификация

Public бөлімінде тізілмесе, әр соңғы нүктеге аутентификация қажет. API екі түрлі тіркелгі деректерін қабылдайды, екеуі де бірдей жолмен келеді: бақылау тақтасы бәрібір жіберетін сессия cookie файлы ретінде, немесе Bearer токені бар Authorization тақырыбы ретінде.

ӘдісҚалай жұмыс істейдіНе үшін пайдаланылады
Браузер сессиясыЖүйеге кірген есептік жазбаңыздың Supabase сессия токені, cookie немесе Bearer токені ретінде жіберіледіБақылау тақтасының өзі және аутентификацияланған браузер контекстінен жылдам тәжірибелер
API кілті/dashboard/settings бетінде жасалған, Bearer токені ретінде жіберілетін ayr_live_ префиксі бар кілтСкрипттер, серверлер, CI және браузер логинінен тәуелсіз болуы тиіс кез келген нәрсе
MCPhttps://www.ay-robots.com/api/mcp мекенжайындағы хостталған MCP сервер (Streamable HTTP)Model Context Protocol пайдаланатын LLM агенттері мен құралдар
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
API кілтімен аутентификация жасау

API кілттері /dashboard/settings бетінде жасалады және жойылады. Оларды құпия сөз ретінде қарастырыңыз: сервер жағында сақтаңыз, ескі кілтті жоймас бұрын алмастыратын кілт жасап, айналдырыңыз. Десктоп CLI пайдалансаңыз, ол платформаны жергілікті MCP сервер ретінде де көрсете алады: ay-robots mcp командасымен.

Жауаптар JSON форматында. Қателер бірыңғай пішінді қолданады: адам оқи алатын хабары бар бір error өрісі бар JSON объектісі, сәйкес 4xx немесе 5xx күй кодымен беріледі. Сәтті жауаптар ресурсты тікелей қайтарады; кейбір соңғы нүктелер тізімдерді атаулы өріске орайды, бұл маңызды болатын жерде төмендегі мысалдарда көрсетіледі.

Auth соңғы нүктелері

Есептік жазба мен профильге қатысты негіздер. Бұларды негізінен бақылау тақтасының өзі пайдаланады, бірақ олар кез келген жарамды тіркелгі деректерімен жұмыс істейді.

GET/api/auth/profileBearer сессия токені немесе API кілті

Аутентификацияланған пайдаланушының профилін қайтарады.

POST/api/auth/profileBearer сессия токені немесе API кілті

Көрсетілетін атау мен хабарландыру баптаулары сияқты профиль өрістерін жаңартады.

POST/api/auth/syncBearer сессия токені

Supabase auth пайдаланушысын платформа пайдаланушысының жазбасымен синхрондайды.

GET/api/auth/check-onboardingBearer сессия токені

Аутентификацияланған пайдаланушының тіркелуді аяқтағанын хабарлайды.

POST/api/auth/avatarBearer сессия токені

Аутентификацияланған пайдаланушы үшін жаңа аватар суретін жүктейді.

Client соңғы нүктелері

Робот иесі басқаратын барлық нәрсе: тіркелген роботтар, клиент профилі, датасеттер, шот-фактуралар және бақылау тақтасы статистикасы.

GET/api/client/robotsBearer сессия токені немесе API кілті (client рөлі)

Аутентификацияланған клиент тіркеген роботтарды, ең жаңасынан бастап, 50 жазбаға дейін тізеді. Уақыт белгілері ISO 8601 форматында; робот бір рет қосылмайынша last_online мен last_heartbeat null болады.

Request
curl https://www.ay-robots.com/api/client/robots \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Response
[
  {
    "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"
  }
]
POST/api/client/robotsBearer сессия токені немесе API кілті (client рөлі)

Жаңа роботты тіркеп, оның id мәнін қайтарады. Мотор тақтасының жабдық идентификаторы тек бір роботқа тиесілі бола алады; қайшылық 409 күйімен қабылданбайды.

GET/api/client/profileBearer сессия токені немесе API кілті (client рөлі)

Аутентификацияланған пайдаланушының client профилін қайтарады.

PATCH/api/client/profileBearer сессия токені немесе API кілті (client рөлі)

client профиль өрістерін жаңартады.

GET/api/client/datasetsBearer сессия токені немесе API кілті (client рөлі)

Клиенттің бұлттық датасеттерін эпизод саны мен өлшемдерімен тізеді.

GET/api/client/invoicesBearer сессия токені немесе API кілті (client рөлі)

Клиенттің ай сайынғы шот-фактураларын тізеді.

GET/api/client/statsBearer сессия токені немесе API кілті (client рөлі)

Клиент бақылау тақтасы үшін пайдалану статистикасын қайтарады.

Operator соңғы нүктелері

Оператор жағы: профиль мен қолжетімділік, сертификаттар, кестелер және табыс статистикасы.

GET/api/operator/profileBearer сессия токені немесе API кілті (operator рөлі)

Аутентификацияланған пайдаланушының operator профилін қайтарады.

POST/api/operator/profileBearer сессия токені немесе API кілті (operator рөлі)

operator профилін жасайды немесе жаңартады.

GET/api/operator/available-robotsBearer сессия токені немесе API кілті (operator рөлі)

Қазіргі уақытта қолжетімді және оператордың сертификаттарына сәйкес келетін роботтарды тізеді.

GET/api/operator/certificationsBearer сессия токені немесе API кілті (operator рөлі)

Оператордың сертификаттау сұраныстары мен олардың күйін тізеді.

POST/api/operator/certificationsBearer сессия токені немесе API кілті (operator рөлі)

Робот түрі үшін сертификаттауды сұрайды.

GET/api/operator/scheduleBearer сессия токені немесе API кілті (operator рөлі)

Оператордың апталық қолжетімділік кестесін қайтарады.

POST/api/operator/scheduleBearer сессия токені немесе API кілті (operator рөлі)

Апталық қолжетімділік кестесін жаңартады.

GET/api/operator/availabilityBearer сессия токені немесе API кілті (operator рөлі)

Оператордың ағымдағы қолжетімділігін қайтарады.

GET/api/operator/statsBearer сессия токені немесе API кілті (operator рөлі)

Оператор бақылау тақтасы үшін табыс пен сессия статистикасын қайтарады.

Sessions

Сессиялар платформаның негізгі ресурсы: бір сессия - оператор мен робот арасындағы бір үздіксіз қашықтан басқару әрекеттесуі. Сессия күйі PENDING, ACTIVE, PAUSED, COMPLETED және CANCELLED арасында ауысады.

GET/api/sessionsBearer сессия токені немесе API кілті

Аутентификацияланған пайдаланушы үшін сессияларды тізеді. Операторлар өздері басқарған сессияларды көреді; клиенттер өз роботтарындағы сессияларды көреді. Екі көріністегі өрістер жиынтығы аздап ерекшеленеді: client көрінісіне episodes_collected пен data_collected_mb кіреді, operator көрінісіне operator_earnings_cents кіреді.

NameInTypeDescription
statusquerystringМіндетті емес. Сессия күйі бойынша сүзу, мысалы ACTIVE немесе COMPLETED. Барлығын тізу үшін қалдырыңыз.
limitquerynumberМіндетті емес. Бет өлшемі, әдепкі 50, максимум 100.
offsetquerynumberМіндетті емес. Беттеу ығысуы, әдепкі 0.
Request
curl 'https://www.ay-robots.com/api/sessions?status=COMPLETED&limit=10' \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Response
{
  "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."
    }
  ]
}
POST/api/sessionsBearer сессия токені немесе API кілті (operator рөлі)

Қолжетімді роботта қашықтан басқару сессиясын бастайды. Operator рөлі талап етіледі: клиенттер сессия бастай алмайды. Оператор бір мезгілде ең көбі бір ACTIVE немесе PAUSED сессиясын ұстай алады, ал роботтың ағымдағы күйі AVAILABLE болуы керек. Дереу бастаумен робот IN_SESSION күйіне ауысады, клиентке хабарлама жіберіледі.

NameInTypeDescription
robotIdbodystringМіндетті. Басқарылатын роботтың id мәні. Робот AVAILABLE күйінде болуы керек.
operatorIdbodystringМіндетті емес. Нақты оператор id мәні; әдепкі бойынша аутентификацияланған оператор.
scheduledForbodystring (ISO 8601)Міндетті емес. Сессияны дереу бастаудың орнына болашақ уақытқа жоспарлайды.
Request
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"}'
Response
{
  "sessionId": "6b0d2c9a-53f1-4f6e-8f1a-2c9d4e7b5a30",
  "status": "ACTIVE"
}
GET/api/sessions/[id]Bearer сессия токені немесе API кілті

Бір сессияны деректерімен қайтарады.

PATCH/api/sessions/[id]Bearer сессия токені немесе API кілті

Сессия өмірлік циклін жаңартады: кідірту, жалғастыру, аяқтау және сабақтас әрекеттер.

POST/api/sessions/[id]/extendBearer сессия токені немесе API кілті (client, сессия иесі)

Сессияны ұзартуды сұрайды. Мұны тек сессияға иелік ететін клиент шақыра алады, сессия ACTIVE болуы керек. Сұраныс сессия оқиғасы ретінде тіркеледі, операторға хабарлама жіберіледі; ұзарту оператор оған әрекет жасағанда жүзеге асады.

NameInTypeDescription
idpathstringСессияның id мәні.
additionalMinutesbodynumberМинутпен сұралған ұзарту ұзындығы.
Request
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}'
Response
{
  "message": "Extension request sent to operator"
}
GET/api/sessions/[id]/messagesBearer сессия токені немесе API кілті

Сессияның чат хабарламаларын тізеді.

POST/api/sessions/[id]/messagesBearer сессия токені немесе API кілті

Сессияда чат хабарламасын жібереді.

POST/api/sessions/[id]/rateBearer сессия токені немесе API кілті (client)

Аяқталған сессияны 1-ден 5 жұлдызға дейінгі шкала бойынша, міндетті емес пікірмен бағалайды.

POST/api/sessions/exportBearer сессия токені немесе API кілті

Сессия деректерін экспорттайды.

Payments

Барлық ақша қозғалысы Stripe арқылы жүреді. Клиент төлемдері сақталған төлем әдісі бар Stripe клиентін пайдаланады; оператор төлемдері Stripe Connect пайдаланады. Платформаның өзі карта немесе банк деректерін ешқашан сақтамайды.

POST/api/stripe/customerBearer сессия токені (client рөлі)

Клиент төлемдері үшін пайдаланылатын Stripe клиентін жасайды немесе қайтарады.

GET/api/stripe/connectBearer сессия токені (operator рөлі)

Оператордың Stripe Connect есептік жазбасының күйін қайтарады.

POST/api/stripe/connectBearer сессия токені (operator рөлі)

Оператор төлемдері үшін Stripe Connect тіркелуін бастайды.

POST/api/stripe/setup-intentBearer сессия токені (client рөлі)

Төлем әдісін сақтау үшін Stripe SetupIntent жасайды.

POST/api/stripe/portalBearer сессия токені (client рөлі)

Төлем әдістері мен шот-фактураларды басқару үшін Stripe төлем порталы сессиясын жасайды.

GET/api/stripe/payoutBearer сессия токені (operator рөлі)

Аутентификацияланған оператор үшін төлем ақпаратын қайтарады.

POST/api/stripe/payoutBearer сессия токені (operator рөлі)

Жиналған табыстың төлемін сұрайды. Ең аз төлем 10,00 EUR.

POST/api/stripe/webhookStripe webhook қолтаңбасы

Stripe webhook оқиғаларын қабылдайды. Stripe шақырады, API клиенттері емес.

Public соңғы нүктелері

Бұл соңғы нүктелерге ешбір аутентификация қажет емес. Оларды бақылаудан, маркетинг беттерінен немесе күй тексерушісінен шақыру қауіпсіз.

GET/api/health

API мен оның дерекқор байланысы үшін сау-саулық тексерісі. Екеуі де дұрыс болса 200 қайтарады; дерекқор тексерісі сәтсіз болса, дәл сол пішін status пен db мәндері error, ал HTTP күйі 503 болып қайтарылады.

Request
curl https://www.ay-robots.com/api/health
Response
{
  "status": "ok",
  "db": "ok",
  "timestamp": "2026-08-09T10:12:00.000Z"
}
GET/api/robots/[id]

Қолдау көрсетілетін робот моделі туралы жария ақпаратты қайтарады.

GET/api/public/pricing

Ағымдағы жария баға тарифтерін қайтарады.

POST/api/contact

Байланыс формасының хабарламасын жібереді. Хабарлама алдымен сақталады, содан кейін электрондық поштамен жеткізіледі, сондықтан уақытша поштаның жұмыс істемеуі оны жоғалтпайды: бұл жағдайда жауап stored true және delivered false деп хабарлайды, жеткізу операциялық түрде қайталанады.

NameInTypeDescription
namebodystringМіндетті. Сіздің атыңыз.
emailbodystringМіндетті. Жауап беруге арналған жарамды электрондық пошта мекенжайы.
categorybodystringМіндетті. Мыналардың бірі: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringМіндетті. Қысқа тақырып жолы.
messagebodystringМіндетті. Хабарлама мәтіні.
Request
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."
  }'
Response
{
  "success": true,
  "message": "Message sent successfully",
  "id": "b1f2c3d4-0000-0000-0000-000000000000",
  "stored": true,
  "delivered": true
}
POST/api/robot-request

Платформада әлі жоқ робот түрі үшін қолдау сұрайды.

GET/api/stats

Платформаның жария статистикасын қайтарады.