---
title: "Manage channel activation and configuration"
method: PATCH
path: "/channels/{channelId}"
tags: ["Channels"]
---

# Manage channel activation and configuration

`PATCH /channels/{channelId}`

## Request

- Base URL: `https://platform-api.visitoai.com/m2m/v1`
- URL: `https://platform-api.visitoai.com/m2m/v1/channels/{channelId}`
- Auth: HTTP bearer

Use for explicitly requested activation, property assignments or Instagram story reply/mention policy. Read get_channel first and discover propertyIds with list_properties. Reuses native entitlement, channel type and binding synchronization safeguards and native last-write behavior. It does not accept respondEnabled: use set_channel_response_enabled with the current updatedAt for automatic replies. Read after a timeout before retrying; fields may already be saved. Provider readiness is independent of active. Requires `channels:manage:write`.

## Path parameters

- `channelId` string, required

## Request body

- object
  - `active` boolean
  - `propertyIds` string[]
  - `instagramResponsePolicy` object
    - `storyMentions` boolean
    - `storyReplies` boolean

## Response `200`

Manage channel activation and configuration

- ChannelDetailResponse
  - `channel` Channel, required: Saved channel configuration and readiness signals. Active/respondEnabled do not prove provider readiness or message delivery. Error codes are safe diagnostics; raw provider error text and credentials are omitted.
    - `id` string, required
    - `tenantId` string, required
    - `propertyId` string
    - `propertyIds` string[], required
    - `provider` 'meta' | 'native' | 'tiktok', required
    - `type` 'whatsapp' | 'instagram' | 'messenger' | 'webchat' | 'tiktok', required
    - `name` string
    - `active` boolean, required
    - `respondEnabled` boolean, required
    - `degraded` boolean, required
    - `identifiers` object, required
      - `phoneNumberId` string
      - `phoneNumber` string
      - `wabaId` string
      - `igAccountId` string
      - `pageId` string
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `externalId` string
    - `appId` string
    - `metaAppKey` string
    - `igGraphApi` string
    - `waConnectionMode` string
    - `waActivationStatus` string
    - `tokenStatus` string
    - `tokenRefreshErrorCode` string
    - `degradedCode` string
    - `degradedByService` string
    - `expiresAt` string, date-time
    - `tokenLastRefreshedAt` string, date-time
    - `tokenRefreshErrorAt` string, date-time
    - `degradedAt` string, date-time
    - `degradedWindowStartedAt` string, date-time
    - `degradedLastErrorAt` string, date-time
    - `waActivationUpdatedAt` string, date-time
    - `degradedSignalCount` integer
    - `instagramResponsePolicy` object
      - `storyMentions` boolean, required
      - `storyReplies` boolean, required

## Other responses

- `default`: Structured error

---

[API](https://skmtc.dev/visitoai/apis/visito-m2m-api.md) - [All operations](https://skmtc.dev/visitoai/apis/visito-m2m-api/llms.txt) - [OpenAPI document](https://skmtc.dev/visitoai/apis/visito-m2m-api/revisions/98377d35c234?raw)
