> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visitoai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Read channel configuration and saved readiness

> Use a channel.id from list_channels or channelIds from a completed connection attempt. Inspect active/respondEnabled, provider type, activation state, token status, expiry and saved degraded codes/timestamps before changing configuration. These are saved signals, not a fresh provider probe. For live WhatsApp diagnostics use get_whatsapp_channel_health; for installation use get_webchat_channel_setup. No provider credentials or raw provider error text are returned. Requires `channels:read`.



## OpenAPI

````yaml /openapi.json get /channels/{channelId}
openapi: 3.0.3
info:
  title: Visito M2M API
  version: 1.0.0
  description: >-
    Tenant-scoped server-to-server API for channels, conversations, commerce,
    custom AI tools, and WhatsApp templates. Send operations are asynchronous
    and return queued acknowledgements. Expansion adds conversation controls,
    knowledge, sales opportunities, delivery status, reporting, and signed
    webhooks.
servers:
  - url: https://platform-api.visitoai.com/m2m/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Channels
  - name: Conversations
  - name: Commerce
  - name: Custom tools
  - name: WhatsApp templates
  - name: Properties
  - name: Knowledge
  - name: Sales CRM
  - name: Delivery
  - name: Reporting
  - name: Webhooks
paths:
  /channels/{channelId}:
    get:
      tags:
        - Channels
      summary: Read channel configuration and saved readiness
      description: >-
        Use a channel.id from list_channels or channelIds from a completed
        connection attempt. Inspect active/respondEnabled, provider type,
        activation state, token status, expiry and saved degraded
        codes/timestamps before changing configuration. These are saved signals,
        not a fresh provider probe. For live WhatsApp diagnostics use
        get_whatsapp_channel_health; for installation use
        get_webchat_channel_setup. No provider credentials or raw provider error
        text are returned. Requires `channels:read`.
      operationId: get_channel
      parameters:
        - name: channelId
          in: path
          required: true
          description: >-
            Stored channel.id from list_channels or get_channel. Provider page,
            phone, account and WABA IDs are not this ID.
          schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
      responses:
        '200':
          description: Read channel configuration and saved readiness
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelDetailResponse'
        default:
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    ChannelDetailResponse:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/Channel'
      additionalProperties: false
      required:
        - channel
    Channel:
      type: object
      required:
        - id
        - tenantId
        - propertyIds
        - provider
        - type
        - active
        - respondEnabled
        - degraded
        - identifiers
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
        tenantId:
          type: string
        propertyId:
          type: string
        propertyIds:
          type: array
          items:
            type: string
        provider:
          type: string
          enum:
            - meta
            - native
            - tiktok
        type:
          type: string
          enum:
            - whatsapp
            - instagram
            - messenger
            - webchat
            - tiktok
        name:
          type: string
        active:
          type: boolean
        respondEnabled:
          type: boolean
        degraded:
          type: boolean
        identifiers:
          type: object
          properties:
            phoneNumberId:
              type: string
            phoneNumber:
              type: string
            wabaId:
              type: string
            igAccountId:
              type: string
            pageId:
              type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        externalId:
          type: string
        appId:
          type: string
        metaAppKey:
          type: string
        igGraphApi:
          type: string
        waConnectionMode:
          type: string
        waActivationStatus:
          type: string
        tokenStatus:
          type: string
        tokenRefreshErrorCode:
          type: string
        degradedCode:
          type: string
        degradedByService:
          type: string
        expiresAt:
          type: string
          format: date-time
        tokenLastRefreshedAt:
          type: string
          format: date-time
        tokenRefreshErrorAt:
          type: string
          format: date-time
        degradedAt:
          type: string
          format: date-time
        degradedWindowStartedAt:
          type: string
          format: date-time
        degradedLastErrorAt:
          type: string
          format: date-time
        waActivationUpdatedAt:
          type: string
          format: date-time
        degradedSignalCount:
          type: integer
        instagramResponsePolicy:
          type: object
          properties:
            storyMentions:
              type: boolean
            storyReplies:
              type: boolean
          additionalProperties: false
          required:
            - storyMentions
            - storyReplies
      additionalProperties: false
      description: >-
        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.
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: M2M_AUTH_INSUFFICIENT_SCOPE
            message:
              type: string
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: M2M_AUTH_INSUFFICIENT_SCOPE
          message: M2M credential does not have required scope.
          details:
            requiredScopes:
              - conversations:write
            missingScopes:
              - conversations:write
  responses:
    Error:
      description: Structured error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Visito M2M API key
      description: Server-side tenant-scoped credential created from Build > API Keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.