curl --request POST \
--url https://agents.bigdata.com/v1/workflow/execute/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"template": "<string>",
"execution_id": "<string>",
"input": {},
"model_name": "base"
}
'import requests
url = "https://agents.bigdata.com/v1/workflow/execute/async"
payload = {
"template": "<string>",
"execution_id": "<string>",
"input": {},
"model_name": "base"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({template: '<string>', execution_id: '<string>', input: {}, model_name: 'base'})
};
fetch('https://agents.bigdata.com/v1/workflow/execute/async', 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://agents.bigdata.com/v1/workflow/execute/async",
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([
'template' => '<string>',
'execution_id' => '<string>',
'input' => [
],
'model_name' => 'base'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://agents.bigdata.com/v1/workflow/execute/async"
payload := strings.NewReader("{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://agents.bigdata.com/v1/workflow/execute/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://agents.bigdata.com/v1/workflow/execute/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}"
response = http.request(request)
puts response.read_body{
"execution_id": "<string>",
"status": "pending"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Submit Workflow
Submit a workflow that runs independently of your connection, and return immediately with its execution_id. Use this endpoint for production integrations: the run is unaffected if your client disconnects, and its result is always stored.
Poll GET /v1/workflow/executions/{execution_id} for status and the result, or attach to the event stream for live progress. To continue a run that stopped before it finished, pass its execution_id.
curl --request POST \
--url https://agents.bigdata.com/v1/workflow/execute/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"template": "<string>",
"execution_id": "<string>",
"input": {},
"model_name": "base"
}
'import requests
url = "https://agents.bigdata.com/v1/workflow/execute/async"
payload = {
"template": "<string>",
"execution_id": "<string>",
"input": {},
"model_name": "base"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({template: '<string>', execution_id: '<string>', input: {}, model_name: 'base'})
};
fetch('https://agents.bigdata.com/v1/workflow/execute/async', 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://agents.bigdata.com/v1/workflow/execute/async",
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([
'template' => '<string>',
'execution_id' => '<string>',
'input' => [
],
'model_name' => 'base'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://agents.bigdata.com/v1/workflow/execute/async"
payload := strings.NewReader("{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://agents.bigdata.com/v1/workflow/execute/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://agents.bigdata.com/v1/workflow/execute/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template\": \"<string>\",\n \"execution_id\": \"<string>\",\n \"input\": {},\n \"model_name\": \"base\"\n}"
response = http.request(request)
puts response.read_body{
"execution_id": "<string>",
"status": "pending"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
API key for authentication.
Body
Request to submit a workflow that runs independently of your connection.
Runs submitted this way are always stored, so persistence_mode is not
accepted here. Read the result with the execution retrieval endpoint, and
delete the run when you no longer need it.
Template ID (string) or inline template definition (object).
Provide the ID of a run that stopped before it finished — one you cancelled, or one that ended in an error — to continue it from where it stopped. A run that is still in progress, or that already completed, cannot be continued and returns 409.
Input values for template placeholders.
Show child attributes
Show child attributes
Selects the model capability tier. Use "base" for the default routing strategy, or "pro" to allow the most capable available model when higher reasoning or accuracy is required. Model selection is dynamic and may vary based on task type, availability, and failover.
base, pro Predefined rolling time windows for filtering data.
last_24_hours, last_7_days, last_30_days, last_60_days, last_90_days, last_180_days, last_365_days Response
The workflow was accepted and is now running.
Acknowledgement that a workflow was accepted and is now running.
Was this page helpful?