---
title: "Batch Trigger Workflow Runs"
method: POST
path: "/v2/batch/trigger"
tags: ["Runs"]
---

# Batch Trigger Workflow Runs

`POST /v2/batch/trigger`

## Request

- Base URL: `https://qstash-eu-central-1.upstash.io`
- URL: `https://qstash-eu-central-1.upstash.io/v2/batch/trigger`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `qstash_token`
- TypeScript: <https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/docs/v2/batch/trigger/post.ts> (a function with typed inputs; its response is checked against the schema)

Start multiple workflow runs in a single request.

## Request body

- object[]
  - `destination` string, required: The URL of the workflow to trigger.
  - `body` string: The raw request payload passed to the workflow endpoint as is. You can access it via request payload parameter on the context object.
  - `headers` object: HTTP headers to forward to the workflow. You can pass any headers supported in the single trigger API.

## Response `201`

Workflow runs triggered successfully

- object[]
  - `workflowRunId` string: The ID of the triggered workflow run.
  - `workflowCreatedAt` integer: The unix timestamp in milliseconds when the workflow run was created.
  - `deduplicated` boolean: Whether the workflow run was deduplicated (i.e. a run with the same ID already existed and a new one was not created).

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `500`: Internal Server Error

## Changes

- **2026-04-02** `87e9388e3977`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/changes/v2/batch/trigger/post.md)

---

[API](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api.md) - [All operations](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/revisions/251bee05a7ec?raw)
