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

# Get call permission state

> Get the call permission state for a business phone number with a specific WhatsApp user.

**Proxy endpoint**: Proxies directly to Meta Graph API.

Returns the current permission status and available actions with their limits. Permission can be:
- **no_permission**: No calling permission granted
- **temporary**: Temporary permission with expiration time

Actions include:
- **send_call_permission_request**: Send permission request message
- **start_call**: Initiate a call

Each action has time-based limits (e.g., max 2 permission requests per 24 hours).




## OpenAPI

````yaml /api/meta/whatsapp/openapi-whatsapp.yaml get /{phone_number_id}/call_permissions
openapi: 3.1.0
info:
  title: Kapso Meta Proxy API
  version: 1.0.0
  description: >
    Kapso's Meta Proxy API provides a unified interface to WhatsApp Business
    Platform with enhanced features and Kapso-specific extensions.


    This API acts as a proxy layer between your application and WhatsApp,
    adding:

    - Simplified authentication with project-level API keys

    - Enhanced message metadata and tracking

    - Conversation management capabilities

    - Voice call integration

    - Extended contact and template management


    ## Base URL


    All API requests are made to: `https://api.kapso.ai/meta/whatsapp/v24.0`


    ## Authentication


    The API supports authentication via **X-API-Key header** (recommended):


    ```

    X-API-Key: your_project_api_key

    ```


    Alternative: Bearer token authentication is also supported for backward
    compatibility:


    ```

    Authorization: Bearer your_access_token

    ```


    Note: X-API-Key is the recommended authentication method for the Meta Proxy
    API.
  contact:
    name: Kapso Support
    url: https://kapso.ai
    email: dev@kap.so
servers:
  - url: https://api.kapso.ai/meta/whatsapp/v24.0
    description: Production server
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Messages
    description: Send and retrieve WhatsApp messages
  - name: Conversations
    description: Manage WhatsApp conversations
  - name: Contacts
    description: Manage WhatsApp contacts
  - name: Templates
    description: Manage message templates
  - name: Media
    description: Upload and retrieve media files
  - name: Calls
    description: Manage voice calls
  - name: Settings
    description: Account settings and configuration
  - name: Business Profile
    description: Business profile management
  - name: Phone Numbers
    description: Phone number management
  - name: Flows
    description: WhatsApp Flow management (Beta)
  - name: Block Users
    description: Block and unblock WhatsApp users
  - name: Usernames
    description: Reserve and manage WhatsApp business usernames
paths:
  /{phone_number_id}/call_permissions:
    parameters:
      - name: phone_number_id
        in: path
        required: true
        description: WhatsApp Business Phone Number ID
        schema:
          type: string
        example: '110987654321'
    get:
      tags:
        - Calls
      summary: Get call permission state
      description: >
        Get the call permission state for a business phone number with a
        specific WhatsApp user.


        **Proxy endpoint**: Proxies directly to Meta Graph API.


        Returns the current permission status and available actions with their
        limits. Permission can be:

        - **no_permission**: No calling permission granted

        - **temporary**: Temporary permission with expiration time


        Actions include:

        - **send_call_permission_request**: Send permission request message

        - **start_call**: Initiate a call


        Each action has time-based limits (e.g., max 2 permission requests per
        24 hours).
      operationId: getCallPermissions
      parameters:
        - name: user_wa_id
          in: query
          required: true
          description: WhatsApp ID of the user (phone number)
          schema:
            type: string
          example: '15551234567'
      responses:
        '200':
          description: Permissions retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                  - messaging_product
                  - permission
                  - actions
                properties:
                  messaging_product:
                    type: string
                    enum:
                      - whatsapp
                    example: whatsapp
                  permission:
                    type: object
                    required:
                      - status
                    properties:
                      status:
                        type: string
                        enum:
                          - no_permission
                          - temporary
                        description: Current permission status
                        example: temporary
                      expiration_time:
                        type: integer
                        description: >-
                          Unix timestamp when permission expires (only for
                          temporary status)
                        example: 1745343479
                  actions:
                    type: array
                    description: Available actions with their limits
                    items:
                      type: object
                      properties:
                        action_name:
                          type: string
                          enum:
                            - send_call_permission_request
                            - start_call
                          description: The action that can be performed
                          example: send_call_permission_request
                        can_perform_action:
                          type: boolean
                          description: Whether the action can be performed now
                          example: true
                        limits:
                          type: array
                          description: Time-based restrictions for this action
                          items:
                            type: object
                            properties:
                              time_period:
                                type: string
                                description: >-
                                  Time span in ISO 8601 format (e.g., PT24H for
                                  24 hours, P7D for 7 days)
                                example: PT24H
                              max_allowed:
                                type: integer
                                description: Maximum actions allowed in this time period
                                example: 1
                              current_usage:
                                type: integer
                                description: Current number of actions taken in this period
                                example: 0
                              limit_expiration_time:
                                type: integer
                                description: >-
                                  Unix timestamp when limit resets (only present
                                  when limit is reached)
                                example: 1745622600
              examples:
                temporary_permission:
                  summary: Temporary permission granted
                  value:
                    messaging_product: whatsapp
                    permission:
                      status: temporary
                      expiration_time: 1745343479
                    actions:
                      - action_name: send_call_permission_request
                        can_perform_action: true
                        limits:
                          - time_period: PT24H
                            max_allowed: 1
                            current_usage: 0
                          - time_period: P7D
                            max_allowed: 2
                            current_usage: 1
                      - action_name: start_call
                        can_perform_action: false
                        limits:
                          - time_period: PT24H
                            max_allowed: 5
                            current_usage: 5
                            limit_expiration_time: 1745622600
                no_permission:
                  summary: No permission granted
                  value:
                    messaging_product: whatsapp
                    permission:
                      status: no_permission
                    actions:
                      - action_name: send_call_permission_request
                        can_perform_action: true
                        limits:
                          - time_period: PT24H
                            max_allowed: 1
                            current_usage: 0
                      - action_name: start_call
                        can_perform_action: false
                        limits: []
        '400':
          description: Bad request (invalid parameters)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit reached (max 5 requests per second)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
            - type
            - code
          properties:
            message:
              type: string
              description: Human-readable error message
              example: Invalid phone number format
            type:
              type: string
              description: Error category
              example: OAuthException
            code:
              type: integer
              description: Error code
              example: 400
            error_subcode:
              type: integer
              description: More specific error code
              example: 1001
            fbtrace_id:
              type: string
              description: Facebook trace ID for debugging
              example: AXk7s_8dR4eVHp9Kq2MmNlO
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >
        Project API key for authentication. This is the recommended
        authentication method.


        Get your API key from the Kapso dashboard under Integrations > API keys.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        Bearer token authentication (alternative method).

        Note: X-API-Key authentication is recommended for the Meta Proxy API.

````