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

# Connection activated

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

> **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 a connected account successfully becomes active.

---

## POST `composio.connected_account.activated`

**Event type:** `composio.connected_account.activated`

**Summary:** Connection activated

Fired when a connected account successfully becomes active.

### 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.connected_account.activated") *(required)*
- `data` (object) *(required)*
  - `toolkit` (object) *(required)*
    - `slug` (string) *(required)*: The slug of the toolkit
  - `auth_config` (object) *(required)*
    - `id` (string (authConfigId)) *(required)*: The id of the auth config
    - `auth_scheme` (enum: "OAUTH2" | "OAUTH1" | "API_KEY" | ...) *(required)*: the authScheme is part of the connection state use it there
    - `is_composio_managed` (boolean) *(required)*: Whether the auth config is managed by Composio
    - `is_disabled` (boolean) *(required)*: Whether the auth config is disabled
  - `id` (string (connectedAccountId)) *(required)*: The id of the connection
  - `authScheme` (enum: "OAUTH2" | "OAUTH1" | "API_KEY" | ...): Duplicates state.authScheme. Kept for backward compatibility with existing readers; use state.authScheme instead.
  - `word_id` (string,null) *(required)*: A short, token-friendly identifier for multi-account disambiguation, typically toolkit-prefixed with 1-2 words (e.g., "gmail_red-castle")
  - `alias` (string,null) *(required)*: A user-defined alias for the connected account
  - `user_id` (string) *(required)*: This is deprecated, we will not be providing userId from this api anymore, you will only be able to read via userId not get it back
  - `status` (enum: "INITIALIZING" | "INITIATED" | "ACTIVE" | ...) *(required)*: The status of the connection
  - `experimental` (object): Experimental features - not stable, may be modified or removed in future versions.
    - `account_type` (enum: "PRIVATE" | "SHARED") *(required)*: Sharing model for this connected account. PRIVATE is usable only by the owning user_id. SHARED is reachable from a tool-router session only when explicitly pinned in the session config.
    - `acl_config_for_shared` (object): Access control for SHARED connections. Visible only to the connection creator and project/org API key callers; non-creator cookie callers receive the response without this block.
      - `allow_all_users` (boolean) *(required)*
      - `allowed_user_ids` (array<string>) *(required)*
      - `not_allowed_user_ids` (array<string>) *(required)*
  - `created_at` (string) *(required)*: The created at of the connection
  - `updated_at` (string) *(required)*: The updated at of the connection
  - `state` (any) *(required)*: The state of the connection
  - `data` (object) *(required)*: This is deprecated, use `state` instead
    - `[key: string]` (any)
  - `status_reason` (string,null) *(required)*: The reason the connection status changed.
  - `is_disabled` (boolean) *(required)*: Whether the connection is disabled
  - `test_request_endpoint` (string): The endpoint to make test request for verification
  - `params` (object) *(required)*: The initialization data of the connection, including configuration parameters
    - `[key: string]` (any)
  - `requested_scopes` (array<string>): OAuth scopes requested when this connection was most recently initiated (create or refresh). Absent for connections created before scope snapshots were captured and for non-OAuth auth schemes.
  - `requested_user_scopes` (array<string>): OAuth user-token scopes requested at the most recent initiation. Only meaningful for Slackbot auth configs (user-token scopes); absent otherwise.
- `metadata` (object) *(required)*
  - `project_id` (string) *(required)*: ID of the project.

**Example:**

```json
{
  "id": "msg_8b7a6d5e-4f3a-4b2c-9d1e-0f8a7b6c5d4e",
  "type": "composio.connected_account.activated",
  "timestamp": "2026-01-15T10:30:00Z",
  "metadata": {
    "project_id": "proj_abc123"
  },
  "data": {
    "id": "ca_a1b2c3d4e5f6g7h8",
    "toolkit": {
      "slug": "github"
    },
    "auth_config": {
      "id": "ac_x1y2z3a4b5c6",
      "auth_scheme": "OAUTH2",
      "is_composio_managed": true,
      "is_disabled": false
    },
    "word_id": "github_red-castle",
    "alias": null,
    "user_id": "user-123",
    "status": "ACTIVE",
    "created_at": "2026-01-15T10:29:00Z",
    "updated_at": "2026-01-15T10:30:00Z",
    "state": {
      "authScheme": "OAUTH2",
      "val": {
        "status": "ACTIVE",
        "access_token": "********"
      }
    },
    "data": {},
    "params": {},
    "status_reason": null,
    "is_disabled": false
  }
}
```

### 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.