---
title: "Resume Trigger"
method: POST
path: "/v1/triggers/{trigger_id}/resume"
tags: ["Triggers"]
---

# Resume Trigger

`POST /v1/triggers/{trigger_id}/resume`

Resume a paused trigger. Next execution time is recalculated from current time.

## Path parameters

- `trigger_id` string, required — Trigger ID

## Response `200`

Successful Response

- SharedTriggersModelsTriggerModel — Unified trigger model for all action types. A trigger defines: 1. **What** to execute (action_type + action_config) 2. **When** to execute (trigger_type + schedule_config) 3. **State** tracking (execution count, failures, next scheduled time)
  - `trigger_id` string — Unique trigger identifier
  - `namespace_id` string, required — Namespace ID
  - `internal_id` string, required — Organization internal ID
  - `action_type` 'cluster' | 'taxonomy_enrichment' | 'batch_rerun' | 'collection_trigger' | 'retriever_execution' | 'alert_evaluation', required — Type of action to execute when trigger fires. Supported action types: - **cluster**: Execute clustering on a cluster definition - **taxonomy_enrichment**: Apply taxonomy enrichment to a collection - **batch_rerun**: Re-execute a completed/failed batch - **collection_trigger**: Re-process a collection from its sources - **retriever_execution**: Execute a saved retriever with fixed inputs on a schedule (a canary / search probe), optionally judged against acceptance criteria (latency ceilings, minimum results, per-document LLM verdicts) - **alert_evaluation**: Evaluate a retriever alert in the trigger's namespace on the trigger's schedule. The periodic alert sweep then skips that alert in that namespace, so it runs on this schedule only
  - `action_config` object, required — Action-specific configuration
  - `trigger_type` 'cron' | 'interval' | 'event' | 'conditional', required — Type of trigger schedule. Supported trigger types: - **cron**: Schedule-based execution using cron expressions - **interval**: Fixed-interval execution - **event**: Event-driven execution - **conditional**: Condition-based execution
  - `schedule_config` object, required — Schedule-specific configuration
  - `status` 'active' | 'paused' | 'disabled' | 'failed' — Status of a trigger.
  - `last_triggered_at` string, date-time, nullable — Last time trigger fired
  - `last_execution_task_id` string, nullable — Task ID of last execution
  - `next_scheduled_at` string, date-time, nullable — Next scheduled execution time
  - `execution_count` integer — Total successful executions
  - `consecutive_failures` integer — Consecutive failures
  - `last_execution_status` string, nullable — Status of last execution
  - `last_execution_error` string, nullable — Error from last execution (if failed)
  - `event_counter` integer — Current event count since last trigger
  - `last_cooldown_at` string, date-time, nullable — Last time cooldown was applied
  - `baseline_snapshot` object, nullable — Baseline snapshot for drift measurement (captured after successful execution)
  - `last_drift_measurement` object, nullable — Result of most recent drift measurement check
  - `last_volume_measurement` object, nullable — Result of most recent volume (document count) condition check
  - `last_condition_check_at` string, date-time, nullable — When condition was last evaluated
  - `name` string, nullable — Human-readable trigger name (surfaced in list/get responses)
  - `description` string, nullable — Human-readable description
  - `created_at` string, date-time — Creation timestamp
  - `updated_at` string, date-time — Last update timestamp
  - `created_by` string, nullable — User who created trigger
  - `is_overdue` boolean, required — Whether this trigger is active, scheduled by next_scheduled_at (cron, interval, or conditional), and that time has already passed. next_scheduled_at is naive (implicitly UTC) right after creation -- _calculate_next_cron (shared/triggers/utils.py) strips tzinfo before returning -- and aware once round-tripped through Mongo (tz_aware=True on both providers). Compare on the naive side so both cases work.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

## Changes

- **2026-10-04** `38e0822db900` — 1 warning
  - added the new `alert_evaluation` enum value to the `action_type` response property for the response status `200`
- **2026-09-19** `4bbfcce2371b` — 1 info
  - added the required property `is_overdue` to the response with the `200` status
- **2026-09-02** `8ef32f2ad1a6` — 1 warning
  - added the new `retriever_execution` enum value to the `action_type` response property for the response status `200`
- **2026-08-14** `b008c3847c23` — 1 info
  - added the optional property `name` to the response with the `200` status
- **2026-08-09** `5d4c905106b4` — 1 info
  - the endpoint scheme security `BearerAuth AND NamespaceHeader` was added to the API

[Change history](https://skmtc.dev/mixpeek/apis/mixpeek-api/changes/v1/triggers/:trigger_id/resume/post.md)

---

[API](https://skmtc.dev/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.dev/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mixpeek/apis/mixpeek-api/revisions/38e0822db900?raw)
