Get information about all currently running reindex tasks Generally available; Added in 9.5.0

GET /_reindex

Reindex tasks that are mid-relocation between nodes are reported once, under their original task ID, so callers do not see duplicates across the relocation chain.

If the API returns a HTTP status of 200 OK, but node_failures or task_failures are non-empty in the body, the listing is not a complete authoritative listing and may be missing tasks.

Query parameters

  • detailed boolean

    If true, include detailed task status information in the response.

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • reindex array[object] Required

      The list of currently running reindex tasks.

      Hide reindex attributes Show reindex attributes object

      Information about a single parent reindex task, as returned by the reindex management APIs.

      • id string Required

        The ID of the reindex task. The ID is assigned when the task was first created and remains the same across graceful shutdown relocations.

      • description string

        A sanitized description of the reindex operation (source and destination indices, and optionally remote host info).

      • start_time_in_millis number

        Time unit for milliseconds

      • start_time string

        The time at which the reindex task started, as an ISO-8601 formatted string. Remains the same across graceful shutdown relocations. Only present when the request includes the ?human=true query parameter.

      • running_time string

        The elapsed running time of the reindex task, including relocations, in a human-readable format. Only present when the request includes the ?human=true query parameter.

        External documentation
      • running_time_in_nanos number

        Time unit for nanoseconds

      • cancelled boolean Required

        Whether the reindex task has been cancelled.

      • status object

        The current progress of the reindex operation.

        Hide status attributes Show status attributes object
        • slice_id number

          The slice ID

        • batches number Required

          The number of scroll responses pulled back by the reindex.

        • created number

          The number of documents that were successfully created.

        • deleted number Required

          The number of documents that were successfully deleted.

        • noops number Required

          The number of documents that were ignored because the script used for the reindex returned a noop value for ctx.op.

        • requests_per_second number Required

          The number of requests per second effectively executed during the reindex.

        • retries object Required

          The number of retries attempted by reindex. bulk is the number of bulk actions retried and search is the number of search actions retried.

        • throttled string

          A duration. Units can be nanos, micros, ms (milliseconds), s (seconds), m (minutes), h (hours) and d (days). Also accepts "0" without a unit and "-1" to indicate an unspecified value.

        • throttled_until string

          A duration. Units can be nanos, micros, ms (milliseconds), s (seconds), m (minutes), h (hours) and d (days). Also accepts "0" without a unit and "-1" to indicate an unspecified value.

        • total number Required

          The number of documents that were successfully processed.

        • updated number

          The number of documents that were successfully updated, for example, a document with same ID already existed prior to reindex updating it.

        • version_conflicts number Required

          The number of version conflicts that reindex hits.

        • cancelled string

          The reason for cancellation if the slice was canceled

    • task_failures array[object]

      Per-task failures encountered while listing reindex tasks. Tasks that failed are not included in the reindex array.

      Hide task_failures attributes Show task_failures attributes object
      • task_id number Required
      • node_id string Required
      • status string Required
      • reason object Required

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

        Hide reason attributes Show reason attributes object
        • type string Required

          The type of error

        • reason string | null

          A human-readable explanation of the error, in English.

        • stack_trace string

          The server stack trace. Present only if the error_trace=true parameter was sent with the request.

        • caused_by object

          Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

        • root_cause array[object]

          Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

          Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

        • suppressed array[object]

          Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

          Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

    • node_failures array[object]

      Node-level failures encountered while listing reindex tasks. Typically populated when a node disconnects or stops responding mid-request, reindex tasks running on such nodes will be missing from the reindex array for the duration of the disruption.

      Hide node_failures attributes Show node_failures attributes object

      Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

      • type string Required

        The type of error

      • reason string | null

        A human-readable explanation of the error, in English.

      • stack_trace string

        The server stack trace. Present only if the error_trace=true parameter was sent with the request.

      • caused_by object

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

      • root_cause array[object]

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

      • suppressed array[object]

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

        Cause and details about a request failure. This class defines the properties common to all error types. Additional details are also provided, that depend on the error type.

GET /_reindex
GET _reindex
resp = client.list_reindex()
const response = await client.listReindex();
response = client.list_reindex
$resp = $client->listReindex();
curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_reindex"
Response examples (200)
A successful response from `GET _reindex` listing a single currently running reindex task.
{
  "reindex": [
    {
      "id": "r1A2WoRbTwKZ516z6NEs5A:36619",
      "start_time_in_millis": 1762190000000,
      "running_time_in_nanos": 4200000000,
      "cancelled": false
    }
  ]
}
A successful response from `GET _reindex?detailed=true&human=true`, including the per-task `status` block.
{
  "reindex": [
    {
      "id": "r1A2WoRbTwKZ516z6NEs5A:36619",
      "description": "reindex from [my-source-index] to [my-dest-index]",
      "start_time_in_millis": 1762190000000,
      "start_time": "2025-11-03T17:13:20.000Z",
      "running_time_in_nanos": 4200000000,
      "running_time": "4.2s",
      "cancelled": false,
      "status": {
        "batches": 4,
        "deleted": 0,
        "noops": 0,
        "requests_per_second": -1.0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled_millis": 0,
        "throttled_until_millis": 0,
        "total": 11500,
        "updated": 0,
        "version_conflicts": 0,
        "created": 4000
      }
    }
  ]
}
`GET _reindex` always returns `200 OK`. If a node stops responding during the listing call, `node_failures` may be populated and tasks that were running on that node can be missing from `reindex` for that response. You may retry.
{
  "reindex": [
    {
      "id": "r1A2WoRbTwKZ516z6NEs5A:36619",
      "start_time_in_millis": 1762190000000,
      "running_time_in_nanos": 4200000000,
      "cancelled": false
    }
  ],
  "node_failures": [
    {
      "type": "failed_node_exception",
      "reason": "Failed node [xNqz7mM2RkqY8vP1nL0wQ]",
      "node_id": "xNqz7mM2RkqY8vP1nL0wQ",
      "caused_by": {
        "type": "node_not_connected_exception",
        "reason": "Node not connected",
        "node_id": "xNqz7mM2RkqY8vP1nL0wQ"
      }
    }
  ]
}