Skip to content

Endpoints desktop

Référence REST de la surface publique /v1/desktops/* : lecture, cycle de vie, contrôle et chat. Auth Bearer sur chaque appel.

3 min de lecture

Toutes les routes desktop vivent sous /v1/desktops/* et exigent Authorization: Bearer sk_live_... sur chaque requête. Chaque route requiert aussi une capability spécifique sur la clé appelante. Si la clé est valide mais qu'il lui manque la capability, la réponse est 403 Forbidden. Voir Capabilities API pour la table complète et comment cadrer une clé.

Lecture

RouteCapabilityObjet
GET /v1/desktopsdesktop:readListe les bureaux que vous possédez. Les bureaux détruits sont exclus.
GET /v1/desktops/:iddesktop:readRécupère un bureau avec statut, tier, IP, état de l'agent.

Cycle de vie

RouteCapabilityObjet
POST /v1/desktops/:id/startdesktop:lifecycleDémarre un bureau arrêté. Répond une fois le boot mis en file ; sondez /v1/desktops/:id pour status et agentReady afin de savoir quand il est appelable.
POST /v1/desktops/:id/stopdesktop:lifecycleArrête un bureau.
POST /v1/desktops/:id/restartdesktop:lifecycleStop puis start.

Contrôle

Ces routes pilotent un bureau directement. Elles exigent que ce bureau soit running avec agentReady: true ; sinon la réponse est 503.

RouteCapabilityObjet
POST /v1/desktops/:id/clickdesktop:controlClic souris aux coordonnées données.
POST /v1/desktops/:id/dragdesktop:controlGlisser souris d'un point de départ à un point d'arrivée.
POST /v1/desktops/:id/scrolldesktop:controlDéfiler la vue du bureau.
POST /v1/desktops/:id/typedesktop:controlSaisir une chaîne de texte.
POST /v1/desktops/:id/keydesktop:controlEnvoyer une touche ou combinaison de touches.
POST /v1/desktops/:id/bashdesktop:controlExécuter un script bash multi-lignes.
POST /v1/desktops/:id/execdesktop:controlExécuter une seule commande shell. La réponse contient stdout, stderr, exitCode.
GET /v1/desktops/:id/screenshotdesktop:controlRenvoie un PNG de l'affichage courant.

Chat

RouteCapabilityObjet
POST /v1/desktops/:id/chatdesktop:chatEnvoie un message à l'agent IA du bureau et attend la réponse complète.

Exemple

curl https://www.spinestudio.dev/v1/desktops \
  -H "Authorization: Bearer sk_live_..."

Une requête sans header Authorization renvoie 401. Une requête avec une clé à laquelle manque la capability requise renvoie 403 avec required et held dans le corps.

Ce qui n'est pas encore exposé

L'API publique de cette version ne couvre pas la création ni la suppression de bureaux, la gestion de fichiers, les métriques de ressources, ni les flux temps réel (statut, activité, streaming de tokens chat). Gérez tout cela depuis le tableau de bord pour le moment. Une surface publique plus large est prévue mais sans date engagée.