Quick start
Start an engine; its REST API is served at http://localhost:8080/engine-rest after a few seconds:
sh
docker run -d --name engine -p 8080:8080 operaton/operaton:2.1.5
# or camunda/camunda-bpm-platform:run-7.24.0, or cibseven/cibseven:run-2.2.0Check the connection. http://localhost:8080/engine-rest is the default, so no configuration is needed:
sh
operate ping --prettyjson
{
"url": "http://localhost:8080/engine-rest",
"engine": null,
"reachable": true,
"version": "2.1.5",
"engines": ["default"],
"latencyMs": 21,
"auth": "none"
}Create a small process with one user task:
sh
cat > order.bpmn <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:camunda="http://camunda.org/schema/1.0/bpmn" targetNamespace="https://example.com/order">
<bpmn:process id="order" name="Order" isExecutable="true" camunda:historyTimeToLive="30">
<bpmn:startEvent id="received" />
<bpmn:sequenceFlow id="f1" sourceRef="received" targetRef="review" />
<bpmn:userTask id="review" name="Review order" camunda:candidateGroups="sales" />
<bpmn:sequenceFlow id="f2" sourceRef="review" targetRef="done" />
<bpmn:endEvent id="done" />
</bpmn:process>
</bpmn:definitions>
EOFDeploy it, start an instance, and work on the task:
sh
operate deployment create order.bpmn --deployment-name order
operate process-definition start order --business-key ORD-1001 --var amount=250
operate task list --process-definition-key order --fields id,name,created -o tabletext
id name created
4e3d858c-c35f-11f1-80fb-aa0e0285a34c Review order 2026-10-08T21:29:12.716+0000sh
TASK_ID=$(operate task list --process-definition-key order --fields id | jq -r '.[0].id')
operate task complete "$TASK_ID" --var approved=truetext
Done: POST /task/4e3d858c-c35f-11f1-80fb-aa0e0285a34c/complete → 204 No Contentsh
operate historic-process-instance list --process-definition-key order --finished --fields id,businessKey,state -o tabletext
id businessKey state
4e3d5e77-c35f-11f1-80fb-aa0e0285a34c ORD-1001 COMPLETEDWhere next: operate commands lists the API groups, operate describe <group> <command> explains a command and operate guide prints the usage guide.