# Source: https://upstash.com/docs/workflow/rest/dlq/bulk-restart.md

> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Restart Workflow Runs

> Restart multiple failed workflow runs in a single request.

The bulk restart feature allows you to restart multiple failed workflow runs from the Dead Letter Queue (DLQ), using their original payloads and configurations.

You can specify individual DLQ IDs or apply filters to identify the workflow runs you want to restart.

A maximum of 50 workflow runs can be restarted per request. If more runs are available, a cursor is returned, which can be used in subsequent requests to continue the operation. When no cursor is returned, all entries have been processed.

Each restarted workflow run is assigned a new random Run ID.

## Request Parameters

<ParamField query="dlqIds" type="array">
  A list of DLQ IDs corresponding to the failed workflow runs you want to restart.
</ParamField>

<ParamField query="fromDate" type="integer">
  Optional. Restart workflow runs that failed on or after this unix millisecond timestamp.
</ParamField>

<ParamField query="toDate" type="integer">
  Optional. Restart workflow runs that failed on or before this unix millisecond timestamp.
</ParamField>

<ParamField query="workflowUrl" type="string">
  Optional. Restart workflow runs where the workflow URL matches this value.
</ParamField>

<ParamField query="workflowRunId" type="string">
  Optional. Restart workflow runs matching this specific Run ID or ID prefix.
</ParamField>

<ParamField query="workflowCreatedAt" type="integer">
  Optional. Restart workflow runs created at the specified unix millisecond timestamp.
</ParamField>

<ParamField header="Upstash-Flow-Control-Key" type="string">
  Optional. Override the flow control key for the restarted workflows. If not provided, the original key is reused.
</ParamField>

<ParamField header="Upstash-Flow-Control-Value" type="string">
  Optional. Override the flow control value for the restarted workflows. If not provided, the original value is reused.
</ParamField>

<ParamField header="Upstash-Retries" type="integer">
  Optional. Override the retry configuration for the steps in the restarted workflows.
</ParamField>

## Response

<ResponseField name="cursor" type="string">
  A cursor to paginate through additional matching DLQ entries. If not present, there are no more entries to process.
</ResponseField>

<ResponseField name="workflowRuns" type="array">
  A list of resumed workflow runs, each containing a new run ID and creation timestamp.
</ResponseField>

## Request Example

<RequestExample>
  ```sh  theme={"system"}
  curl -X POST https://qstash.upstash.io/v2/workflows/dlq/restart \
    -H "Authorization: Bearer <token>" \
    -H "Upstash-Flow-Control-Key: custom-key" \
    -H "Upstash-Flow-Control-Value: parallelism=1" \
    -H "Upstash-Retries: 3" \
  ```
</RequestExample>

<ResponseExample>
  ```json  theme={"system"}
  {
    "cursor": "",
    "workflowRuns": [
      {
        "workflowRunId": "wfr_resumed_A",
        "workflowCreatedAt": 1748527971000
      },
      {
        "workflowRunId": "wfr_resumed_B",
        "workflowCreatedAt": 1748527971000
      }
    ]
  }
  ```
</ResponseExample>