> ## 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 webchat installation and configuration

> Use only for a discovered webchat channel. Returns the existing native public URL, installation snippet, widget configuration and setupState. The human installs the snippet on their website; no OAuth is needed. snippet_not_installed and firstSeenAt/lastSeenAt are installation evidence, not guest message delivery. Requires a current admin-owned credential to reuse the protected native setup reader. Requires `channels:read`.



## OpenAPI

````yaml /openapi.json get /channels/{channelId}/webchat
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}/webchat:
    get:
      tags:
        - Channels
      summary: Read webchat installation and configuration
      description: >-
        Use only for a discovered webchat channel. Returns the existing native
        public URL, installation snippet, widget configuration and setupState.
        The human installs the snippet on their website; no OAuth is needed.
        snippet_not_installed and firstSeenAt/lastSeenAt are installation
        evidence, not guest message delivery. Requires a current admin-owned
        credential to reuse the protected native setup reader. Requires
        `channels:read`.
      operationId: get_webchat_channel_setup
      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 webchat installation and configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelWebchatSetup'
        default:
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    ChannelWebchatSetup:
      type: object
      properties:
        channelId:
          type: string
        publicUrl:
          type: string
        tenantSlug:
          type: string
        setupState:
          type: string
        scriptUrl:
          type: string
        embedUrl:
          type: string
        installSnippet:
          type: string
        availability:
          type: object
          properties:
            available:
              type: boolean
            tenantSlug:
              type: string
            reason:
              type: string
          additionalProperties: false
          required:
            - available
        settings:
          type: object
          properties:
            themeColorHex:
              type: string
            launcherLabel:
              type: string
            headerTitle:
              type: string
            side:
              type: string
            sizePreset:
              type: string
            showLauncherLabel:
              type: boolean
            showPoweredByBranding:
              type: boolean
            bottomOffsetPx:
              type: integer
            prechat:
              type: object
              properties:
                enabledFields:
                  type: object
                  properties:
                    name:
                      type: boolean
                    email:
                      type: boolean
                    phone:
                      type: boolean
                  additionalProperties: false
                requirementMode:
                  type: string
                validationPolicy:
                  type: string
              additionalProperties: false
            starterPrompts:
              type: object
              properties:
                mode:
                  type: string
              additionalProperties: false
            launcherAction:
              type: object
              properties:
                mode:
                  type: string
                targetChannelId:
                  type: string
                whatsappPrefillText:
                  type: string
              additionalProperties: false
          additionalProperties: false
        brandingRemoval:
          type: object
          properties:
            canHide:
              type: boolean
            requiredTier:
              type: string
          additionalProperties: false
        launcherActionResolved:
          type: object
          properties:
            type:
              type: string
            icon:
              type: string
            url:
              type: string
            fallbackReason:
              type: string
          additionalProperties: false
        firstSeenAt:
          type: string
          format: date-time
        lastSeenAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
        - channelId
        - availability
        - setupState
        - settings
        - brandingRemoval
        - launcherActionResolved
    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.