Start a workflow asynchronously
curl --request POST \
--url http://localhost:3001/workflow/start \
--header 'Content-Type: application/json' \
--data '
{
"workflowName": "<string>",
"input": "<unknown>",
"workflowId": "<string>",
"catalog": "<string>",
"taskQueue": "<string>",
"searchAttributes": {}
}
'import requests
url = "http://localhost:3001/workflow/start"
payload = {
"workflowName": "<string>",
"input": "<unknown>",
"workflowId": "<string>",
"catalog": "<string>",
"taskQueue": "<string>",
"searchAttributes": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
workflowName: '<string>',
input: '<unknown>',
workflowId: '<string>',
catalog: '<string>',
taskQueue: '<string>',
searchAttributes: {}
})
};
fetch('http://localhost:3001/workflow/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/workflow/start",
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([
'workflowName' => '<string>',
'input' => '<unknown>',
'workflowId' => '<string>',
'catalog' => '<string>',
'taskQueue' => '<string>',
'searchAttributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"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 := "http://localhost:3001/workflow/start"
payload := strings.NewReader("{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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("http://localhost:3001/workflow/start")
.header("Content-Type", "application/json")
.body("{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/workflow/start")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"workflowId": "<string>",
"runId": "<string>"
}{
"error": "ValidationError",
"message": "Invalid Payload",
"issues": [
{}
]
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}API Reference
Start a workflow asynchronously
POST
/
workflow
/
start
Start a workflow asynchronously
curl --request POST \
--url http://localhost:3001/workflow/start \
--header 'Content-Type: application/json' \
--data '
{
"workflowName": "<string>",
"input": "<unknown>",
"workflowId": "<string>",
"catalog": "<string>",
"taskQueue": "<string>",
"searchAttributes": {}
}
'import requests
url = "http://localhost:3001/workflow/start"
payload = {
"workflowName": "<string>",
"input": "<unknown>",
"workflowId": "<string>",
"catalog": "<string>",
"taskQueue": "<string>",
"searchAttributes": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
workflowName: '<string>',
input: '<unknown>',
workflowId: '<string>',
catalog: '<string>',
taskQueue: '<string>',
searchAttributes: {}
})
};
fetch('http://localhost:3001/workflow/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/workflow/start",
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([
'workflowName' => '<string>',
'input' => '<unknown>',
'workflowId' => '<string>',
'catalog' => '<string>',
'taskQueue' => '<string>',
'searchAttributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"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 := "http://localhost:3001/workflow/start"
payload := strings.NewReader("{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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("http://localhost:3001/workflow/start")
.header("Content-Type", "application/json")
.body("{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/workflow/start")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflowName\": \"<string>\",\n \"input\": \"<unknown>\",\n \"workflowId\": \"<string>\",\n \"catalog\": \"<string>\",\n \"taskQueue\": \"<string>\",\n \"searchAttributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"workflowId": "<string>",
"runId": "<string>"
}{
"error": "ValidationError",
"message": "Invalid Payload",
"issues": [
{}
]
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"workflowId": "<string>"
}Body
application/json
The name of the workflow to execute
The payload to send to the workflow
(Optional) The workflowId to use. Must be unique
The catalog (Temporal task queue) to route the execution to. Falls back to the default catalog.
Deprecated alias for catalog. If both are sent, catalog wins.
(Optional) Temporal search attributes to set on the execution. Each attribute must be registered on the namespace. Values are scalars (string, number, boolean) or string arrays (KeywordList). Unregistered names or values that do not match the registered type are rejected with 400.
Show child attributes
Show child attributes