---
canonical_url: "https://docs.composio.dev/reference/api-reference/webhook-events/composio_trigger_disabled"
markdown_url: "https://docs.composio.dev/reference/api-reference/webhook-events/composio_trigger_disabled.md"
product: "platform"
version: "3.1"
last_updated: null
---

# Trigger disabled

**Documentation:** /reference/api-reference/webhook-events/composio_trigger_disabled

> **API version:** This page documents Composio REST API v3.1, the current version, at `https://backend.composio.dev/api/v3.1`. `https://backend.composio.dev/api/v3` is the previous version and remains supported.

Fired when Composio automatically disables a trigger (for example, auth expired or the webhook subscription can no longer be refreshed). Not fired when you disable the trigger or its connected account yourself.

---

## POST `composio.trigger.disabled`

**Event type:** `composio.trigger.disabled`

**Summary:** Trigger disabled

Fired when Composio automatically disables a trigger (for example, auth expired or the webhook subscription can no longer be refreshed). Not fired when you disable the trigger or its connected account yourself.

### Delivery Headers

- `webhook-id` (string) *(required)*: Unique message id, stable across delivery retries. Use it as an idempotency key. Equals the payload `id`.
- `webhook-timestamp` (string) *(required)*: Unix timestamp (seconds) of this delivery attempt.
- `webhook-signature` (string) *(required)*: Base64 HMAC-SHA256 signature, formatted `v1,<signature>`, over `${webhook-id}.${webhook-timestamp}.${raw_body}`.
- `x-composio-webhook-version` (string) *(required)*: Payload version for this subscription (for example `V3`).
- `x-composio-delivery-attempt` (string) *(required)*: Attempt number for this delivery, starting at `1` and incrementing on each retry. The payload and `webhook-id` are identical across attempts, so use `webhook-id` for idempotency rather than this value.

### Request Body

**Schema:**

- `id` (string) *(required)*: Unique event id (msg_<uuid>). Also sent as the `webhook-id` header and stable across delivery retries — use it for idempotency.
- `timestamp` (string (date-time)) *(required)*: ISO 8601 timestamp of when the event was created.
- `type` (enum: "composio.trigger.disabled") *(required)*
- `data` (object) *(required)*
  - `id` (string) *(required)*: ID of the trigger instance that was disabled.
  - `connected_account_id` (string) *(required)*: ID of the connected account the trigger belonged to.
  - `trigger_name` (string) *(required)*: The trigger that was disabled (for example GITHUB_COMMIT_EVENT).
  - `user_id` (string,null) *(required)*: ID of the user for this connection, or null if not set.
  - `trigger_config` (object) *(required)*: Trigger configuration.
    - `[key: string]` (any)
  - `disabled_at` (string (date-time)) *(required)*: ISO 8601 timestamp of when the trigger was disabled.
  - `disabled_reason` (string) *(required)*: Human-readable reason the trigger was disabled.
- `metadata` (object) *(required)*
  - `project_id` (string) *(required)*: ID of the project.

**Example:**

```json
{
  "id": "msg_7b3a1c2d-4e5f-4a6b-8c9d-0e1f2a3b4c5d",
  "type": "composio.trigger.disabled",
  "timestamp": "2026-01-15T10:30:00Z",
  "metadata": {
    "project_id": "proj_abc123"
  },
  "data": {
    "id": "ti_xyz789",
    "connected_account_id": "ca_def456",
    "trigger_name": "GITHUB_COMMIT_EVENT",
    "user_id": "user-123",
    "trigger_config": {
      "repo": "composio"
    },
    "disabled_at": "2026-01-15T10:30:00Z",
    "disabled_reason": "Connected account authentication expired."
  }
}
```

### Responses

#### 200 - Return any 2xx status to acknowledge receipt. Non-2xx responses are retried.

---

## REST API version

The current REST API version is **v3.1**, served at `https://backend.composio.dev/api/v3.1`. Prefer it for new code and new examples.

`https://backend.composio.dev/api/v3` is the previous version. It is frozen with pinned tool-version defaults and remains supported — existing v3 integrations keep working and do not need to migrate.