Register a robot body
create_bodyRegister a body you own (starts 'pending' until an operator approves it). You must declare how it is controlled: manifest.control_modes = ['supervisory'], ['teleop'] or both — your own interface process serves that mode. Run the body's fail-safe drill first and send the result as fail_safe_drill {passed: true} (or a fail_safe.verified_at from the last 90 days). Declare manifest.robot_type and manifest.capabilities so renters can find it. interface_mode is your own label ('simulated' or 'real'); either way your own process must connect /getbody/ws/bodies//interface to make it controllable.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | ||
| manifest | Yes | REQUIRED: control_modes — non-empty list of 'supervisory' and/or 'teleop'. Strongly encouraged, so renters and find_robot_for_task can find it: robot_type (humanoid, quadruped, wheeled, arm, drone or other) and capabilities (any of move, grip, see, hear_speak, other). Also e.g. model, dof, payload_kg, reach_m, sensors[]. | |
| fail_safe | Yes | mode, heartbeat_interval_ms, trigger_after_ms; verified_at if your last drill was in the last 90 days. | |
| declared_value | Yes | Decimal string. | |
| interface_mode | No | simulated | |
| fail_safe_drill | No | The fail-safe drill you just ran on this body: {passed, notes}. A passing one satisfies the recent-drill requirement for a new body. | |
| kill_interface_ref | No |