cURL
curl -X POST "https://app.cotool.ai/api/detection-rules/proposals/:id/smart-deploy" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"draft":{"chatId":"string","proposalId":"string","organizationId":"string","platform":"string","name":"string","description":"string","query":"string","reasoning":"string","mitreTechniqueIds":["string"],"mitreTechniqueNames":["string"],"dataSourcesRequired":["string"],"detectionIntent":{"methodLabel":"string","rationale":"string","confidence":"high","keyKnobs":null},"platformConfig":{"version":1,"platform":"datadog","queries":[{"name":"string","query":"string","aggregation":"count","dataSource":null,"groupByFields":["string"],"distinctFields":["string"]}],"cases":[{"status":"info","condition":"string","name":"string"}],"options":{"detectionMethod":"threshold","evaluationWindow":0,"keepAlive":0,"maxSignalDuration":0,"decreaseCriticalityBasedOnEnv":true},"isEnabled":true},"createdAt":"string","updatedAt":"string"}}'import requests
url = "https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy"
payload = {}
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({})
};
fetch('https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy"
payload := strings.NewReader("{}")
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))
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Detection Rules
Smart deploy detection to native platform (SSE)
Uses an AI agent to deploy a detection directly to the SIEM platform with appropriate parameters. Streams progress via SSE. Optionally pass a draft to deploy instead of the original proposal.
POST
/
api
/
detection-rules
/
proposals
/
{id}
/
smart-deploy
cURL
curl -X POST "https://app.cotool.ai/api/detection-rules/proposals/:id/smart-deploy" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"draft":{"chatId":"string","proposalId":"string","organizationId":"string","platform":"string","name":"string","description":"string","query":"string","reasoning":"string","mitreTechniqueIds":["string"],"mitreTechniqueNames":["string"],"dataSourcesRequired":["string"],"detectionIntent":{"methodLabel":"string","rationale":"string","confidence":"high","keyKnobs":null},"platformConfig":{"version":1,"platform":"datadog","queries":[{"name":"string","query":"string","aggregation":"count","dataSource":null,"groupByFields":["string"],"distinctFields":["string"]}],"cases":[{"status":"info","condition":"string","name":"string"}],"options":{"detectionMethod":"threshold","evaluationWindow":0,"keepAlive":0,"maxSignalDuration":0,"decreaseCriticalityBasedOnEnv":true},"isEnabled":true},"createdAt":"string","updatedAt":"string"}}'import requests
url = "https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy"
payload = {}
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({})
};
fetch('https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/detection-rules/proposals/{id}/smart-deploy"
payload := strings.NewReader("{}")
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))
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Authorizations
API Key authentication for programmatic access. Include your API key in the Authorization header as: Bearer your_api_key_here
Path Parameters
Body
application/json
Optional draft to deploy instead of the original proposal
Show child attributes
Show child attributes
Response
Successful response - no content
Was this page helpful?
⌘I