curl --request POST \
--url https://dally.ai/v1/automation.disarm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61"
}
'import requests
url = "https://dally.ai/v1/automation.disarm"
payload = { "rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61" }
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({rule_id: '3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61'})
};
fetch('https://dally.ai/v1/automation.disarm', 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://dally.ai/v1/automation.disarm",
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([
'rule_id' => '3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61'
]),
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://dally.ai/v1/automation.disarm"
payload := strings.NewReader("{\n \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\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://dally.ai/v1/automation.disarm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dally.ai/v1/automation.disarm")
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 \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\n}"
response = http.request(request)
puts response.read_body{
"rule": {
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61",
"state": "disarmed",
"surfaces": [
"comment",
"story_reply",
"dm"
],
"platform": "instagram",
"keywords": [
"pumpkin",
"recipe"
],
"message": "Here is the link you asked for.",
"link_url": "https://dally.ai/",
"disclosure": "— automated reply",
"tracked_link": true,
"reply_preview": "Here is the link you asked for.\nhttps://dally.ai/r/<click_id>\n\n— automated reply",
"reels": [],
"environment": "production",
"armed_at": "2026-09-09T15:00:00.000Z",
"disarmed_at": "2026-09-09T16:00:00.000Z",
"counts": {
"sends": 0,
"delivered": 0,
"reads": 0,
"click_throughs": 0,
"claims": 0,
"sign_ups": 0,
"invalid_traffic": 0,
"purchases": 0,
"revenue_cents": 0
},
"confirm": {
"operation": "automation.confirm",
"follow_up": "Arm the pumpkin rule"
},
"disarm": null
},
"show": {
"kind": "automation_board",
"data": {
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61"
}
},
"request_id": "req_01j8zkq"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}automation.disarm
Access: public. Send a JSON body; unknown keys are rejected with 400 invalid_request (inputs are strict). Responses may gain fields additively — never remove or repurpose; ignore unknown response fields.
curl --request POST \
--url https://dally.ai/v1/automation.disarm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61"
}
'import requests
url = "https://dally.ai/v1/automation.disarm"
payload = { "rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61" }
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({rule_id: '3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61'})
};
fetch('https://dally.ai/v1/automation.disarm', 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://dally.ai/v1/automation.disarm",
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([
'rule_id' => '3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61'
]),
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://dally.ai/v1/automation.disarm"
payload := strings.NewReader("{\n \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\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://dally.ai/v1/automation.disarm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dally.ai/v1/automation.disarm")
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 \"rule_id\": \"3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61\"\n}"
response = http.request(request)
puts response.read_body{
"rule": {
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61",
"state": "disarmed",
"surfaces": [
"comment",
"story_reply",
"dm"
],
"platform": "instagram",
"keywords": [
"pumpkin",
"recipe"
],
"message": "Here is the link you asked for.",
"link_url": "https://dally.ai/",
"disclosure": "— automated reply",
"tracked_link": true,
"reply_preview": "Here is the link you asked for.\nhttps://dally.ai/r/<click_id>\n\n— automated reply",
"reels": [],
"environment": "production",
"armed_at": "2026-09-09T15:00:00.000Z",
"disarmed_at": "2026-09-09T16:00:00.000Z",
"counts": {
"sends": 0,
"delivered": 0,
"reads": 0,
"click_throughs": 0,
"claims": 0,
"sign_ups": 0,
"invalid_traffic": 0,
"purchases": 0,
"revenue_cents": 0
},
"confirm": {
"operation": "automation.confirm",
"follow_up": "Arm the pumpkin rule"
},
"disarm": null
},
"show": {
"kind": "automation_board",
"data": {
"rule_id": "3c1f0b7d-4a52-4e88-b6c3-1d7e9a204f61"
}
},
"request_id": "req_01j8zkq"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}Authorizations
A WorkOS-dashboard-issued internal API key on Authorization: Bearer.
Body
The rule id automation.arm answered with; keyword_rules.rule_id.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Success. request_id is present on every response.
One reply automation: its surfaces, its posts and stories or any of them, its keywords, the one line Dally sends as the creator with the link and the disclosure, where it stands, and its counts.
Show child attributes
Show child attributes
How it is shown: dally_write renders this kind on this very answer, so the creator already sees the board; do not render it again. The board reads the creator's automations itself and takes no rows from you.
Show child attributes
Show child attributes
Server-minted id for this request. Present on every response, success and error — quote it when reporting a problem.
1