List the batches a trigger spawned
curl --request GET \
--url https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches', 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://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"completed_at": "2026-07-09T18:00:05Z",
"created_at": "2026-07-09T17:59:59Z",
"definition_id": "def_a1b2c3d4",
"id": "batch_55667788",
"metadata": {
"campaign": "spring-2026"
},
"org_id": "org_a1b2c3d4",
"record_count": 2,
"started_at": "2026-07-09T18:00:00Z",
"status": "completed",
"trigger_id": "trigger_44556677",
"trigger_type": "api_call",
"updated_at": "2026-07-09T18:00:05Z"
}
],
"limit": 123,
"skip": 123,
"total": 123,
"next_cursor": "<string>"
}{
"detail": "Invalid cursor"
}{
"detail": "Authentication required"
}{
"detail": "Trigger not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Triggers
List the batches a trigger spawned
List the Batches produced by a single Trigger — the “everything this trigger spawned” audit drilldown, newest first, with opaque cursor pagination. One trigger maps to one batch today, and the endpoint is shaped to stay correct if that becomes one-to-many. Parent-Trigger ownership is verified first — an unknown or cross-tenant trigger returns 404. total is always null on this endpoint.
GET
/
flows
/
triggers
/
{trigger_id}
/
batches
List the batches a trigger spawned
curl --request GET \
--url https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches', 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://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/flows/triggers/{trigger_id}/batches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"completed_at": "2026-07-09T18:00:05Z",
"created_at": "2026-07-09T17:59:59Z",
"definition_id": "def_a1b2c3d4",
"id": "batch_55667788",
"metadata": {
"campaign": "spring-2026"
},
"org_id": "org_a1b2c3d4",
"record_count": 2,
"started_at": "2026-07-09T18:00:00Z",
"status": "completed",
"trigger_id": "trigger_44556677",
"trigger_type": "api_call",
"updated_at": "2026-07-09T18:00:05Z"
}
],
"limit": 123,
"skip": 123,
"total": 123,
"next_cursor": "<string>"
}{
"detail": "Invalid cursor"
}{
"detail": "Authentication required"
}{
"detail": "Trigger not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Authorizations
APIKeyHeaderHTTPBearer