---
title: "Enable Watch Route"
method: POST
path: "/api/watches/{watch_id}/enable"
tags: ["watches"]
---

# Enable Watch Route

`POST /api/watches/{watch_id}/enable`

## Request

- Base URL: `https://platform.verbiflow.com/api/bridge`
- URL: `https://platform.verbiflow.com/api/bridge/api/watches/{watch_id}/enable`
- Auth: one of:
  - HTTP bearer and API key in header `x-flage-org-id`
  - HTTP bearer and API key in header `x-flage-org-slug`

## Path parameters

- `watch_id` string, uuid, required

## Query parameters

- `expected_version` string, required

## Response `200`

Successful Response

- union: Authoritative Watch record; source_kind selects its exact scope shape.
  - SlackChannelWatchRecord: Proactive permission for one Slack channel.
    - `authority` WatchAuthorityResponse, required: Owner authority captured by the server when the Watch was created.
      - `authority` 'service' | 'workspace_admin' | 'member', required: Server-derived authority classification at creation.
      - `captured_at` string, date-time, required: ISO 8601 time when authority was captured.
      - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `cooldown_seconds` integer, required: Minimum seconds between admitted proactive judgments, including silent runs.
    - `created_at` string, date-time, required: ISO 8601 Watch creation time.
    - `creation_key` string, nullable, required: Create identity, or null for a legacy Watch.
    - `daily_cap` integer, required: Maximum admitted proactive judgments per UTC day, including silent runs.
    - `dedupe_key_template` string, required: Configured source-specific deduplication template.
    - `enabled` boolean, required: Whether matching events may be evaluated.
    - `expires_at` string, date-time, nullable, required: ISO 8601 expiry, or null for no expiry.
    - `intent` string, required: Owner instruction carried into Mochi judgment.
    - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `prefilter` WatchPrefilterPayloadOutput, required: Deterministic prefilter: keyword substrings and an author allowlist. Empty lists mean "no prefilter constraint of that kind".
      - `authors` string[], required: Allowed Slack author ids; an empty list imposes no author constraint.
      - `keywords` string[], required: Case-insensitive substrings; any one must match when nonempty.
    - `scope` SlackChannelScopePayload, required: One Slack workspace and channel observed by a channel Watch.
      - `channel_id` string, required: Exact Slack channel to observe.
      - `team_id` string, required: Exact connected Slack workspace to observe.
    - `slack_app_id` string, required: Server-derived Slack application identity.
    - `source_kind` 'slack_channel', required: Slack channel source discriminator.
    - `updated_at` string, date-time, required: Exact version to pass as expected_version on enable.
    - `watch_id` string, uuid, required: Stable canonical Watch UUID.
  - SlackThreadWatchRecord: Proactive permission for one exact Slack thread.
    - `authority` WatchAuthorityResponse, required: Owner authority captured by the server when the Watch was created.
      - `authority` 'service' | 'workspace_admin' | 'member', required: Server-derived authority classification at creation.
      - `captured_at` string, date-time, required: ISO 8601 time when authority was captured.
      - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `cooldown_seconds` integer, required: Minimum seconds between admitted proactive judgments, including silent runs.
    - `created_at` string, date-time, required: ISO 8601 Watch creation time.
    - `creation_key` string, nullable, required: Create identity, or null for a legacy Watch.
    - `daily_cap` integer, required: Maximum admitted proactive judgments per UTC day, including silent runs.
    - `dedupe_key_template` string, required: Configured source-specific deduplication template.
    - `enabled` boolean, required: Whether matching events may be evaluated.
    - `expires_at` string, date-time, nullable, required: ISO 8601 expiry, or null for no expiry.
    - `intent` string, required: Owner instruction carried into Mochi judgment.
    - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `prefilter` WatchPrefilterPayloadOutput, required: Deterministic prefilter: keyword substrings and an author allowlist. Empty lists mean "no prefilter constraint of that kind".
      - `authors` string[], required: Allowed Slack author ids; an empty list imposes no author constraint.
      - `keywords` string[], required: Case-insensitive substrings; any one must match when nonempty.
    - `scope` SlackThreadScopePayload, required: One exact root message and its thread in a Slack channel.
      - `channel_id` string, required: Slack channel containing the thread.
      - `team_id` string, required: Exact connected Slack workspace to observe.
      - `thread_ts` string, required: Exact Slack root-message timestamp.
    - `slack_app_id` string, required: Server-derived Slack application identity.
    - `source_kind` 'slack_thread', required: Slack thread source discriminator.
    - `updated_at` string, date-time, required: Exact version to pass as expected_version on enable.
    - `watch_id` string, uuid, required: Stable canonical Watch UUID.
  - NotificationRuleWatchRecord: Proactive judgment after a Notification rule delivers to Slack.
    - `authority` WatchAuthorityResponse, required: Owner authority captured by the server when the Watch was created.
      - `authority` 'service' | 'workspace_admin' | 'member', required: Server-derived authority classification at creation.
      - `captured_at` string, date-time, required: ISO 8601 time when authority was captured.
      - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `cooldown_seconds` integer, required: Minimum seconds between admitted proactive judgments, including silent runs.
    - `created_at` string, date-time, required: ISO 8601 Watch creation time.
    - `creation_key` string, nullable, required: Create identity, or null for a legacy Watch.
    - `daily_cap` integer, required: Maximum admitted proactive judgments per UTC day, including silent runs.
    - `dedupe_key_template` string, required: Configured source-specific deduplication template.
    - `enabled` boolean, required: Whether matching events may be evaluated.
    - `expires_at` string, date-time, nullable, required: ISO 8601 expiry, or null for no expiry.
    - `intent` string, required: Owner instruction carried into Mochi judgment.
    - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `prefilter` WatchPrefilterPayloadOutput, required: Deterministic prefilter: keyword substrings and an author allowlist. Empty lists mean "no prefilter constraint of that kind".
      - `authors` string[], required: Allowed Slack author ids; an empty list imposes no author constraint.
      - `keywords` string[], required: Case-insensitive substrings; any one must match when nonempty.
    - `scope` NotificationRuleScopePayload, required: One existing Notification rule owned by the current workspace.
      - `rule_id` string, uuid, required: UUID returned by notifications.rules.
    - `slack_app_id` string, required: Server-derived Slack application identity.
    - `source_kind` 'notification_rule', required: Notification source discriminator.
    - `updated_at` string, date-time, required: Exact version to pass as expected_version on enable.
    - `watch_id` string, uuid, required: Stable canonical Watch UUID.
  - ReactionWatchRecord: Explicit invocation through one configured Slack emoji.
    - `authority` WatchAuthorityResponse, required: Owner authority captured by the server when the Watch was created.
      - `authority` 'service' | 'workspace_admin' | 'member', required: Server-derived authority classification at creation.
      - `captured_at` string, date-time, required: ISO 8601 time when authority was captured.
      - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `cooldown_seconds` integer, required: Minimum seconds between admitted proactive judgments, including silent runs.
    - `created_at` string, date-time, required: ISO 8601 Watch creation time.
    - `creation_key` string, nullable, required: Create identity, or null for a legacy Watch.
    - `daily_cap` integer, required: Maximum admitted proactive judgments per UTC day, including silent runs.
    - `dedupe_key_template` string, required: Configured source-specific deduplication template.
    - `enabled` boolean, required: Whether matching events may be evaluated.
    - `expires_at` string, date-time, nullable, required: ISO 8601 expiry, or null for no expiry.
    - `intent` string, required: Owner instruction carried into Mochi judgment.
    - `owner_user_id` string, required: Workspace principal who authorized the Watch.
    - `prefilter` WatchPrefilterPayloadOutput, required: Deterministic prefilter: keyword substrings and an author allowlist. Empty lists mean "no prefilter constraint of that kind".
      - `authors` string[], required: Allowed Slack author ids; an empty list imposes no author constraint.
      - `keywords` string[], required: Case-insensitive substrings; any one must match when nonempty.
    - `scope` ReactionScopePayload, required: One Slack workspace and bare emoji name used for explicit invocation.
      - `emoji` string, required: Bare lowercase Slack emoji name, without colons.
      - `team_id` string, required: Exact connected Slack workspace to observe.
    - `slack_app_id` string, required: Server-derived Slack application identity.
    - `source_kind` 'reaction', required: Reaction source discriminator.
    - `updated_at` string, date-time, required: Exact version to pass as expected_version on enable.
    - `watch_id` string, uuid, required: Stable canonical Watch UUID.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract.md) - [All operations](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/llms.txt) - [OpenAPI document](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/revisions/c80e903ef8f3?raw)
