Send a test notification to a rule’s targets
const url = 'http://localhost:3000/api/v1/alert-rules/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/test-fire';const options = {method: 'POST', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/v1/alert-rules/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/test-fire \ --header 'X-API-Key: <X-API-Key>'Dispatches a test notification through each configured target so an operator can confirm delivery actually works before relying on it. Creates no AlertDelivery record, so a test never consumes the rule’s open-alert slot and cannot suppress a subsequent real alert. Per-target outcomes are reported individually — one broken endpoint does not hide the rest.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.
Responses
Section titled “Responses”object
Number of devices the rule’s scope currently resolves to.
Human-readable rendering of the condition, as the evaluator sees it.
object
Whether the transport accepted the test notification
Failure detail when delivered is false; empty otherwise.
Example
{ "matchedDeviceCount": 12, "condition": "cpu > 80 for 300s", "results": [ { "name": "Ops on-call email", "channel": "EMAIL", "error": "" } ]}No such rule in the caller’s organization