curl --request POST \
--url https://control-plane.kubiya.ai/api/v1/executions/batch/terminate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"execution_ids": [
"<string>"
],
"reason": "<string>"
}
'import requests
url = "https://control-plane.kubiya.ai/api/v1/executions/batch/terminate"
payload = {
"execution_ids": ["<string>"],
"reason": "<string>"
}
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({execution_ids: ['<string>'], reason: '<string>'})
};
fetch('https://control-plane.kubiya.ai/api/v1/executions/batch/terminate', 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://control-plane.kubiya.ai/api/v1/executions/batch/terminate",
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([
'execution_ids' => [
'<string>'
],
'reason' => '<string>'
]),
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://control-plane.kubiya.ai/api/v1/executions/batch/terminate"
payload := strings.NewReader("{\n \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\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://control-plane.kubiya.ai/api/v1/executions/batch/terminate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://control-plane.kubiya.ai/api/v1/executions/batch/terminate")
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 \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"total_requested": 123,
"total_succeeded": 123,
"total_failed": 123,
"results": [
{
"execution_id": "<string>",
"success": true,
"workflow_id": "<string>",
"error": "<string>",
"terminated_at": "2023-11-07T05:31:56Z"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Batch Terminate Executions
Terminate multiple executions in a single request.
This endpoint allows terminating multiple running executions at once. Each execution is processed independently, so some may succeed while others fail.
Args: request: FastAPI request object (contains kubiya_token in state) batch_request: Request body with list of execution IDs and termination reason organization: Current organization from auth db: Database session
Returns: BatchTerminateResponse with results for each execution
Note:
- Maximum 100 executions per request
- Each execution is terminated independently
- Failed terminations don’t affect other executions in the batch
curl --request POST \
--url https://control-plane.kubiya.ai/api/v1/executions/batch/terminate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"execution_ids": [
"<string>"
],
"reason": "<string>"
}
'import requests
url = "https://control-plane.kubiya.ai/api/v1/executions/batch/terminate"
payload = {
"execution_ids": ["<string>"],
"reason": "<string>"
}
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({execution_ids: ['<string>'], reason: '<string>'})
};
fetch('https://control-plane.kubiya.ai/api/v1/executions/batch/terminate', 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://control-plane.kubiya.ai/api/v1/executions/batch/terminate",
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([
'execution_ids' => [
'<string>'
],
'reason' => '<string>'
]),
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://control-plane.kubiya.ai/api/v1/executions/batch/terminate"
payload := strings.NewReader("{\n \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\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://control-plane.kubiya.ai/api/v1/executions/batch/terminate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://control-plane.kubiya.ai/api/v1/executions/batch/terminate")
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 \"execution_ids\": [\n \"<string>\"\n ],\n \"reason\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"total_requested": 123,
"total_succeeded": 123,
"total_failed": 123,
"results": [
{
"execution_id": "<string>",
"success": true,
"workflow_id": "<string>",
"error": "<string>",
"terminated_at": "2023-11-07T05:31:56Z"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Enter your Kubiya API token (format: Bearer )
Body
Response
Successful Response
Response after batch terminating executions
Total number of executions requested for termination
Number of successfully terminated executions
Number of failed terminations
Results for each execution
Show child attributes
Show child attributes
Was this page helpful?