API referansı

AY-Robots REST API'si https://www.ay-robots.com/api altında yaşar ve her iki yönde de JSON konuşur. Bu sayfa kimlik doğrulamayı, yanıt kurallarını ve programatik olarak çağırma olasılığınızın en yüksek olduğu rotalar için tam parametre belgeleriyle birlikte her uç noktayı belgeler.

Son güncelleme 2026-08-09

Kimlik doğrulama

Genel bölümünde listelenmediği sürece her uç nokta kimlik doğrulama gerektirir. API iki tür kimlik bilgisi kabul eder ve ikisi de aynı şekilde gelir: ya panonun zaten gönderdiği oturum çerezi olarak ya da Bearer token'lı bir Authorization başlığı olarak.

YöntemNasıl çalışırNe için kullanılır
Tarayıcı oturumuOturum açmış hesabınızın Supabase oturum tokenı, çerez veya Bearer token olarak gönderilirPanonun kendisi ve kimliği doğrulanmış bir tarayıcı bağlamından hızlı denemeler
API anahtarı/dashboard/settings altında oluşturulan ve Bearer token olarak gönderilen ayr_live_ önekli bir anahtarBetikler, sunucular, CI ve tarayıcı girişine bağlı olmaması gereken her şey
MCPhttps://www.ay-robots.com/api/mcp adresindeki barındırılan MCP sunucusu (Streamable HTTP)Model Context Protocol konuşan LLM ajanları ve araçları
bash
curl https://www.ay-robots.com/api/sessions \
  -H 'Authorization: Bearer ayr_live_your_key_here'
Bir API anahtarıyla kimlik doğrulama

API anahtarları /dashboard/settings altında oluşturulur ve iptal edilir. Onları parola gibi ele alın: sunucu tarafında saklayın ve önce yerine geçecek anahtarı oluşturup ardından eskisini iptal ederek rotasyon yapın. Masaüstü CLI'yi kullanıyorsanız, platformu şu komutla yerel bir MCP sunucusu olarak da sunabilir: ay-robots mcp.

Yanıtlar JSON biçimindedir. Hatalar tutarlı bir şekle sahiptir: insan tarafından okunabilir bir mesaj içeren tek bir error alanına sahip bir JSON nesnesi, uygun bir 4xx veya 5xx durum koduyla teslim edilir. Başarı yanıtları kaynağı doğrudan döndürür; birkaç uç nokta listeleri adlandırılmış bir alana sarar, aşağıdaki örnekler bunun önemli olduğu yerlerde gösterir.

Kimlik doğrulama uç noktaları

Hesap ve profil altyapısı. Bunlar öncelikle panonun kendisi tarafından kullanılır, ama herhangi bir geçerli kimlik bilgisiyle çalışırlar.

GET/api/auth/profileBearer oturum tokenı veya API anahtarı

Kimliği doğrulanmış kullanıcının profilini döndürür.

POST/api/auth/profileBearer oturum tokenı veya API anahtarı

Görünen ad ve bildirim tercihleri gibi profil alanlarını günceller.

POST/api/auth/syncBearer oturum tokenı

Supabase kimlik doğrulama kullanıcısını platform kullanıcı kaydıyla senkronize eder.

GET/api/auth/check-onboardingBearer oturum tokenı

Kimliği doğrulanmış kullanıcının katılımı tamamlayıp tamamlamadığını bildirir.

POST/api/auth/avatarBearer oturum tokenı

Kimliği doğrulanmış kullanıcı için yeni bir avatar görseli yükler.

İstemci uç noktaları

Bir robot sahibinin yönettiği her şey: kayıtlı robotlar, istemci profili, veri kümeleri, faturalar ve pano istatistikleri.

GET/api/client/robotsBearer oturum tokenı veya API anahtarı (istemci rolü)

Kimliği doğrulanmış istemci tarafından kayıtlı robotları, en yeniden en eskiye, 50 girdiye kadar listeler. Zaman damgaları ISO 8601 biçimindedir; robot bir kez bağlanana kadar last_online ve last_heartbeat null'dur.

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 oturum tokenı veya API anahtarı (istemci rolü)

Yeni bir robot kaydeder ve id'sini döndürür. Bir motor kartı donanım kimliği yalnızca bir robota ait olabilir; bir çakışma 409 durumuyla reddedilir.

GET/api/client/profileBearer oturum tokenı veya API anahtarı (istemci rolü)

Kimliği doğrulanmış kullanıcının istemci profilini döndürür.

PATCH/api/client/profileBearer oturum tokenı veya API anahtarı (istemci rolü)

İstemci profili alanlarını günceller.

GET/api/client/datasetsBearer oturum tokenı veya API anahtarı (istemci rolü)

İstemcinin bulut veri kümelerini bölüm sayıları ve boyutlarıyla listeler.

GET/api/client/invoicesBearer oturum tokenı veya API anahtarı (istemci rolü)

İstemcinin aylık faturalarını listeler.

GET/api/client/statsBearer oturum tokenı veya API anahtarı (istemci rolü)

İstemci panosu için kullanım istatistiklerini döndürür.

Operatör uç noktaları

Operatör tarafı: profil ve müsaitlik, sertifikasyonlar, planlama ve kazanç istatistikleri.

GET/api/operator/profileBearer oturum tokenı veya API anahtarı (operatör rolü)

Kimliği doğrulanmış kullanıcının operatör profilini döndürür.

POST/api/operator/profileBearer oturum tokenı veya API anahtarı (operatör rolü)

Operatör profilini oluşturur veya günceller.

GET/api/operator/available-robotsBearer oturum tokenı veya API anahtarı (operatör rolü)

Şu anda uygun olan ve operatörün sertifikasyonlarıyla eşleşen robotları listeler.

GET/api/operator/certificationsBearer oturum tokenı veya API anahtarı (operatör rolü)

Operatörün sertifikasyon isteklerini ve durumlarını listeler.

POST/api/operator/certificationsBearer oturum tokenı veya API anahtarı (operatör rolü)

Bir robot tipi için sertifikasyon talep eder.

GET/api/operator/scheduleBearer oturum tokenı veya API anahtarı (operatör rolü)

Operatörün haftalık müsaitlik programını döndürür.

POST/api/operator/scheduleBearer oturum tokenı veya API anahtarı (operatör rolü)

Haftalık müsaitlik programını günceller.

GET/api/operator/availabilityBearer oturum tokenı veya API anahtarı (operatör rolü)

Operatörün geçerli müsaitliğini döndürür.

GET/api/operator/statsBearer oturum tokenı veya API anahtarı (operatör rolü)

Operatör panosu için kazanç ve oturum istatistiklerini döndürür.

Oturumlar

Oturumlar platformun temel kaynağıdır: bir oturum, bir operatör ile bir robot arasındaki sürekli bir teleoperasyon etkileşimidir. Oturum durumu PENDING, ACTIVE, PAUSED, COMPLETED ve CANCELLED arasında ilerler.

GET/api/sessionsBearer oturum tokenı veya API anahtarı

Kimliği doğrulanmış kullanıcının oturumlarını listeler. Operatörler çalıştırdıkları oturumları görür; istemciler kendi robotlarındaki oturumları görür. Alan kümesi iki görünüm arasında biraz farklıdır: istemci görünümü episodes_collected ve data_collected_mb içerir, operatör görünümü operator_earnings_cents içerir.

NameInTypeDescription
statusquerystringİsteğe bağlı. Oturum durumuna göre filtreler, örneğin ACTIVE veya COMPLETED. Tümünü listelemek için atlayın.
limitquerynumberİsteğe bağlı. Sayfa boyutu, varsayılan 50, azami 100.
offsetquerynumberİsteğe bağlı. Sayfalama ofseti, varsayılan 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 oturum tokenı veya API anahtarı (operatör rolü)

Uygun bir robotta bir teleoperasyon oturumu başlatır. Operatör rolü gerektirir: istemciler oturum başlatamaz. Bir operatör aynı anda en fazla bir ACTIVE veya PAUSED oturuma sahip olabilir ve robotun o sırada AVAILABLE durumunda olması gerekir. Anında başlatmada robot IN_SESSION durumuna geçer ve istemciye bildirim gider.

NameInTypeDescription
robotIdbodystringZorunlu. Çalıştırılacak robotun id'si. Robotun AVAILABLE olması gerekir.
operatorIdbodystringİsteğe bağlı. Açık operatör id'si; varsayılan olarak kimliği doğrulanmış operatördür.
scheduledForbodystring (ISO 8601)İsteğe bağlı. Oturumu hemen başlatmak yerine gelecekteki bir zamana planlar.
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 oturum tokenı veya API anahtarı

Tek bir oturumu ayrıntılarıyla döndürür.

PATCH/api/sessions/[id]Bearer oturum tokenı veya API anahtarı

Oturum yaşam döngüsünü günceller: duraklatma, devam ettirme, sonlandırma ve ilgili eylemler.

POST/api/sessions/[id]/extendBearer oturum tokenı veya API anahtarı (istemci, oturum sahibi)

Bir oturum uzatması talep eder. Bunu yalnızca oturumun sahibi olan istemci çağırabilir ve oturumun ACTIVE olması gerekir. İstek bir oturum olayı olarak günlüğe kaydedilir ve operatör bir bildirim alır; uzatmanın kendisi operatör buna karşılık verdiğinde gerçekleşir.

NameInTypeDescription
idpathstringOturum id'si.
additionalMinutesbodynumberTalep edilen uzatma süresi, dakika cinsinden.
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 oturum tokenı veya API anahtarı

Bir oturumun sohbet mesajlarını listeler.

POST/api/sessions/[id]/messagesBearer oturum tokenı veya API anahtarı

Bir oturumda sohbet mesajı gönderir.

POST/api/sessions/[id]/rateBearer oturum tokenı veya API anahtarı (istemci)

Tamamlanmış bir oturumu isteğe bağlı bir yorumla 1 ile 5 yıldız arasında değerlendirir.

POST/api/sessions/exportBearer oturum tokenı veya API anahtarı

Oturum verisini dışa aktarır.

Ödemeler

Tüm para hareketleri Stripe üzerinden yürür. İstemci faturalandırması, kayıtlı bir ödeme yöntemine sahip bir Stripe müşterisi kullanır; operatör ödemeleri Stripe Connect kullanır. Platformun kendisi hiçbir zaman kart veya banka verisi saklamaz.

POST/api/stripe/customerBearer oturum tokenı (istemci rolü)

İstemci faturalandırması için kullanılan Stripe müşterisini oluşturur veya döndürür.

GET/api/stripe/connectBearer oturum tokenı (operatör rolü)

Operatörün Stripe Connect hesabının durumunu döndürür.

POST/api/stripe/connectBearer oturum tokenı (operatör rolü)

Operatör ödemeleri için Stripe Connect katılımını başlatır.

POST/api/stripe/setup-intentBearer oturum tokenı (istemci rolü)

Bir ödeme yöntemini kaydetmek için bir Stripe SetupIntent oluşturur.

POST/api/stripe/portalBearer oturum tokenı (istemci rolü)

Ödeme yöntemlerini ve faturaları yönetmek için bir Stripe faturalandırma portalı oturumu oluşturur.

GET/api/stripe/payoutBearer oturum tokenı (operatör rolü)

Kimliği doğrulanmış operatör için ödeme bilgisini döndürür.

POST/api/stripe/payoutBearer oturum tokenı (operatör rolü)

Birikmiş kazancın ödemesini talep eder. Asgari ödeme 10,00 EUR'dur.

POST/api/stripe/webhookStripe webhook imzası

Stripe webhook olaylarını alır. API istemcileri tarafından değil, Stripe tarafından çağrılır.

Genel uç noktalar

Bu uç noktalar kimlik doğrulama gerektirmez. İzleme, pazarlama sayfaları veya bir durum probu tarafından çağrılmaları güvenlidir.

GET/api/health

API ve veritabanı bağlantısı için sağlık kontrolü. İkisi de sorunsuzsa 200 döndürür; veritabanı kontrolü başarısız olursa, status ve db değerleri error olarak ayarlanmış aynı şekil 503 HTTP durumuyla döndürülür.

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]

Desteklenen bir robot modeli hakkında genel bilgi döndürür.

GET/api/public/pricing

Geçerli genel fiyatlandırma planlarını döndürür.

POST/api/contact

Bir iletişim formu mesajı gönderir. Mesaj önce saklanır, sonra e-postayla teslim edilir, bu yüzden geçici bir posta kesintisi onu kaybetmez: bu durumda yanıt stored true ve delivered false bildirir, teslimat operasyonel olarak tekrar denenir.

NameInTypeDescription
namebodystringZorunlu. Adınız.
emailbodystringZorunlu. Yanıt için geçerli bir e-posta adresi.
categorybodystringZorunlu. Şunlardan biri: General Inquiry, Bug Report, Feature Request, Sales & Pricing, Partnership, Career/Jobs, Technical Support, Billing & Payments, Press & Media, Other.
subjectbodystringZorunlu. Kısa konu başlığı.
messagebodystringZorunlu. Mesaj metni.
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

Platformda henüz bulunmayan bir robot tipi için destek talep eder.

GET/api/stats

Genel platform istatistiklerini döndürür.