---
title: "Delete a trigger"
method: DELETE
path: "/api/v1/triggers/{id}"
tags: ["Triggers"]
---

# Delete a trigger

`DELETE /api/v1/triggers/{id}`

## Request

- Base URL: `https://api.roma.app`
- URL: `https://api.roma.app/api/v1/triggers/{id}`
- Auth: HTTP bearer

The user's triggers — Roma delivering an event to an outside agent the moment something changes on their lists — in one tool: `action` list, create, update or delete. A trigger names which events fire it, a filter, and where the event goes: transport `webhook` POSTs a signed envelope ({ eventId, name, timestamp, text, data, cursor }; Standard Webhooks headers webhook-id, webhook-timestamp, webhook-signature over `id.timestamp.body` with the secret) to `url`, which must be https and public (no challenge: a Claude scheduled task's Fire URL with its bearer in `headers` works as is), the secret answered once on create; transport `poll` needs no address: the agent reads its deliveries at GET /api/v1/triggers/{id}/deliveries?wait=25&after=<cursor> with its key. `data` carries the item as get_item returns it, `changes` with from and to per field, and the actor. Retries at 1 minute, 1 hour and 6 hours, then the trigger is disabled as failing; `update` with `paused: false` or a new `url` brings it back. Pass `agentName`, the name you post under with post_chat_message: the person's reply to one of your posts then fires the trigger too, and the chat offers them Reply. The transport never changes on update: delete and create again. Twenty per account. `list` answers the triggers with each one's last delivery and the catalogue of events: item.created (an item was created on one of the person's lists: a task, a note, a row); item.updated (an item's title, due date, reminder, a property value or its archived flag changed); item.statusUpdated (a task's status changed (todo, inprogress, completed)); item.moved (an item moved onto another list); item.deleted (an item was deleted into the trash (recoverable for 30 days)); item.restored (an item came back from the trash); list.created (a list was created); list.updated (a list's name, icon, instructions, properties or archived flag changed); list.deleted (a list was deleted into the trash); list.restored (a list came back from the trash); item.assigned (the person assigned an item to an agent: a person property of the item gained the agent's record (`data); message.posted (the person replied to an agent's post in an item's chat (reply on its row; `data); automation.completed (an automation's run finished (`data).

## Path parameters

- `id` string, required

## Response `200`

The tool's result.

- object
  - `triggers` object[]: For list.
    - `id` string, required
    - `name` string, required
    - `transport` 'webhook' | 'poll' | 'mcpEvents' | 'email', required
    - `events` string[], required
    - `filter` unknown, required
    - `url` string, nullable, required
    - `disabledAt` string, nullable, required
    - `disabledReason` string, nullable, required
    - `lastDeliveryAt` string, nullable, required
    - `lastDeliveryStatus` string, nullable, required
    - `createdAt` string, required
    - `lastDelivery` unknown, required
  - `events` object[]: For list: the catalogue.
    - `name` string, required
    - `description` string, required
  - `trigger` object: For create and update.
    - `id` string, required
    - `name` string, required
    - `transport` 'webhook' | 'poll' | 'mcpEvents' | 'email', required
    - `events` string[], required
    - `filter` unknown, required
    - `url` string, nullable, required
    - `disabledAt` string, nullable, required
    - `disabledReason` string, nullable, required
    - `lastDeliveryAt` string, nullable, required
    - `lastDeliveryStatus` string, nullable, required
    - `createdAt` string, required
    - `paused` boolean
  - `secret` string, nullable: For create: the signing secret, this once; null for a poll trigger.
  - `deleted` boolean: For delete.

## Other responses

- `400`: The request was understood and refused; the error says what to change.
- `401`: No usable bearer token.
- `404`: No such item for this account.
- `405`: The path exists but not with this method; Allow lists the ones that work.
- `429`: Over the rate limit; wait for Retry-After.

---

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