---
title: "Manually trigger alert"
method: PATCH
path: "/api/v2/{org_id}/alerts/{alert_id}/trigger"
tags: ["Alerts"]
---

# Manually trigger alert

`PATCH /api/v2/{org_id}/alerts/{alert_id}/trigger`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/v2/{org_id}/alerts/{alert_id}/trigger`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/v2/:org_id/alerts/:alert_id/trigger/patch.ts> (a function with typed inputs; its response is checked against the schema)

Manually triggers an alert to test its functionality and notification delivery. Useful for testing alert configurations, verifying notification channels, and ensuring alerts work as expected before relying on them for monitoring. When a destination or the on-call page could not be delivered, the response also carries `warning` with the reason. For an anomaly detection alert it runs detection now and returns `message`, `claim_lost`, `ineligible`, `anomaly_id`, `anomalies_found`, `points_scored` and `anomalies`; `claim_lost: true` means another detection run for this alert is in progress, and `ineligible: true` means the detector is disabled or untrained (`message` says which), so nothing was scored.

## Path parameters

- `org_id` string, required
- `alert_id` string, required

## Query parameters

- `folder` string

## Response `200`

Success; for an anomaly alert, the detection result (see description)

- object

## Other responses

- `403`: Workflows is not in the license and the alert reached nobody else; `code` is 40001 and `error_detail` names the feature
- `404`: NotFound
- `500`: Failure

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
