post · alerts:write
Create an alert rule
Empty filter arrays mean "any". A rule fires at most once per mention, so overlapping rules do not double-send.
Write
REST
post
/api/v1/alertscurl "https://herculradar.com/api/v1/alerts" \
--request POST \
--header "Authorization: Bearer hr_live_…" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $(uuidgen)" \
--data '{"name":"Acme","destination":"Acme"}'MCP
Tool name create_alert. It takes the same input and returns the same { data, meta } envelope as REST, because both call the same function.
Notify an email address or https webhook when a matching mention arrives. Empty filter arrays mean "any".
Request body
{
"type": "object",
"required": [
"name",
"destination"
],
"properties": {
"name": {
"type": "string"
},
"channel": {
"type": "string",
"enum": [
"email",
"webhook"
]
},
"destination": {
"type": "string",
"description": "Email address, or https URL when channel is webhook"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"enum": [
"bug_report",
"complaint",
"misinformation",
"product_idea",
"testimonial",
"other"
]
}
},
"sentiments": {
"type": "array",
"items": {
"type": "string",
"enum": [
"positive",
"neutral",
"negative"
]
}
},
"sources": {
"type": "array",
"items": {
"type": "string",
"enum": [
"x",
"reddit",
"youtube",
"linkedin",
"threads"
]
}
},
"min_urgency": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
}Response
{
"data": {
"id": "uuid",
"name": "Critical complaints",
"active": true
},
"meta": {
"capability": "create_alert",
"requestId": "req_9f2b4a8c1d0e",
"idempotencyReplayed": false,
"docs": "https://herculradar.com/docs/reference/create_alert"
}
}Authorization
Requires the alerts:write scope. A credential without it gets 403 FORBIDDEN. Resources in projects the credential cannot reach answer 404 NOT_FOUND rather than 403, so ids cannot be probed across tenants.
Send an Idempotency-Key header. A completed response is replayed for 24 hours, so a retry after a timeout cannot create a duplicate.