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

# Get delivery logs

> Returns recent webhook delivery attempts for the authenticated paywall. Filter by subscription, status, event type, or adjust the number of records returned.




## OpenAPI

````yaml GET /webhooks/logs
openapi: 3.1.0
info:
  title: Paywalls.ai API
  description: >
    The Paywalls.ai API enables developers to integrate monetization and access
    control for OpenAI-compatible LLMs.


    This proxy service supports multiple pricing strategies—including
    per-request, token-based, and subscription models—while maintaining full
    compatibility with the OpenAI API format.


    Requests are automatically checked for user authorization and balance. If
    the user is not connected to the paywall, or lacks sufficient balance, the
    API will return actionable links for onboarding or top-up.


    Use this API to monetize your AI-powered apps and services with minimal
    effort.


    Visit [paywalls.ai](https://docs.paywalls.ai) for full documentation and
    setup guides.
  version: 1.0.0
servers:
  - url: https://api.paywalls.ai/v1
    description: Primary production server
security:
  - ApiKeyAuth: []
tags:
  - name: Chat
    description: >
      OpenAI-compatible chat completion endpoint that enforces paywall logic
      before proxying the request to a model provider.


      Automatically checks user connection, balance, and performs charging.
      Supports streaming and non-streaming completions.
  - name: Models
    description: >
      Retrieve metadata and pricing information about the LLM models supported
      by the proxy.


      Includes prompt and completion pricing, per-request costs, and display
      details for UI integration.
  - name: User
    description: >
      Endpoints for managing user sessions, balance, and charging status.


      Includes functionality for connecting to or disconnecting from the
      paywall, checking balance, initiating top-ups, and issuing manual charges.
  - name: Webhooks
    description: >
      Manage webhook subscriptions and inspect delivery activity for your
      paywall integrations.
paths:
  /webhooks/logs:
    get:
      tags:
        - Webhooks
      summary: List webhook delivery logs
      description: >
        Returns recent webhook delivery attempts for the authenticated paywall.
        Filter by subscription, status, event type, or adjust the number of
        records returned.
      parameters:
        - in: query
          name: subscriptionId
          required: false
          description: Limit results to deliveries tied to a specific subscription.
          schema:
            type: string
        - in: query
          name: status
          required: false
          description: Filter by delivery status.
          schema:
            type: string
            enum:
              - pending
              - success
              - error
        - in: query
          name: eventType
          required: false
          description: Filter by a specific event type key (e.g. `paywall.updated`).
          schema:
            type: string
        - in: query
          name: limit
          required: false
          description: Number of records to return (default 20, max 100).
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Webhook delivery attempts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  logs:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookDeliveryLog'
                required:
                  - logs
components:
  schemas:
    WebhookDeliveryLog:
      type: object
      description: Details about a webhook delivery attempt.
      properties:
        id:
          type: string
        subscriptionId:
          type: string
        status:
          type: string
          enum:
            - pending
            - success
            - error
        attempts:
          type: integer
        lastAttemptAt:
          type: string
          format: date-time
        nextRetryAt:
          type: string
          format: date-time
        responseCode:
          type: integer
        responseLatencyMs:
          type: integer
        error:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        event:
          $ref: '#/components/schemas/PaywallEvent'
      required:
        - id
        - subscriptionId
        - status
        - attempts
        - createdAt
        - updatedAt
        - event
    PaywallEvent:
      type: object
      description: Paywall event payload that triggered the webhook delivery.
      properties:
        id:
          type: string
        paywallId:
          type: string
        ownerUserId:
          type: string
        type:
          type: string
          description: Event key (see the `webhooks` section for the full catalog).
          enum:
            - paywall.updated
            - paywall.archived
            - paywall.secret.rotated
            - paywall.integration.connected
            - paywall.integration.disconnected
            - paywall.integration.stripe.webhook.rotated
            - paywall.authorization.requested
            - paywall.authorization.completed
            - paywall.authorization.revoked
            - paywall.authorization.declined
            - paywall.balance.deposit.created
            - paywall.balance.topup.link.created
            - paywall.balance.trial.granted
            - paywall.balance.charge.created
            - paywall.balance.charge.completed
            - paywall.balance.charge.failed
            - paywall.usage.charge.created
            - paywall.usage.charge.deferred
            - paywall.usage.rate.limited
            - paywall.balance.depleted
            - paywall.request.blocked
            - paywall.stripe.checkout.session.completed
            - paywall.proxy.request.started
            - paywall.proxy.request.completed
            - paywall.proxy.request.failed
            - paywall.proxy.request.canceled
            - paywall.proxy.request.blocked
        version:
          type: string
        createdAt:
          type: string
          format: date-time
        status:
          type: string
        attempts:
          type: integer
        data:
          type: object
          additionalProperties: true
          description: >-
            Event-specific payload delivered with the webhook. Structure depends
            on the event type.
        metadata:
          type: object
          additionalProperties: true
        trigger:
          type: object
          additionalProperties: true
        subject:
          type: object
          additionalProperties: true
      required:
        - id
        - paywallId
        - type
        - version
        - createdAt
        - status
        - attempts
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer

````