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

# List triggered notifications by webhook

> Retrieve all triggered notifications with delivery attempts to a webhook destination, with flexible filtering options to monitor, audit, and debug notification history. Results are ordered by the time of the first delivery attempt and limited to the most recent 30 days.

### Use this endpoint to:

- Identify whether notifications were triggered and delivered to webhook destinations when expected to debug issues
- Understand and audit the timeline of triggered notifications
- Monitor webhook destination health

### Key response fields:

Array of triggered notifications containing:

- ID of the specific triggered notification
- Webhook destination ID
- Customer ID
- Notification configuration ID and type
- `first_attempted_at`: Timestamp of the first delivery attempt to the webhook destination
- `last_attempted_at`: Timestamp of the latest delivery attempt
- Latest response status code
- Number of total delivery attempts to the webhook destination

### Usage guidelines:

- Use filters to narrow down results and reduce pagination
- Use the `notification_ids` filter to investigate triggered notifications for a specific notification configuration. Pass the configuration's ID (e.g., `8deed800-1b7a-495d-a207-6c52bac54dc9`), available as `notification_id` in delivery responses.
- Filter for system notifications using notification type rather than notification ID
- Use the [Get Triggered Notification and Delivery Attempts](/api-reference/webhooks/get-triggered-notification-and-delivery-attempts) endpoint to understand the total retry attempts for a specific triggered notification




## OpenAPI

````yaml /openapi.json post /v1/webhooks/{webhook_id}/triggered_notifications
openapi: 3.0.1
info:
  title: Metronome
  version: 1.0.0
servers:
  - url: https://api.metronome.com
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Webhooks
    description: >-
      Inspect webhook delivery history, notification payloads, and retry
      attempts for the last 30 days. See the [Webhooks
      guide](/guides/platform-configuration/setup-webhooks) for notification
      types and delivery behavior.
  - name: Customers
    description: >-
      [Customers](https://docs.metronome.com/provisioning/create-customers/) in
      Metronome represent your users for all billing and reporting. Use these
      endpoints to create, retrieve, update, and archive customers and their
      billing configuration.
  - name: Billable metrics
    description: >-
      [Billable
      metrics](https://docs.metronome.com/understanding-metronome/how-metronome-works#billable-metrics)
      in Metronome represent the various consumption components that Metronome
      meters and aggregates.
  - name: Usage
    description: >-
      [Usage
      events](https://docs.metronome.com/connecting-metronome/send-usage-data/)
      are the basis for billable metrics. Use these endpoints to send usage
      events to Metronome and retrieve aggregated event data.
  - name: Products
    description: Products are the items that customers purchase.
  - name: Rate cards
    description: Rate cards are used to define default pricing for products.
  - name: Contracts
    description: >-
      A contract defines a customer’s products, pricing, discounts, commitments,
      and more. Use these endpoints to create and update contracts data.
  - name: Credits and commits
    description: Credits and commits are used to manage customer balances.
  - name: Invoices
    description: >-
      [Invoices](https://docs.metronome.com/invoicing/) reflect how much a
      customer spent during a period, which is the basis for billing. Metronome
      automatically generates invoices based upon your pricing, packaging, and
      usage events. Use these endpoints to retrieve invoices.
  - name: Alerts
    description: >-
      [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
      customer spending, balances, and other billing factors. Use these
      endpoints to create, retrieve, and archive customer alerts. To view sample
      alert payloads by alert type, navigate
      [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
  - name: Custom fields
    description: >-
      [Custom fields](https://docs.metronome.com/integrations/custom-fields/)
      enable adding additional data to Metronome entities. Use these endpoints
      to create, retrieve, update, and delete custom fields.
  - name: Security
    description: >-
      [Security](https://docs.metronome.com/developer-resources/security/)
      endpoints allow you to retrieve security-related data.
  - name: Settings
    description: >-
      Use these endpoints to configure a billing API key, a webhook secret, or
      invoice finalization behavior.
  - name: Named schedules
    description: >-
      Named schedules are used for storing custom data that can change over
      time. Named schedules are often used in custom pricing logic.
paths:
  /v1/webhooks/{webhook_id}/triggered_notifications:
    post:
      tags:
        - Webhooks
      summary: List triggered notifications by webhook
      description: >
        Retrieve all triggered notifications with delivery attempts to a webhook
        destination, with flexible filtering options to monitor, audit, and
        debug notification history. Results are ordered by the time of the first
        delivery attempt and limited to the most recent 30 days.


        ### Use this endpoint to:


        - Identify whether notifications were triggered and delivered to webhook
        destinations when expected to debug issues

        - Understand and audit the timeline of triggered notifications

        - Monitor webhook destination health


        ### Key response fields:


        Array of triggered notifications containing:


        - ID of the specific triggered notification

        - Webhook destination ID

        - Customer ID

        - Notification configuration ID and type

        - `first_attempted_at`: Timestamp of the first delivery attempt to the
        webhook destination

        - `last_attempted_at`: Timestamp of the latest delivery attempt

        - Latest response status code

        - Number of total delivery attempts to the webhook destination


        ### Usage guidelines:


        - Use filters to narrow down results and reduce pagination

        - Use the `notification_ids` filter to investigate triggered
        notifications for a specific notification configuration. Pass the
        configuration's ID (e.g., `8deed800-1b7a-495d-a207-6c52bac54dc9`),
        available as `notification_id` in delivery responses.

        - Filter for system notifications using notification type rather than
        notification ID

        - Use the [Get Triggered Notification and Delivery
        Attempts](/api-reference/webhooks/get-triggered-notification-and-delivery-attempts)
        endpoint to understand the total retry attempts for a specific triggered
        notification
      operationId: listWebhookDeliveries-v1
      parameters:
        - name: webhook_id
          in: path
          required: true
          description: >-
            ID of the webhook destination. Only notifications from the same
            Metronome environment as your API token are returned.
          schema:
            type: string
            format: uuid
          example: eb3a41d4-ca42-4cc1-b184-d208ab56ed65
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListWebhookDeliveriesRequest'
            example:
              start_date: '2026-10-13T00:00:00Z'
              end_date: '2026-10-14T00:00:00Z'
              filters:
                notification_types:
                  - invoice.finalized
              limit: 25
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWebhookDeliveriesResponse'
              example:
                data:
                  - id: 4f98dc25-6be7-4b0c-b25b-946c19511c5d
                    webhook_id: eb3a41d4-ca42-4cc1-b184-d208ab56ed65
                    customer_id: 2055b7c2-e677-4446-81c7-e17136765f2c
                    notification_id: null
                    notification_type: invoice.finalized
                    first_attempted_at: '2026-10-13T23:59:00Z'
                    last_attempted_at: '2026-10-14T00:04:00Z'
                    last_response_status_code: 200
                    num_attempts: 2
                next_page: null
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message: Limit must be between 1 and 100.
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message: Resource not found
components:
  schemas:
    ListWebhookDeliveriesRequest:
      type: object
      required:
        - start_date
      properties:
        start_date:
          type: string
          format: date-time
          description: >-
            Earliest first attempt to include (inclusive), as an ISO 8601
            timestamp. Include a timezone to avoid ambiguity during filtering,
            e.g. 2026-10-13T00:00:00Z. Must be within the last 30 days and
            before end_date.
        end_date:
          type: string
          format: date-time
          description: >-
            Upper bound on first attempt time (exclusive), as an ISO 8601
            timestamp. Include a timezone to avoid ambiguity during filtering.
            Defaults to the current time. Must be after start_date and no more
            than 30 days later. Set explicitly and keep fixed when paginating.
        filters:
          $ref: '#/components/schemas/WebhookDeliveryFilters'
        limit:
          type: number
          multipleOf: 1
          minimum: 1
          maximum: 100
          default: 25
          description: >-
            Maximum number of notifications per page. Defaults to 25; must be an
            integer from 1 to 100.
        next_page:
          type: string
          description: >-
            Pagination cursor from the previous response. Omit for the first
            page. Pass unchanged in the request body with the same webhook_id,
            date range, and filters.
    ListWebhookDeliveriesResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          description: >-
            Matching triggered notifications, ordered by first_attempted_at
            descending. Empty when no triggered notifications match.
          items:
            $ref: '#/components/schemas/WebhookDelivery'
        next_page:
          type: string
          nullable: true
          description: >-
            Cursor for the next page of results. Null when there are no more
            results.
    Error:
      required:
        - message
      type: object
      properties:
        message:
          type: string
    WebhookDeliveryFilters:
      type: object
      description: >-
        Values within a filter are matched with OR; different filters are
        combined with AND. Omit a filter to include all values. Passing an empty
        array returns no results.
      properties:
        customer_ids:
          type: array
          description: >-
            Filter by customer IDs. Excludes notifications with a null
            customer_id.
          items:
            type: string
            format: uuid
        notification_types:
          type: array
          description: >-
            Filter by exact notification types, such as invoice.finalized or
            alerts.spend_threshold_reached.
          items:
            type: string
        notification_ids:
          type: array
          description: >-
            Filter by notification configuration IDs using notification_id
            values from delivery responses. Excludes notifications with a null
            notification_id.
          items:
            type: string
    WebhookDelivery:
      type: object
      description: >-
        A triggered notification with a summary of delivery attempts to a
        webhook destination.
      required:
        - id
        - webhook_id
        - customer_id
        - notification_id
        - notification_type
        - first_attempted_at
        - last_attempted_at
        - last_response_status_code
        - num_attempts
      properties:
        id:
          type: string
          format: uuid
          description: >-
            ID of the triggered notification. Shared across retries and used as
            triggered_notification_id to retrieve delivery details.
        webhook_id:
          type: string
          format: uuid
          description: ID of the webhook destination.
        customer_id:
          type: string
          format: uuid
          nullable: true
          description: ID of the associated customer, or null if not applicable.
        notification_id:
          type: string
          nullable: true
          description: >-
            ID of the notification configuration, or null if not applicable. Use
            this value in the notification_ids filter.
        notification_type:
          type: string
          description: >-
            Notification type, such as invoice.finalized or
            alerts.spend_threshold_reached.
          example: invoice.finalized
        first_attempted_at:
          type: string
          format: date-time
          description: >-
            Timestamp of the first delivery attempt to this webhook destination.
            The list endpoint filters by this timestamp and returns
            notifications from newest to oldest.
        last_attempted_at:
          type: string
          format: date-time
          description: >-
            Timestamp of the most recent recorded attempt. May be after end_date
            if the notification was retried later.
        last_response_status_code:
          type: number
          multipleOf: 1
          description: >-
            Response status code for the most recent attempt. Codes from 200 to
            299 indicate acknowledgment by the destination. Failed attempts may
            still be retried.
          example: 200
        num_attempts:
          type: number
          multipleOf: 1
          description: >-
            Total number of recorded delivery attempts for this notification to
            this webhook destination within the last 30 days, including the
            initial attempt and all retries. Includes attempts after end_date.
          example: 2
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````