<!-- Source: https://docs.geopera.com/api-reference/operations/alerts · Markdown for LLMs -->

<!-- AUTO-GENERATED by scripts/generate-api-reference.cjs from the committed OpenAPI spec. Do not edit by hand. -->

# Alerts operations

Alert rules.

Each operation below is reachable at `POST /v1/op/{operation_id}` or the resource path `POST /v1/{resource}/{action}`, with a Bearer token (a `gpra_` API key or a session token). Back to the [Operations Reference](/api-reference/operations) index.

## `alerts.acknowledge_event`

Mark an alert event acknowledged (org-scoped).

| | |
|---|---|
| **Scope** | `alerts:write` |
| **Side-effect** | compute |
| **HTTP** | `POST /v1/op/alerts.acknowledge_event`  ·  `POST /v1/alerts/acknowledge_event` |
| **Python / TypeScript** | `client.alerts.acknowledge_event(…)` |
| **CLI** | `geopera alerts acknowledge-event …` |

**Request** — `AcknowledgeEventInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes |  |

**Response** — `AlertEventOutput`.

## `alerts.create_rule`

Create an alert rule for the caller's organization.

| | |
|---|---|
| **Scope** | `alerts:write` |
| **Side-effect** | compute |
| **HTTP** | `POST /v1/op/alerts.create_rule`  ·  `POST /v1/alerts/create_rule` |
| **Python / TypeScript** | `client.alerts.create_rule(…)` |
| **CLI** | `geopera alerts create-rule …` |

**Request** — `CreateAlertRuleInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `name` | string | yes |  |
| `description` | string | — |  |
| `collection_id` | string | — |  |
| `event_types` | array of string | — |  |
| `expression` | string | yes |  |
| `comparison` | string | yes |  |
| `threshold` | number | yes |  |
| `threshold_upper` | number | — |  |
| `asset_key` | string | — |  |
| `band_mapping` | object | — |  |
| `notification_channels` | array of string | — |  |
| `cooldown_minutes` | integer | — |  |

**Response** — `AlertRuleOutput`.

## `alerts.delete_rule`

Delete an alert rule (org-scoped).

| | |
|---|---|
| **Scope** | `alerts:write` |
| **Side-effect** | destructive |
| **HTTP** | `POST /v1/op/alerts.delete_rule`  ·  `POST /v1/alerts/delete_rule` |
| **Python / TypeScript** | `client.alerts.delete_rule(…)` |
| **CLI** | `geopera alerts delete-rule …` |

**Request** — `DeleteAlertRuleInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `rule_id` | string | yes |  |

**Response** — `DeleteAlertRuleOutput`.

## `alerts.events.list`

List the caller's organization's alert events (org-scoped, triggered_at desc).

| | |
|---|---|
| **Scope** | `alerts:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/alerts.events.list`  ·  `POST /v1/alerts/events/list` |
| **Python / TypeScript** | `client.alerts.events.list(…)` |
| **CLI** | `geopera alerts events list …` |

**Request** — `AlertEventsListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `rule_id` | string | — |  |
| `acknowledged` | boolean | — |  |
| `limit` | integer | — |  |
| `offset` | integer | — |  |

**Response** — a streaming or binary payload (NDJSON / file / tile). Call the HTTP endpoint directly; the JSON SDK return does not apply.

## `alerts.rule.get`

Get a single alert rule by id (org-scoped; 404 cross-org).

| | |
|---|---|
| **Scope** | `alerts:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/alerts.rule.get`  ·  `POST /v1/alerts/rule/get` |
| **Python / TypeScript** | `client.alerts.rule.get(…)` |
| **CLI** | `geopera alerts rule get …` |

**Request** — `AlertRuleGetInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `rule_id` | string | yes |  |

**Response** — a streaming or binary payload (NDJSON / file / tile). Call the HTTP endpoint directly; the JSON SDK return does not apply.

## `alerts.rules.list`

List the caller's organization's alert rules (org-scoped).

| | |
|---|---|
| **Scope** | `alerts:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/alerts.rules.list`  ·  `POST /v1/alerts/rules/list` |
| **Python / TypeScript** | `client.alerts.rules.list(…)` |
| **CLI** | `geopera alerts rules list …` |

**Request** — `AlertRulesListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `active` | boolean | — |  |
| `collection_id` | string | — |  |

**Response** — a streaming or binary payload (NDJSON / file / tile). Call the HTTP endpoint directly; the JSON SDK return does not apply.

## `alerts.test_rule`

Test-evaluate an alert rule against an item without persisting.

| | |
|---|---|
| **Scope** | `alerts:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/alerts.test_rule`  ·  `POST /v1/alerts/test_rule` |
| **Python / TypeScript** | `client.alerts.test_rule(…)` |
| **CLI** | `geopera alerts test-rule …` |

**Request** — `TestAlertRuleInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `rule_id` | string | yes |  |
| `item_id` | string | yes |  |

**Response** — `TestAlertRuleOutput`.

## `alerts.update_rule`

Update an alert rule (org-scoped).

| | |
|---|---|
| **Scope** | `alerts:write` |
| **Side-effect** | compute |
| **HTTP** | `POST /v1/op/alerts.update_rule`  ·  `POST /v1/alerts/update_rule` |
| **Python / TypeScript** | `client.alerts.update_rule(…)` |
| **CLI** | `geopera alerts update-rule …` |

**Request** — `UpdateAlertRuleInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `rule_id` | string | yes |  |
| `name` | string | — |  |
| `description` | string | — |  |
| `collection_id` | string | — |  |
| `event_types` | array of string | — |  |
| `expression` | string | — |  |
| `comparison` | string | — |  |
| `threshold` | number | — |  |
| `threshold_upper` | number | — |  |
| `asset_key` | string | — |  |
| `band_mapping` | object | — |  |
| `notification_channels` | array of string | — |  |
| `active` | boolean | — |  |
| `cooldown_minutes` | integer | — |  |

**Response** — `AlertRuleOutput`.
