# Listar paywalls

> Recupera una lista de paywalls de tu app.

## OpenAPI

```yaml
/api-specs/adapty-api.yaml get /api/v2/server-side-api/paywalls/
openapi: 3.1.0
info:
  title: API de servidor de Adapty
  version: 1.0.0
servers:
  - url: https://api.adapty.io
    description: Servidor de producción
paths:
  /api/v2/server-side-api/paywalls/:
    get:
      summary: Listar paywalls
      description: Recupera una lista de paywalls de tu app.
      operationId: listPaywalls
      tags:
        - Paywalls
      security:
        - apikeyAuth: []
      parameters:
        - name: page[number]
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
          description: Número de página para la paginación
        - name: page[size]
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          description: Número de elementos por página
      responses:
        "200":
          description: Paywalls recuperados correctamente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaywallListResponse"
              example:
                data:
                  - title: LlkTlizT
                    paywall_id: fd891d4f-5906-45b9-97c1-13cc3dc665df
                    use_paywall_builder: false
                    use_paywall_builder_legacy: false
                    updated_at: "2025-07-08T07:27:06.754527+00:00"
                    created_at: "2025-07-08T07:27:06.754541+00:00"
                    state: live
                    is_deleted: false
                    web_purchase_url: null
                    products:
                      - product_id: b95e9e51-a056-4eb6-9cf7-b75d139e7c3c
                        title: mFUQPcJQ
                        product_set: uncategorised
                        offer: null
                  - title: Premium Subscription
                    paywall_id: a1cf7850-1bb8-4151-8336-a4e588730c55
                    use_paywall_builder: true
                    use_paywall_builder_legacy: false
                    updated_at: "2025-07-28T08:15:13.722680+00:00"
                    created_at: "2025-07-25T13:40:01.789853+00:00"
                    state: live
                    is_deleted: false
                    web_purchase_url: https://example.com/purchase
                    products:
                      - product_id: b136422f-8153-402a-afbb-986929c68f6a
                        title: Premium Monthly
                        product_set: uncategorised
                        offer:
                          product_offer_id: e31a4296-f250-4faf-ac80-3cc93c2da8f5
                          title: Free Trial
                meta:
                  pagination:
                    count: 365
                    page: 1
                    pages: 183
        "400":
          description: Solicitud incorrecta
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                errors:
                  - source: page_size
                    errors:
                      - Invalid page_size parameter. Must be between 1 and 100.
                error_code: validation_error
                status_code: 400
        "401":
          description: No autorizado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                errors:
                  - Invalid API key
                error_code: unauthorized
                status_code: 401
        "500":
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
components:
  schemas:
    PaywallListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/PaywallListItem"
          description: Array de objetos de paywall
        meta:
          type: object
          properties:
            pagination:
              type: object
              properties:
                count:
                  type: integer
                  description: Número total de paywalls
                page:
                  type: integer
                  description: Número de página actual
                pages:
                  type: integer
                  description: Número total de páginas
              required:
                - count
                - page
                - pages
          required:
            - pagination
      required:
        - data
        - meta
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
                nullable: true
                description: Origen del error
              errors:
                type: array
                items:
                  type: string
                description: Array de mensajes de error
        error_code:
          type: string
          description: Nombre corto del error
        status_code:
          type: integer
          description: Código de estado HTTP
      required:
        - errors
        - error_code
        - status_code
    PaywallListItem:
      type: object
      properties:
        title:
          type: string
          description: El nombre del paywall, tal como está definido en tu Adapty Dashboard
        paywall_id:
          type: string
          format: uuid
          description: El identificador único del paywall
        use_paywall_builder:
          type: boolean
          description: Si el paywall utiliza el Paywall Builder
        use_paywall_builder_legacy:
          type: boolean
          description: Si el paywall utiliza el Paywall Builder heredado
        updated_at:
          type: string
          format: date-time
          description: Marca de tiempo de la última actualización del paywall
        created_at:
          type: string
          format: date-time
          description: Marca de tiempo de la creación del paywall
        state:
          type: string
          enum:
            - draft
            - live
            - inactive
            - archived
          description: El estado actual del paywall
        is_deleted:
          type: boolean
          description: Si el paywall está marcado como eliminado
        web_purchase_url:
          type: string
          format: uri
          nullable: true
          description: URL para compras web, si corresponde
        products:
          type: array
          items:
            type: object
            properties:
              product_id:
                type: string
                format: uuid
                description: El identificador único del producto
              title:
                type: string
                description: El título del producto
              product_set:
                type: string
                enum:
                  - weekly
                  - monthly
                  - trimonthly
                  - semiannual
                  - annual
                  - lifetime
                  - uncategorised
                  - nonsubscriptions
                  - two_months
                  - consumable
                description: La categoría del conjunto de productos
              offer:
                type: object
                nullable: true
                properties:
                  product_offer_id:
                    type: string
                    format: uuid
                    description: El identificador único de la oferta de producto
                  title:
                    type: string
                    description: El título de la oferta
                required:
                  - product_offer_id
                  - title
            required:
              - product_id
              - title
              - product_set
              - offer
          description: Array de objetos de producto con información sobre los productos del paywall
      required:
        - title
        - paywall_id
        - use_paywall_builder
        - use_paywall_builder_legacy
        - updated_at
        - created_at
        - state
        - is_deleted
        - products
  securitySchemes:
    apikeyAuth:
      type: apiKey
      name: Authorization
      in: header
      default: Api-Key {Your secret API key}
      description: |
        Las solicitudes a la API deben autenticarse con tu clave API secreta en la cabecera **Authorization**
        con el valor `Api-Key {your_secret_api_key}`, por ejemplo,
        `Api-Key secret_live_...`. Puedes encontrar esta clave en el Adapty Dashboard ->
        **App Settings** -> pestaña **General** -> sección **API keys**.
```
