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

# Check live WhatsApp provider health

> Use only for a discovered WhatsApp channel. Runs the existing bounded Meta health reads plus binding check: phone ownership, app subscription, phone quality/verification and WABA status. Unknown/provider_check_unavailable means unavailable evidence, not healthy. This does not send messages or repair the connection. Inspect get_channel for activation and saved diagnostics; use reconcile_whatsapp_channel with dry_run before an explicitly requested repair. Requires `channels:read`.



## OpenAPI

````yaml /openapi.json get /channels/{channelId}/whatsapp/health
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}/whatsapp/health:
    get:
      tags:
        - Channels
      summary: Check live WhatsApp provider health
      description: >-
        Use only for a discovered WhatsApp channel. Runs the existing bounded
        Meta health reads plus binding check: phone ownership, app subscription,
        phone quality/verification and WABA status.
        Unknown/provider_check_unavailable means unavailable evidence, not
        healthy. This does not send messages or repair the connection. Inspect
        get_channel for activation and saved diagnostics; use
        reconcile_whatsapp_channel with dry_run before an explicitly requested
        repair. Requires `channels:read`.
      operationId: get_whatsapp_channel_health
      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: Check live WhatsApp provider health
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsAppChannelHealth'
        default:
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    WhatsAppChannelHealth:
      type: object
      properties:
        channelId:
          type: string
        phoneNumberId:
          type: string
        degradedHint:
          type: boolean
        connection:
          type: object
          properties:
            status:
              type: string
            subscription:
              type: string
            phoneOwnership:
              type: string
            binding:
              type: string
            checkedAt:
              type: string
              format: date-time
            errorCode:
              type: string
          additionalProperties: false
          required:
            - status
            - subscription
            - phoneOwnership
            - binding
            - checkedAt
        phone:
          type: object
          properties:
            qualityRating:
              type: string
            codeVerificationStatus:
              type: string
            verifiedName:
              type: string
            displayPhoneNumber:
              type: string
            throughputLevel:
              type: string
            nameStatus:
              type: string
          additionalProperties: false
        waba:
          type: object
          properties:
            wabaId:
              type: string
            name:
              type: string
            status:
              type: string
            currency:
              type: string
            country:
              type: string
            businessVerificationStatus:
              type: string
          additionalProperties: false
      additionalProperties: false
      required:
        - channelId
        - phoneNumberId
        - degradedHint
        - connection
    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.