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

# List message templates

> Retrieve a list of approved message templates for this phone number.

Templates must be approved by WhatsApp before they can be used.




## OpenAPI

````yaml /api/meta/whatsapp/openapi-whatsapp.yaml get /{business_account_id}/message_templates
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:
  /{business_account_id}/message_templates:
    parameters:
      - name: business_account_id
        in: path
        required: true
        description: WhatsApp Business Account ID
        schema:
          type: string
        example: '123456789012345'
    get:
      tags:
        - Templates
      summary: List message templates
      description: |
        Retrieve a list of approved message templates for this phone number.

        Templates must be approved by WhatsApp before they can be used.
      operationId: listTemplates
      parameters:
        - name: name
          in: query
          description: Filter by template name
          schema:
            type: string
          example: order_confirmation
        - name: status
          in: query
          description: Filter by template status
          schema:
            type: string
            enum:
              - APPROVED
              - PENDING
              - REJECTED
          example: APPROVED
        - name: category
          in: query
          description: Filter by template category
          schema:
            type: string
            enum:
              - AUTHENTICATION
              - MARKETING
              - UTILITY
        - name: language
          in: query
          description: Filter by language code
          schema:
            type: string
          example: en_US
        - name: limit
          in: query
          description: Maximum number of results (default 20, max 100)
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successfully retrieved templates
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Template ID
                          example: '1192339204654487'
                        name:
                          type: string
                          example: order_confirmation
                        language:
                          type: string
                          example: en_US
                        status:
                          type: string
                          enum:
                            - APPROVED
                            - PENDING
                            - REJECTED
                          example: APPROVED
                        category:
                          type: string
                          enum:
                            - AUTHENTICATION
                            - MARKETING
                            - UTILITY
                          example: UTILITY
                        previous_category:
                          type: string
                          description: Previous category if changed
                          example: ACCOUNT_UPDATE
                        components:
                          type: array
                          description: Template components (header, body, footer, buttons)
                  paging:
                    $ref: '#/components/schemas/Paging'
              example:
                data:
                  - id: '1192339204654487'
                    name: hello_world
                    previous_category: ACCOUNT_UPDATE
                    components:
                      - type: HEADER
                        format: TEXT
                        text: Hello World
                      - type: BODY
                        text: >-
                          Welcome and congratulations!! This message
                          demonstrates your ability to send a message
                          notification from WhatsApp Business Platform's Cloud
                          API. Thank you for taking the time to test with us.
                      - type: FOOTER
                        text: WhatsApp Business API Team
                    language: en_US
                    status: APPROVED
                    category: MARKETING
                  - id: '920070352646140'
                    name: seasonal_promotion
                    components:
                      - type: HEADER
                        format: TEXT
                        text: Fall Sale
                      - type: BODY
                        text: >-
                          Hi {{1}}, our Fall Sale is on! Use promo code {{2}}
                          Get an extra 25% off every order above $350!
                        example:
                          body_text:
                            - - Mark
                              - FALL25
                      - type: FOOTER
                        text: >-
                          Not interested in any of our sales? Tap Stop
                          Promotions
                      - type: BUTTONS
                        buttons:
                          - type: QUICK_REPLY
                            text: Stop promotions
                    language: en_US
                    status: APPROVED
                    category: MARKETING
                paging:
                  cursors:
                    before: MAZDZD
                    after: MjQZD
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Paging:
      type: object
      properties:
        cursors:
          $ref: '#/components/schemas/PaginationCursor'
    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
    PaginationCursor:
      type: object
      properties:
        before:
          type: string
          description: Cursor for previous page (Base64 encoded)
          example: >-
            eyJ2YWx1ZXMiOlsiMjAyNC0wMS0xNVQxMjozNDo1Ni4xMjM0NTZaIiwiMTIzNDUiXSwiY29sdW1ucyI6WyJjcmVhdGVkX2F0IiwiaWQiXX0=
        after:
          type: string
          description: Cursor for next page (Base64 encoded)
          example: >-
            eyJ2YWx1ZXMiOlsiMjAyNC0wMS0xNFQwOToyMTozMi43ODkwMTJaIiwiMTIzMjAiXSwiY29sdW1ucyI6WyJjcmVhdGVkX2F0IiwiaWQiXX0=
  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.

````