> ## Documentation Index
> Fetch the complete documentation index at: https://developer.omni.z-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar plantillas

> Lista las plantillas de una WABA

## Conceptos

Devuelve todas las plantillas registradas en una WABA. La estructura de los `components` devueltos varía según la categoría y la configuración de cada plantilla.

<Note>
  El `wabaId` se obtiene a través del endpoint [Listar WABAs](/es/templates/list-businesses).
</Note>


## OpenAPI

````yaml es/templates/openapi.json GET /whatsapp/businesses/{wabaId}/templates
openapi: 3.1.0
info:
  title: Omni Z-API - API de plantillas
  description: API para gestionar las plantillas de mensaje de WhatsApp Business
  version: 1.0.0
servers:
  - url: https://api.omni.z-api.io
security:
  - bearerAuth: []
paths:
  /whatsapp/businesses/{wabaId}/templates:
    get:
      tags:
        - Plantillas
      summary: Listar plantillas
      description: >-
        Devuelve la lista de plantillas de una WABA. La estructura de los
        `components` varía según la categoría y la configuración de cada
        plantilla.
      operationId: listTemplates
      parameters:
        - name: wabaId
          in: path
          required: true
          description: ID de la WABA (obtenido con Listar WABAs)
          schema:
            type: string
            example: '428083093730937'
        - name: limit
          in: query
          required: false
          description: Cantidad de plantillas por página (paginación por cursor de Meta)
          schema:
            type: integer
            minimum: 1
            maximum: 100
            example: 25
        - name: status
          in: query
          required: false
          description: Filtra por estado de aprobación
          schema:
            type: string
            enum:
              - PENDING
              - APPROVED
              - REJECTED
            example: APPROVED
        - name: before
          in: query
          required: false
          description: Cursor de la página anterior, devuelto en `paging.cursors.before`
          schema:
            type: string
        - name: after
          in: query
          required: false
          description: Cursor de la página siguiente, devuelto en `paging.cursors.after`
          schema:
            type: string
      responses:
        '200':
          description: Lista de plantillas
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Template'
              example:
                data:
                  - id: '1900296177408890'
                    name: confirm_account
                    status: APPROVED
                    category: AUTHENTICATION
                    language: es_ES
                    parameter_format: POSITIONAL
                    message_send_ttl_seconds: 600
                    components:
                      - type: BODY
                        text: >-
                          Tu código de verificación es *{{1}}*. Por tu
                          seguridad, no lo compartas.
                        add_security_recommendation: true
                        example:
                          body_text:
                            - - '123456'
                      - type: BUTTONS
                        buttons:
                          - type: URL
                            text: Copiar código
                            url: >-
                              https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp{{1}}
                            example:
                              - >-
                                https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp123456
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Template:
      type: object
      properties:
        id:
          type: string
          description: ID de la plantilla
        name:
          type: string
          description: Nombre de la plantilla
        status:
          type: string
          description: Estado de aprobación
          enum:
            - PENDING
            - APPROVED
            - REJECTED
        category:
          type: string
          description: Categoría de la plantilla
          enum:
            - UTILITY
            - MARKETING
            - AUTHENTICATION
        language:
          type: string
          description: 'Idioma de la plantilla (p. ej.: es_ES, en_US)'
        parameter_format:
          type: string
          description: Formato de los parámetros
        message_send_ttl_seconds:
          type: integer
          description: Tiempo de vida del mensaje en segundos
        components:
          type: array
          description: Componentes de la plantilla (HEADER, BODY, FOOTER, BUTTONS)
          items:
            type: object
    Error:
      type: object
      properties:
        error:
          type: integer
          description: Código del error
        message:
          type: string
          description: Descripción del error
  responses:
    Unauthorized:
      description: Token no válido o ausente.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 401
            message: Unauthorized
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Secret Key generada en el panel de Seguridad de Omni Z-API

````