---
title: "Run Trigger Now"
method: POST
path: "/v1/triggers/{trigger_id}/run"
tags: ["v1", "protected", "triggers"]
---

# Run Trigger Now

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

Fire a trigger once, now, because a person asked for it.

Distinct from ``/execute``, which replays a real event: this carries no event
data and records the caller in ``fired_by``, so the run is visibly a manual
one and the task it creates belongs to the caller rather than to whoever
created the trigger.

The run is otherwise faithful to a real one -- the trigger's conditions are
still evaluated, and a run they reject comes back ``skipped`` with the reason
rather than being forced through. A trigger that is switched off still runs:
``is_active`` governs the schedule, not a person asking for one run.

Returns:
    The execution, and the task id to watch when one was created.

## Path parameters

- `trigger_id` string, uuid, required

## Response `200`

Successful Response

- TriggerRunResponse — Result of firing a trigger once by hand.
  - `execution_id` string, uuid, required
  - `reason` string, nullable — Why the run was skipped, when it was.
  - `status` 'started' | 'skipped', required — 'started' when a task was created and is now running. 'skipped' when the trigger's own conditions rejected the run -- a real answer about the trigger, not an error.
  - `task_id` string, uuid, nullable — The task to watch. Absent when the run was skipped.
  - `trigger_id` string, uuid, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-18** `109bd839d53f` — 1 info
  - endpoint added

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

---

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