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

# Check phone health

> Live health check via Meta APIs and Kapso services.



## OpenAPI

````yaml /api/platform/v1/openapi-platform.yaml get /whatsapp/phone_numbers/{phone_number_id}/health
openapi: 3.1.0
info:
  title: Kapso Platform API
  version: 0.2.0
  description: >
    Build WhatsApp messaging into your product. Manage customers, connect phone
    numbers, send broadcasts, and handle conversations.
servers:
  - url: https://api.kapso.ai/platform/v1
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Customers
    description: Manage customer accounts
  - name: Setup Links
    description: WhatsApp onboarding via embedded signup
  - name: Phone Numbers
    description: Connect and manage WhatsApp numbers
  - name: Webhooks
    description: Subscribe to WhatsApp events
  - name: Display Names
    description: Update WhatsApp business display names
  - name: Broadcasts
    description: |
      Send template messages at scale

      **Alpha**: This API is in alpha and subject to change
  - name: Conversations
    description: Manage conversation state
  - name: Media
    description: Upload media files for WhatsApp messaging
  - name: Users
    description: Manage project team members
  - name: Inbox Embeds
    description: Create and manage embeddable inbox access links
  - name: Webhook Deliveries
    description: View webhook delivery attempts and their status
  - name: External API Logs
    description: View logs of external API calls made by the project
  - name: Log Search
    description: Search Logs V2 events across API, Meta, workflow, and webhook sources
  - name: Provider Models
    description: List available AI provider models
  - name: WhatsApp Flows
    description: Build interactive WhatsApp Flows for surveys and forms
  - name: Contacts
    description: Manage WhatsApp contacts
paths:
  /whatsapp/phone_numbers/{phone_number_id}/health:
    parameters:
      - name: phone_number_id
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Phone Numbers
      summary: Check phone health
      description: Live health check via Meta APIs and Kapso services.
      operationId: getWhatsappPhoneNumberHealth
      responses:
        '200':
          description: Health status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsappPhoneNumberHealthResponse'
              examples:
                healthy:
                  summary: All checks pass
                  value:
                    status: healthy
                    timestamp: '2025-01-20T14:25:30Z'
                    checks:
                      phone_number_access:
                        passed: true
                        details:
                          verified_name: My Business
                          display_phone_number: +1 555-123-4567
                          quality_rating: GREEN
                          status: CONNECTED
                          throughput_tier: TIER_10K
                          id: '123456789012345'
                      messaging_health:
                        passed: true
                        overall_status: AVAILABLE
                        details:
                          can_send_message: AVAILABLE
                          entities:
                            - entity_type: PHONE_NUMBER
                              id: '123456789012345'
                              can_send_message: AVAILABLE
                            - entity_type: WABA
                              id: '987654321098765'
                              can_send_message: AVAILABLE
                            - entity_type: BUSINESS
                              id: '456789012345678'
                              can_send_message: AVAILABLE
                            - entity_type: APP
                              id: '789012345678901'
                              can_send_message: AVAILABLE
                      webhook_subscription:
                        passed: true
                        details:
                          app_id: '789012345678901'
                          subscribed: true
                          subscribed_fields:
                            - messages
                            - message_template_status_update
                      webhook_verified:
                        passed: true
                        details:
                          verified_at: '2025-01-15T10:30:00Z'
                          message: >-
                            Webhook successfully verified at 2025-01-15 10:30:00
                            UTC
                degraded:
                  summary: Limited messaging or webhook issues
                  value:
                    status: degraded
                    timestamp: '2025-01-15T10:00:00Z'
                    checks:
                      phone_number_access:
                        passed: true
                        details:
                          verified_name: Acme Corp
                          display_phone_number: +1 555-123-4567
                          quality_rating: GREEN
                          status: CONNECTED
                          throughput_tier: TIER_10K
                      messaging_health:
                        passed: false
                        overall_status: LIMITED
                        details:
                          can_send_message: LIMITED
                          entities:
                            - entity_type: PHONE_NUMBER
                              id: '1234567890'
                              can_send_message: LIMITED
                              additional_info:
                                - >-
                                  There is an issue with the payment method.
                                  Template sending and business-initiated
                                  conversations are blocked.
                                - >-
                                  You can still send and receive messages within
                                  the 24-hour window.
                      webhook_subscription:
                        passed: true
                        details:
                          app_id: '123456789'
                          subscribed: true
                          subscribed_fields:
                            - messages
                      webhook_verified:
                        passed: false
                        details:
                          verified_at: null
                          message: Webhook not yet verified by Meta
                unhealthy_payment_method:
                  summary: Payment method error (Meta billing issue)
                  description: Must be resolved in Meta Business Manager, not in Kapso
                  value:
                    status: unhealthy
                    timestamp: '2025-01-20T16:45:15Z'
                    checks:
                      phone_number_access:
                        passed: true
                        details:
                          verified_name: Demo Company
                          display_phone_number: +1 555-987-6543
                          quality_rating: GREEN
                          status: CONNECTED
                          throughput_tier: TIER_10K
                          id: '998877665544332'
                      messaging_health:
                        passed: false
                        overall_status: BLOCKED
                        details:
                          can_send_message: BLOCKED
                          entities:
                            - entity_type: PHONE_NUMBER
                              id: '998877665544332'
                              can_send_message: LIMITED
                              additional_info:
                                - >-
                                  Your display name has not been approved yet.
                                  Your message limit will increase after the
                                  display name is approved.
                            - entity_type: WABA
                              id: '556677889900112'
                              can_send_message: BLOCKED
                              errors:
                                - error_code: '141006'
                                  error_description: >-
                                    There is an error with the payment method.
                                    This will block business initiated
                                    conversations.
                                  possible_solution: >-
                                    There was an error with your payment method.
                                    Please add a new payment method to the
                                    account.
                            - entity_type: BUSINESS
                              id: '334455667788990'
                              can_send_message: LIMITED
                            - entity_type: APP
                              id: '112233445566778'
                              can_send_message: AVAILABLE
                      webhook_subscription:
                        passed: true
                        details:
                          app_id: '112233445566778'
                          subscribed: true
                          subscribed_fields:
                            - messages
                      webhook_verified:
                        passed: false
                        details:
                          verified_at: null
                          message: Webhook not yet verified by Meta
                unhealthy_invalid_token:
                  summary: Invalid OAuth token
                  description: User needs to reconnect WhatsApp Business Account
                  value:
                    status: unhealthy
                    timestamp: '2025-01-20T18:22:45Z'
                    checks:
                      phone_number_access:
                        passed: false
                        error: >-
                          Meta Graph API error: 400 - {"error" => {"message" =>
                          "Invalid OAuth access token - Cannot parse access
                          token", "type" => "OAuthException", "code" => 190,
                          "fbtrace_id" => "ABC123xyz456"}}
                      messaging_health:
                        passed: false
                        error: >-
                          Meta Graph API error: 400 - {"error" => {"message" =>
                          "Invalid OAuth access token - Cannot parse access
                          token", "type" => "OAuthException", "code" => 190,
                          "fbtrace_id" => "DEF789abc012"}}
                      webhook_subscription:
                        passed: false
                        error: >-
                          Meta Graph API error: 401 - {"error" => {"message" =>
                          "Invalid OAuth access token - Cannot parse access
                          token", "type" => "OAuthException", "code" => 190,
                          "fbtrace_id" => "GHI345def678"}}
                      webhook_verified:
                        passed: true
                        details:
                          verified_at: '2025-01-10T08:15:30Z'
                          message: >-
                            Webhook successfully verified at 2025-01-10 08:15:30
                            UTC
                error_response:
                  summary: Health check service error
                  value:
                    status: error
                    error: Service temporarily unavailable
                    timestamp: '2025-01-20T10:00:00Z'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    WhatsappPhoneNumberHealthResponse:
      type: object
      required:
        - status
        - timestamp
      properties:
        status:
          type: string
          enum:
            - healthy
            - degraded
            - unhealthy
            - error
        timestamp:
          type: string
          format: date-time
        error:
          type:
            - string
            - 'null'
        checks:
          type:
            - object
            - 'null'
          additionalProperties:
            type: object
            properties:
              passed:
                type: boolean
              details:
                type: object
                additionalProperties: true
              error:
                type: string
          description: >
            Individual check results. Typical checks:

            - phone_number_access: Meta API connectivity

            - messaging_health: Send/receive capability
            (AVAILABLE/LIMITED/BLOCKED)

            - webhook_subscription: WABA app subscription status

            - webhook_verified: Webhook verification status

            - token_validity: Access token validity (coexistence only)
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
  responses:
    UnauthorizedError:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFoundError:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````