openapi: 3.1.0 info: title: LeRobot Arena AI Server summary: ACT Model Inference Server for Real-time Robot Control description: "\n ## LeRobot Arena AI Server\n\n This server provides\ \ **ACT (Action Chunking Transformer)** model inference for robotics applications.\n\ \ It uses the LeRobot Arena communication system with multiple rooms per\ \ session for:\n\n ### Core Features:\n - \U0001F3A5 **Multi-camera\ \ support**: Arbitrary number of camera streams with unique names\n - \U0001F916\ \ **Joint control**: Normalized joint value handling (-100 to +100 range)\n \ \ - \U0001F504 **Real-time inference**: Optimized for robotics control loops\n\ \ - \U0001F4CA **Session management**: Multiple concurrent inference sessions\n\ \ - \U0001F6E0️ **Debug endpoints**: Comprehensive monitoring and debugging\ \ tools\n\n ### Communication Architecture:\n 1. **Camera rooms**:\ \ Receives video streams from robot cameras (supports multiple cameras)\n \ \ 2. **Joint input room**: Receives current robot joint positions (**NORMALIZED\ \ VALUES**)\n 3. **Joint output room**: Sends predicted joint commands\ \ (**NORMALIZED VALUES**)\n\n ### Supported Cameras:\n Each camera\ \ stream has a unique name (e.g., \"front\", \"wrist\", \"overhead\") \n \ \ and all streams are synchronized for inference.\n\n ### Joint Value\ \ Convention:\n - All joint inputs/outputs use **NORMALIZED VALUES**\n\ \ - Range: -100 to +100 for most joints, 0 to 100 for gripper\n \ \ - Matches training data format exactly\n\n ### Getting Started:\n \ \ 1. Create a session with your trained ACT model\n 2. Connect your\ \ robot to the generated rooms\n 3. Start inference to begin real-time\ \ control\n " version: 1.0.0 contact: name: LeRobot Arena Team url: https://github.com/huggingface/lerobot license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html x-logo: url: https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.png altText: LeRobot Logo paths: /: get: tags: - Health summary: Root description: Health check endpoint. operationId: root__get responses: '200': description: Successful Response content: application/json: schema: {} /health: get: tags: - Health summary: Health Check description: Detailed health check. operationId: health_check_health_get responses: '200': description: Successful Response content: application/json: schema: {} /sessions: get: tags: - Sessions summary: List Sessions description: List all sessions. operationId: list_sessions_sessions_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/SessionStatusResponse' type: array title: Response List Sessions Sessions Get post: tags: - Sessions summary: Create Session description: 'Create a new inference session. If workspace_id is provided, all rooms will be created in that workspace. If workspace_id is not provided, a new workspace will be generated automatically. All rooms for a session (cameras + joints) are always created in the same workspace.' operationId: create_session_sessions_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSessionRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CreateSessionResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /sessions/{session_id}: get: tags: - Sessions summary: Get Session Status description: Get status of a specific session. operationId: get_session_status_sessions__session_id__get parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SessionStatusResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Sessions summary: Delete Session description: Delete a session. operationId: delete_session_sessions__session_id__delete parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /sessions/{session_id}/start: post: tags: - Control summary: Start Inference description: Start inference for a session. operationId: start_inference_sessions__session_id__start_post parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /sessions/{session_id}/stop: post: tags: - Control summary: Stop Inference description: Stop inference for a session. operationId: stop_inference_sessions__session_id__stop_post parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /sessions/{session_id}/restart: post: tags: - Control summary: Restart Inference description: Restart inference for a session. operationId: restart_inference_sessions__session_id__restart_post parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /debug/system: get: tags: - Debug summary: Get System Info description: Get system information for debugging. operationId: get_system_info_debug_system_get responses: '200': description: Successful Response content: application/json: schema: {} /debug/logs: get: tags: - Debug summary: Get Recent Logs description: Get recent log entries for debugging. operationId: get_recent_logs_debug_logs_get responses: '200': description: Successful Response content: application/json: schema: {} /debug/sessions/{session_id}/reset: post: tags: - Debug summary: Debug Reset Session description: Reset a session's internal state for debugging. operationId: debug_reset_session_debug_sessions__session_id__reset_post parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /debug/sessions/{session_id}/queue: get: tags: - Debug summary: Get Session Queue Info description: Get detailed information about a session's action queue. operationId: get_session_queue_info_debug_sessions__session_id__queue_get parameters: - name: session_id in: path required: true schema: type: string title: Session Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: CreateSessionRequest: properties: session_id: type: string title: Session Id policy_path: type: string title: Policy Path camera_names: items: type: string type: array title: Camera Names default: - front arena_server_url: type: string title: Arena Server Url default: http://localhost:8000 workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id type: object required: - session_id - policy_path title: CreateSessionRequest CreateSessionResponse: properties: workspace_id: type: string title: Workspace Id camera_room_ids: additionalProperties: type: string type: object title: Camera Room Ids joint_input_room_id: type: string title: Joint Input Room Id joint_output_room_id: type: string title: Joint Output Room Id type: object required: - workspace_id - camera_room_ids - joint_input_room_id - joint_output_room_id title: CreateSessionResponse HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError SessionStatusResponse: properties: session_id: type: string title: Session Id status: type: string title: Status policy_path: type: string title: Policy Path camera_names: items: type: string type: array title: Camera Names workspace_id: type: string title: Workspace Id rooms: additionalProperties: true type: object title: Rooms stats: additionalProperties: true type: object title: Stats inference_stats: anyOf: - additionalProperties: true type: object - type: 'null' title: Inference Stats error_message: anyOf: - type: string - type: 'null' title: Error Message type: object required: - session_id - status - policy_path - camera_names - workspace_id - rooms - stats title: SessionStatusResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT ApiKeyAuth: type: apiKey in: header name: X-API-Key servers: - url: http://localhost:8001 description: Development server - url: https://your-production-server.com description: Production server tags: - name: Health description: Health check and server status endpoints - name: Sessions description: Inference session management - create, control, and monitor AI sessions - name: Control description: Session control operations - start, stop, restart inference - name: Debug description: Debug and monitoring endpoints for system diagnostics