# REST API Reference

> Interactive reference for the Wandelbots NOVA REST API. Browse endpoints and view request and response schemas.

# REST API Reference

This page renders an interactive API reference on the website.

The full API spec is available as a YAML file: /specs/nova/26.7/openapi.yaml

### System

Endpoints for system-level operations, configuration, and status.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/system/update` | Check update |
| **PUT** | `/system/update` | Update Wandelbots NOVA version |
| **GET** | `/system/version` | Wandelbots NOVA Version |
| **GET** | `/system/status` | Wandelbots NOVA status |
| **GET** | `/system/diagnosis-package/zip` | Download Diagnosis Package |
| **GET** | `/experimental/system/network/status` | Network State |
| **GET** | `/system/network/interfaces` | Network Interfaces |
| **GET** | `/system/network/arp-scan` | Get ARP-Scan |
| **GET** | `/system/configuration/resources` | List Configuration Resources |
| **GET** | `/system/configuration` | Retrieve Configuration Backup |
| **POST** | `/system/configuration` | Restore Configuration Backup |
| **GET** | `/system/configuration/status` | Retrieve Backup Status |

### Cell

API for managing and monitoring individual robot cells.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells` | List Cells |
| **POST** | `/cells` | Add Cell |
| **GET** | `/cells/{cell}` | Configuration |
| **PUT** | `/cells/{cell}` | Update Configuration |
| **DELETE** | `/cells/{cell}` | Delete Cell |
| **GET** | `/cells/{cell}/status` | Service Status |
| **PUT** | `/cells/{cell}/status` | Operating State |
| **GET** | `/cells/{cell}/update` | Check Cell Update |
| **PUT** | `/cells/{cell}/update` | Update Cell Version |

### Controller

Operations related to robot controllers within a cell.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers` | List Robot Controllers |
| **POST** | `/cells/{cell}/controllers` | Add Robot Controller |
| **DELETE** | `/cells/{cell}/controllers` | Clear Robot Controllers |
| **GET** | `/cells/{cell}/controllers/{controller}` | Robot Controller |
| **PUT** | `/cells/{cell}/controllers/{controller}` | Update Robot Controller |
| **DELETE** | `/cells/{cell}/controllers/{controller}` | Delete Robot Controller |
| **GET** | `/cells/{cell}/controllers/{controller}/description` | Description |
| **GET** | `/cells/{cell}/controllers/{controller}/free-drive-stream` | Stream Free Drive |
| **PUT** | `/cells/{cell}/controllers/{controller}/mode` | Set Default Mode |
| **GET** | `/cells/{cell}/controllers/{controller}/state` | State |
| **GET** | `/cells/{cell}/controllers/{controller}/state-stream` | Stream State |
| **GET** | `/cells/{cell}/controllers/{controller}/virtual-robot-configuration` | Virtual Controller Configuration |
| **GET** | `/cells/{cell}/controllers/{controller}/coordinate-systems` | List Coordinate Systems |
| **GET** | `/cells/{cell}/controllers/{controller}/coordinate-systems/{coordinate-system}` | Coordinate System |

### Controller Inputs/Outputs

Access and manage controller I/O interfaces and data.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers/{controller}/ios/description` | List Descriptions |
| **GET** | `/cells/{cell}/controllers/{controller}/ios/stream` | Stream Input/Output Values |
| **GET** | `/cells/{cell}/controllers/{controller}/ios/values` | Get Input/Output Values |
| **PUT** | `/cells/{cell}/controllers/{controller}/ios/values` | Set Output Values |
| **POST** | `/cells/{cell}/controllers/{controller}/ios/wait-for` | Wait For |

### BUS Inputs/Outputs

Endpoints for bus-based I/O communication and management.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/bus-ios` | Get Service |
| **POST** | `/cells/{cell}/bus-ios` | Add Service |
| **DELETE** | `/cells/{cell}/bus-ios` | Clear Service |
| **GET** | `/cells/{cell}/bus-ios/ios/description` | List Descriptions |
| **GET** | `/cells/{cell}/bus-ios/state` | State |
| **GET** | `/cells/{cell}/bus-ios/ios/values` | Get Input/Output Values |
| **PUT** | `/cells/{cell}/bus-ios/ios/values` | Set Output Values |
| **GET** | `/cells/{cell}/bus-ios/profinet/description` | Get PROFINET Description |
| **GET** | `/cells/{cell}/bus-ios/profinet/ios` | List PROFINET Input/Output Configuration |
| **DELETE** | `/cells/{cell}/bus-ios/profinet/ios` | Remove all PROFINET Input/Outputs |
| **PUT** | `/cells/{cell}/bus-ios/profinet/ios/{io}` | Add PROFINET Input/Output |
| **DELETE** | `/cells/{cell}/bus-ios/profinet/ios/{io}` | Remove PROFINET Input/Ouptut |
| **GET** | `/cells/{cell}/bus-ios/profinet/iofile` | PROFINET Inputs/Outputs to File |
| **PUT** | `/cells/{cell}/bus-ios/profinet/iofile` | Set PROFINET Inputs/Outputs from File |
| **GET** | `/cells/{cell}/bus-ios/profinet/gsdml` | Get PROFINET GSDML File |
| **GET** | `/cells/{cell}/bus-ios/modbus/ios` | List MODBUS Input/Output Configuration |
| **DELETE** | `/cells/{cell}/bus-ios/modbus/ios` | Remove all MODBUS Input/Outputs |
| **PUT** | `/cells/{cell}/bus-ios/modbus/ios/{io}` | Add MODBUS Input/Output |
| **DELETE** | `/cells/{cell}/bus-ios/modbus/ios/{io}` | Remove MODBUS Input/Output |
| **GET** | `/cells/{cell}/bus-ios/snap7/ios` | List Snap7 Input/Output Configuration |
| **DELETE** | `/cells/{cell}/bus-ios/snap7/ios` | Remove all Snap7 Input/Outputs |
| **PUT** | `/cells/{cell}/bus-ios/snap7/ios/{io}` | Add Snap7 Input/Output |
| **DELETE** | `/cells/{cell}/bus-ios/snap7/ios/{io}` | Remove Snap7 Input/Output |

### Motion Group

Manage and monitor robot motion groups and their states.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers/{controller}/motion-groups/{motion-group}/description` | Description |
| **GET** | `/cells/{cell}/controllers/{controller}/motion-groups/{motion-group}/state` | State |
| **GET** | `/cells/{cell}/controllers/{controller}/motion-groups/{motion-group}/state-stream` | Stream State |

### Motion Group Models

Access models describing robot motion groups and their properties.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/motion-group-models` | Motion Group Models |
| **POST** | `/motion-group-models` | Import Motion Group Model |
| **GET** | `/experimental/motion-group-models/catalog` | Motion Group Model Catalog |
| **GET** | `/motion-group-models/{motion-group-model}/configuration` | Get Configuration for Motion Group |
| **GET** | `/motion-group-models/{motion-group-model}/collision` | Get Collision Model |
| **GET** | `/motion-group-models/{motion-group-model}/glb` | Download GLB Model |
| **GET** | `/motion-group-models/{motion-group-model}/usd` | Download USD Model |
| **GET** | `/motion-group-models/{motion-group-model}/kinematic` | Get Kinematics |
| **GET** | `/experimental/motion-group-models/{motion-group-model}/archive` | Export Motion Group Model |
| **POST** | `/experimental/motion-group-models/{motion-group-model}/archive` | Copy Motion Group Model |
| **DELETE** | `/experimental/motion-group-models/{motion-group-model}/archive` | Delete Motion Group Model |
| **GET** | `/experimental/motion-group-models/{motion-group-model}/homejoints` | Get Homejoints |
| **GET** | `/experimental/motion-group-models/{motion-group-model}/dynamic` | Get Dynamics |
| **GET** | `/experimental/motion-group-models/{motion-group-model}/limit` | Get Limits |

### Kinematics

Endpoints for robot kinematic calculations and queries.

| Method | Path | Summary |
| - | - | - |
| **POST** | `/cells/{cell}/kinematic/inverse` | Inverse kinematics |
| **POST** | `/experimental/cells/{cell}/kinematic/configured-pose-inverse` | Inverse kinematics configured pose |
| **POST** | `/experimental/cells/{cell}/kinematic/convert-vendor-configured-pose` | Convert vendor-configured pose |
| **POST** | `/cells/{cell}/kinematic/forward` | Forward kinematics |
| **POST** | `/experimental/cells/{cell}/kinematic/get-kinematic-configuration` | Get kinematic configuration |
| **POST** | `/experimental/cells/{cell}/kinematic/project-joint-position-direction-constraint` | Project joint position to direction constraint |

### Trajectory Planning

Plan and validate robot movement trajectories.

| Method | Path | Summary |
| - | - | - |
| **POST** | `/cells/{cell}/trajectory-planning/plan-trajectory` | Plan Trajectory |
| **POST** | `/cells/{cell}/trajectory-planning/plan-collision-free` | Plan Collision-Free Trajectory |
| **POST** | `/experimental/cells/{cell}/trajectory-planning/search-collision-free-multi-motion-group` | Search Collision-Free Trajectories for Multiple Motion Groups |
| **POST** | `/experimental/cells/{cell}/trajectory-planning/optimize-motion-commands` | Optimize Motion Commands |
| **POST** | `/experimental/cells/{cell}/trajectory-planning/merge-trajectories` | Merge Trajectories |
| **PUT** | `/experimental/cells/{cell}/trajectory-planning/rerun-logging` | Configure Rerun Logging |

### Trajectory Execution

Execute and monitor robot trajectory operations.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers/{controller}/execution/trajectory` | Execute Trajectory |

### Trajectory Caching

Manage cached robot trajectories for faster execution.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers/{controller}/trajectories` | List Trajectories |
| **POST** | `/cells/{cell}/controllers/{controller}/trajectories` | Add Trajectory |
| **DELETE** | `/cells/{cell}/controllers/{controller}/trajectories` | Clear Trajectories |
| **GET** | `/cells/{cell}/controllers/{controller}/trajectories/{trajectory}` | Get Trajectory |
| **DELETE** | `/cells/{cell}/controllers/{controller}/trajectories/{trajectory}` | Delete Trajectory |

### Jogging

Endpoints for manual or incremental robot movement (jogging).

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/controllers/{controller}/execution/jogging` | Execute Jogging |

### Program

Manage and execute robot programs and workflows.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/experimental/cells/{cell}/programs` | List programs |
| **GET** | `/experimental/cells/{cell}/programs/{program}` | Get program |
| **POST** | `/experimental/cells/{cell}/programs/{program}/start` | Start the program |
| **POST** | `/experimental/cells/{cell}/programs/{program}/stop` | Stop program run |

### Virtual Controller

Simulate and interact with virtual robot controllers.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups` | Motion Group Description |
| **POST** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups` | Add Motion Group |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/safety-zones` | List Safety Zones |
| **POST** | `/cells/{cell}/virtual-controllers/{controller}/safety-zones` | Add Safety Zone |
| **DELETE** | `/cells/{cell}/virtual-controllers/{controller}/safety-zones/{id}` | Delete Safety Zone |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/state` | Get Motion Group State |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/state` | Set Motion Group State |
| **DELETE** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}` | Delete Motion Group |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/coordinate-systems` | List Coordinate Systems |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/coordinate-systems/{coordinate-system}` | Add Coordinate Systems |
| **DELETE** | `/cells/{cell}/virtual-controllers/{controller}/coordinate-systems/{coordinate-system}` | Delete Coordinate System |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/mounting` | Get Mounting |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/mounting` | Set Mounting |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps` | List TCPs |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps/{tcp}` | Add TCP |
| **DELETE** | `/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps/{tcp}` | Remove TCP |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/emergency-stop` | Get Emergency Stop State |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/emergency-stop` | Push or Release Emergency Stop |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/operationmode` | Get Operation Mode |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/operationmode` | Set Operation Mode |

### Virtual Controller Inputs/Outputs

Access I/O data for virtual robot controllers.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/ios/values` | Get Input/Output Values |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/ios/values` | Set Input/Ouput Values |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/ios/description` | List Descriptions |

### Virtual Controller Behavior

Configure and monitor virtual controller behaviors.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/cycle-time` | Get Cycle Time |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/behavior` | Get Behavior |
| **PUT** | `/cells/{cell}/virtual-controllers/{controller}/behavior` | Set Behavior |
| **GET** | `/cells/{cell}/virtual-controllers/{controller}/external-joints-stream` | Stream Joint Configuration |

### Application

Endpoints for managing robot applications and their lifecycle.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/apps` | List Applications |
| **POST** | `/cells/{cell}/apps` | Add Application |
| **DELETE** | `/cells/{cell}/apps` | Clear Applications |
| **GET** | `/cells/{cell}/apps/{app}` | Configuration |
| **PUT** | `/cells/{cell}/apps/{app}` | Update Configuration |
| **DELETE** | `/cells/{cell}/apps/{app}` | Delete Application |

### Store Object

Access and manage individual objects in the robot store.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/store/objects` | List all Object Keys |
| **DELETE** | `/cells/{cell}/store/objects` | Clear all Objects |
| **GET** | `/cells/{cell}/store/objects/{key}` | Get Object |
| **PUT** | `/cells/{cell}/store/objects/{key}` | Store Object |
| **DELETE** | `/cells/{cell}/store/objects/{key}` | Delete Object |
| **HEAD** | `/cells/{cell}/store/objects/{key}` | Get Object Metadata |

### Store Collision Components

Manage collision components used for robot safety and planning.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/store/collision/colliders` | List Colliders |
| **GET** | `/cells/{cell}/store/collision/colliders-keys` | List Collider Keys |
| **GET** | `/cells/{cell}/store/collision/colliders/{collider}` | Get Collider |
| **PUT** | `/cells/{cell}/store/collision/colliders/{collider}` | Store Collider |
| **DELETE** | `/cells/{cell}/store/collision/colliders/{collider}` | Delete Collider |
| **GET** | `/cells/{cell}/store/collision/link-chains` | List Link Chains |
| **GET** | `/cells/{cell}/store/collision/link-chains-keys` | List Link Chain Keys |
| **GET** | `/cells/{cell}/store/collision/link-chains/{link-chain}` | Get Link Chain |
| **PUT** | `/cells/{cell}/store/collision/link-chains/{link-chain}` | Store Link Chain |
| **DELETE** | `/cells/{cell}/store/collision/link-chains/{link-chain}` | Delete Link Chain |
| **GET** | `/cells/{cell}/store/collision/tools` | List Tools |
| **GET** | `/cells/{cell}/store/collision/tools-keys` | List Tool Keys |
| **GET** | `/cells/{cell}/store/collision/tools/{tool}` | Get Tool |
| **PUT** | `/cells/{cell}/store/collision/tools/{tool}` | Store Tool |
| **DELETE** | `/cells/{cell}/store/collision/tools/{tool}` | Delete Tool |

### Store Collision Setups

Configure and manage collision setups for robot operations.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/cells/{cell}/store/collision/setups` | List Collision Setups |
| **GET** | `/cells/{cell}/store/collision/setups-keys` | List Collision Setup Keys |
| **GET** | `/cells/{cell}/store/collision/setups/{setup}` | Get Collision Setup |
| **PUT** | `/cells/{cell}/store/collision/setups/{setup}` | Store Collision Setup |
| **DELETE** | `/cells/{cell}/store/collision/setups/{setup}` | Delete Collision Setup |

### License

Endpoints for license management and activation.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/license` | Get license |
| **POST** | `/license` | Activate license |
| **DELETE** | `/license` | Deactivate license |
| **GET** | `/license/status` | Get license status |

### Version

Retrieve the current version of the NOVA API.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/version` | API Version |

### Session

Endpoints for retrieving authenticated user session information.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/session` | Get current user session information |

### Datasets

Endpoints for managing datasets, poses, and command routines.

| Method | Path | Summary |
| - | - | - |
| **GET** | `/experimental/cells/{cell}/datasets` | List Datasets |
| **POST** | `/experimental/cells/{cell}/datasets` | Create Dataset |
| **GET** | `/experimental/cells/{cell}/datasets/{dataset}` | Get Dataset |
| **DELETE** | `/experimental/cells/{cell}/datasets/{dataset}` | Delete Dataset |
| **POST** | `/experimental/cells/{cell}/datasets/{dataset}/frames/{frame}/resolve` | Resolve Poses to World (Dataset) |
| **POST** | `/experimental/cells/{cell}/datasets/{dataset}/frames/{frame}/localize` | Localize Poses from World (Dataset) |

### Robot Configurations

| Method | Path | Summary |
| - | - | - |
| **GET** | `/robot-configurations` | List Robot Configurations |
| **POST** | `/experimental/system/network/controllers` | Robot Controller Configurations |

### Action Chunk Streaming

| Method | Path | Summary |
| - | - | - |
| **GET** | `/experimental/cells/{cell}/controllers/{controller}/execution/action-chunk-streaming` | Execute Action Chunks |

### NOVA Cloud

| Method | Path | Summary |
| - | - | - |
| **POST** | `/experimental/cloud/connect` | Connect to NOVA Cloud |
| **GET** | `/experimental/cloud/config` | Get Connection Config |
| **DELETE** | `/experimental/cloud/config` | Disconnect from NOVA Cloud |
| **GET** | `/experimental/cloud/status` | Get Connection Status |
