{
  "schema_version": 2,
  "id": "operate/rs/references/rest-api/objects/action",
  "title": "Action object",
  "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/objects/action/",
  "summary": "An object that represents cluster actions",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-02-09T09:23:00-06:00",
  "page_type": "content",
  "content_hash": "13169b47042290ec42b1494e54e8a444e3d68e57f7be60cf66eaae73f4cef914",
  "sections": [
    {
      "id": "content",
      "title": "Content",
      "role": "content",
      "text": "The cluster allows you to invoke general maintenance actions such as rebalancing or taking a node offline by moving all of its entities to other nodes.\n\nActions are implemented as tasks in the cluster. Every task has a unique `task_id` assigned by the cluster, a task name which describes the task, a status, and additional task-specific parameters.\n\nThe REST API provides a simplified interface that allows callers to invoke actions and query their status without a specific `task_id`.\n\nThe action lifecycle is based on the following status and status transitions:\n\n[code example]\n\n| Name | Type/Value | Description |\n|------|------------|-------------|\n| progress        | float <nobr>(range: 0-100)</nobr> | Represents percent completed (As of v7.4.2, the return value type changed to 'float' to provide improved progress indication) |\n| status          | queued | Requested operation and added it to the queue to await processing |\n|                 | starting | Picked up operation from the queue and started processing |\n|                 | running | Currently executing operation |\n|                 | cancelling | Operation cancellation is in progress |\n|                 | cancelled | Operation cancelled |\n|                 | aborted | Operation aborted |\n|                 | completed | Operation completed |\n|                 | failed | Operation failed |\n\nWhen a task fails, the `error_code` and `error_message` fields describe the error.\n\nPossible `error_code` values:\n\n Code                    | Description                                    |\n|-------------------------|------------------------------------------------|\n| internal_error          | An internal error that cannot be mapped to a more precise error code\n| insufficient_resources  | The cluster does not have sufficient resources to complete the required operation"
    }
  ],
  "examples": [
    {
      "id": "content-ex0",
      "language": "mermaid",
      "code": "stateDiagram-v2\n    queued --> starting\n    queued --> cancelled\n    starting --> running\n    starting --> aborted\n    running --> completed\n    running --> cancelling\n    running --> failed\n    running --> aborted\n    cancelling --> cancelled",
      "section_id": "content"
    }
  ]
}
