curl --request POST \
--url https://api.wildmoose.ai/playbook/execution/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputList": [
{
"messageLink": "https://slack.com/archives/C1234567890/p1234567890123456"
},
{
"title": "High memory usage detected",
"time": "2025-01-15T10:30:00Z",
"attributes": {
"host": "web-server-01",
"environment": "production"
}
},
{
"bookName": "perf-checks",
"time": "2025-01-15T10:30:00Z"
}
],
"liveRun": false,
"channelId": "C1234567890"
}
'import requests
url = "https://api.wildmoose.ai/playbook/execution/batch"
payload = {
"inputList": [
{ "messageLink": "https://slack.com/archives/C1234567890/p1234567890123456" },
{
"title": "High memory usage detected",
"time": "2025-01-15T10:30:00Z",
"attributes": {
"host": "web-server-01",
"environment": "production"
}
},
{
"bookName": "perf-checks",
"time": "2025-01-15T10:30:00Z"
}
],
"liveRun": False,
"channelId": "C1234567890"
}
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({
inputList: [
{messageLink: 'https://slack.com/archives/C1234567890/p1234567890123456'},
{
title: 'High memory usage detected',
time: '2025-01-15T10:30:00Z',
attributes: {host: 'web-server-01', environment: 'production'}
},
{bookName: 'perf-checks', time: '2025-01-15T10:30:00Z'}
],
liveRun: false,
channelId: 'C1234567890'
})
};
fetch('https://api.wildmoose.ai/playbook/execution/batch', 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.wildmoose.ai/playbook/execution/batch",
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([
'inputList' => [
[
'messageLink' => 'https://slack.com/archives/C1234567890/p1234567890123456'
],
[
'title' => 'High memory usage detected',
'time' => '2025-01-15T10:30:00Z',
'attributes' => [
'host' => 'web-server-01',
'environment' => 'production'
]
],
[
'bookName' => 'perf-checks',
'time' => '2025-01-15T10:30:00Z'
]
],
'liveRun' => false,
'channelId' => 'C1234567890'
]),
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://api.wildmoose.ai/playbook/execution/batch"
payload := strings.NewReader("{\n \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\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://api.wildmoose.ai/playbook/execution/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wildmoose.ai/playbook/execution/batch")
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 \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\n}"
response = http.request(request)
puts response.read_body[
{
"highlights": "Root cause: Database connection pool exhaustion. The CPU spike correlates with increased database queries from the application layer. Immediate action: Scale database connection pool from 20 to 50 connections.",
"gadgetsHighlights": [],
"enrichmentLink": "https://slack.com/archives/C1234567890/p6543210987654321",
"actionResults": [
{
"title": "Check system metrics",
"shortAnswer": "CPU usage is at 85%",
"mostImportantLink": "https://grafana.example.com/dashboard/cpu"
}
]
},
{
"error": "Failed to run playbook for alert High memory usage detected"
}
][
{
"error": "inputList exceeds maximum size or invalid input format"
}
]{
"error": "Internal server error"
}{
"error": "Client ID not configured for organization"
}{
"error": "Internal server error"
}Batch execute
Executes playbooks for multiple production issues in a single request. Each item in the inputList can either provide a message link or details. If bookName is specified for an item, the playbook is identified by name and messageLink/title are optional. Maximum 10 items per batch.
curl --request POST \
--url https://api.wildmoose.ai/playbook/execution/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputList": [
{
"messageLink": "https://slack.com/archives/C1234567890/p1234567890123456"
},
{
"title": "High memory usage detected",
"time": "2025-01-15T10:30:00Z",
"attributes": {
"host": "web-server-01",
"environment": "production"
}
},
{
"bookName": "perf-checks",
"time": "2025-01-15T10:30:00Z"
}
],
"liveRun": false,
"channelId": "C1234567890"
}
'import requests
url = "https://api.wildmoose.ai/playbook/execution/batch"
payload = {
"inputList": [
{ "messageLink": "https://slack.com/archives/C1234567890/p1234567890123456" },
{
"title": "High memory usage detected",
"time": "2025-01-15T10:30:00Z",
"attributes": {
"host": "web-server-01",
"environment": "production"
}
},
{
"bookName": "perf-checks",
"time": "2025-01-15T10:30:00Z"
}
],
"liveRun": False,
"channelId": "C1234567890"
}
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({
inputList: [
{messageLink: 'https://slack.com/archives/C1234567890/p1234567890123456'},
{
title: 'High memory usage detected',
time: '2025-01-15T10:30:00Z',
attributes: {host: 'web-server-01', environment: 'production'}
},
{bookName: 'perf-checks', time: '2025-01-15T10:30:00Z'}
],
liveRun: false,
channelId: 'C1234567890'
})
};
fetch('https://api.wildmoose.ai/playbook/execution/batch', 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.wildmoose.ai/playbook/execution/batch",
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([
'inputList' => [
[
'messageLink' => 'https://slack.com/archives/C1234567890/p1234567890123456'
],
[
'title' => 'High memory usage detected',
'time' => '2025-01-15T10:30:00Z',
'attributes' => [
'host' => 'web-server-01',
'environment' => 'production'
]
],
[
'bookName' => 'perf-checks',
'time' => '2025-01-15T10:30:00Z'
]
],
'liveRun' => false,
'channelId' => 'C1234567890'
]),
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://api.wildmoose.ai/playbook/execution/batch"
payload := strings.NewReader("{\n \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\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://api.wildmoose.ai/playbook/execution/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wildmoose.ai/playbook/execution/batch")
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 \"inputList\": [\n {\n \"messageLink\": \"https://slack.com/archives/C1234567890/p1234567890123456\"\n },\n {\n \"title\": \"High memory usage detected\",\n \"time\": \"2025-01-15T10:30:00Z\",\n \"attributes\": {\n \"host\": \"web-server-01\",\n \"environment\": \"production\"\n }\n },\n {\n \"bookName\": \"perf-checks\",\n \"time\": \"2025-01-15T10:30:00Z\"\n }\n ],\n \"liveRun\": false,\n \"channelId\": \"C1234567890\"\n}"
response = http.request(request)
puts response.read_body[
{
"highlights": "Root cause: Database connection pool exhaustion. The CPU spike correlates with increased database queries from the application layer. Immediate action: Scale database connection pool from 20 to 50 connections.",
"gadgetsHighlights": [],
"enrichmentLink": "https://slack.com/archives/C1234567890/p6543210987654321",
"actionResults": [
{
"title": "Check system metrics",
"shortAnswer": "CPU usage is at 85%",
"mostImportantLink": "https://grafana.example.com/dashboard/cpu"
}
]
},
{
"error": "Failed to run playbook for alert High memory usage detected"
}
][
{
"error": "inputList exceeds maximum size or invalid input format"
}
]{
"error": "Internal server error"
}{
"error": "Client ID not configured for organization"
}{
"error": "Internal server error"
}Authorizations
JWT token obtained from Auth0
Body
Array of playbook execution inputs (maximum 10 items)
1 - 10 elementsPlaybook execution input. Either messageLink or time must be provided to specify when the issue occurred. If bookName is not provided, either messageLink or title must be specified to identify which playbook to run.
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
[ { "messageLink": "https://slack.com/archives/C1234567890/p1234567890123456" }, { "title": "High memory usage detected", "time": "2025-01-15T10:30:00Z", "attributes": { "host": "web-server-01" } } ]
If true, sends enrichment results to the incident management tool for all executions
A Slack channel ID where results should be posted
"C1234567890"
Response
Batch playbook execution completed
Error message if the playbook execution failed
"Failed to execute playbook: timeout"
Bottom-line summary containing root cause analysis, conclusions, and key insights derived from the playbook execution
"Root cause: Database connection pool exhaustion. The CPU spike correlates with increased database queries from the application layer. Immediate action: Scale database connection pool from 20 to 50 connections."
Array of gadget highlight results
Show child attributes
Show child attributes
Link to the Slack message thread where enrichment results were posted (only present when channelId was specified)
"https://slack.com/archives/C1234567890/p6543210987654321"
Array of actionable mitigations
Show child attributes
Show child attributes
Array of action execution results
Show child attributes
Show child attributes