Create a new Operation
Creates a new Dispatch operation to run a large fleet action, such as Converge, across a set of devices or groups in a single request.
Operations are built for scale — a single call can target device_ids directly or resolve a device_request query (for example matching on group_multi or state) into as many as tens of thousands of devices. The operation is queued immediately in the Created state and resolves asynchronously as Esper identifies the applicable devices and dispatches the command.
About Create Operation
Currently, operation_type supports CONVERGE and group-level app INSTALL and UNINSTALL, and INSTALL/UNINSTALL are immediate only. Unlike the Command Request API, which issues one command per device or group call, Operations are designed specifically for very large fleet actions and report a single aggregate status alongside individual per-device results. A created operation does not affect devices immediately; it queues the action, then resolves the target devices, then dispatches the command to each of them.
Key Fields / Request Body
operation_type — the action to run, currently CONVERGE, INSTALL, or UNINSTALL
schedule_type — IMMEDIATE to run right away or WINDOW to run within a scheduled window
operation_device_query — the device targeting payload; accepts a device_ids list or a device_request object with filters such as group_multi or state
arguments — operation-specific arguments, for example converge_with_provision for a Converge operation
Common Use Cases
Converging tens of thousands of devices onto an updated blueprint in a single request
Installing or uninstalling an app across every device in one or more groups
Re-driving a Converge operation for a targeted list of devices that failed a previous attempt
Best Practices
Batch very large device lists in operation_device_query rather than issuing many smaller operations, since Operations are built to scale to tens of thousands of devices per request
Capture the id returned in the response immediately, since it is required for every subsequent status check
Confirm devices are online and provisioned before including them in a Converge operation to avoid indefinite Dispatched or Processing states
Workflow
Determine the device_ids or device_request filters that define the target fleet
POST to this endpoint with the operation_type and operation_device_query
Capture the returned id as the Operation ID
Poll GET /v0/operations/{operationId}/ until the operation reaches Success or Failure
Request body
Response
Operation information for the Tenant