Batch Trigger Workflow Runs
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/batch/trigger \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"destination": "<string>",
"body": "<string>",
"headers": {}
}
]
'import requests
url = "https://qstash-{region}.upstash.io/v2/batch/trigger"
payload = [
{
"destination": "<string>",
"body": "<string>",
"headers": {}
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([{destination: '<string>', body: JSON.stringify('<string>'), headers: {}}])
};
fetch('https://qstash-{region}.upstash.io/v2/batch/trigger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/batch/trigger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'destination' => '<string>',
'body' => '<string>',
'headers' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/batch/trigger"
payload := strings.NewReader("[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/batch/trigger")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/batch/trigger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]"
response = http.request(request)
puts response.read_body[
{
"workflowRunId": "<string>",
"workflowCreatedAt": 123,
"deduplicated": true
}
]{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Runs
Batch Trigger Workflow Runs
Start multiple workflow runs in a single request.
POST
/
v2
/
batch
/
trigger
Batch Trigger Workflow Runs
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/batch/trigger \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"destination": "<string>",
"body": "<string>",
"headers": {}
}
]
'import requests
url = "https://qstash-{region}.upstash.io/v2/batch/trigger"
payload = [
{
"destination": "<string>",
"body": "<string>",
"headers": {}
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([{destination: '<string>', body: JSON.stringify('<string>'), headers: {}}])
};
fetch('https://qstash-{region}.upstash.io/v2/batch/trigger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/batch/trigger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'destination' => '<string>',
'body' => '<string>',
'headers' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/batch/trigger"
payload := strings.NewReader("[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/batch/trigger")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/batch/trigger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"destination\": \"<string>\",\n \"body\": \"<string>\",\n \"headers\": {}\n }\n]"
response = http.request(request)
puts response.read_body[
{
"workflowRunId": "<string>",
"workflowCreatedAt": 123,
"deduplicated": true
}
]{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
bearerAuthbearerAuthQuery
QStash authentication token
Body
application/json
The URL of the workflow to trigger.
The raw request payload passed to the workflow endpoint as is. You can access it via request payload parameter on the context object.
HTTP headers to forward to the workflow. You can pass any headers supported in the single trigger API.
Show child attributes
Show child attributes
Response
Workflow runs triggered successfully
Was this page helpful?
⌘I