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

# List Webhook Events

> List past webhook dispatch events for an integration. Requires `manage-integrations` ability.

# List Webhook Events

Retrieve a paginated list of webhook dispatch events for a specific integration.

## Authentication & Scope

This endpoint requires a **Personal Access Token** with the `manage-integrations` ability.

## Request

<ParamField path="form" type="number" required>
  The ID of the form containing the webhook.
</ParamField>

<ParamField path="integrationid" type="number" required>
  The ID of the webhook integration for which to list events.
</ParamField>

```http theme={null}
GET /open/forms/{form}/integrations/{integrationid}/events HTTP/1.1
Host: api.opnform.com
Authorization: Bearer <token>
```

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET 'https://api.opnform.com/open/forms/123/integrations/42/events' \
    -H 'Authorization: Bearer YOUR_PAT'
  ```
</RequestExample>

## Response

`200 OK` – Returns an array of event objects, ordered by creation date (newest first).

<ResponseExample>
  ```json Success theme={null}
  [
    {
      "id": 1001,
      "integration_id": 42,
      "event": "submission.created",
      "status": "success",
      "response_code": 200,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "id": 1000,
      "integration_id": 42,
      "event": "submission.created",
      "status": "failed",
      "response_code": 500,
      "error_message": "Internal Server Error",
      "created_at": "2024-01-15T10:25:00Z"
    },
    {
      "id": 999,
      "integration_id": 42,
      "event": "submission.created",
      "status": "success",
      "response_code": 200,
      "created_at": "2024-01-15T10:20:00Z"
    }
  ]
  ```
</ResponseExample>

## Event object properties

<ResponseField name="id" type="number">
  Unique identifier for the event record.
</ResponseField>

<ResponseField name="integration_id" type="number">
  The ID of the webhook integration that generated this event.
</ResponseField>

<ResponseField name="event" type="string">
  The type of event. Currently: `"submission.created"`.
</ResponseField>

<ResponseField name="status" type="string">
  Result of the webhook dispatch. Values: `"success"`, `"failed"`, `"timeout"`.
</ResponseField>

<ResponseField name="response_code" type="number | null">
  HTTP status code returned by your webhook endpoint (if applicable).
</ResponseField>

<ResponseField name="error_message" type="string | null">
  Error details if the webhook dispatch failed.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp of when the webhook was dispatched.
</ResponseField>

## Error responses

`403 Forbidden` – The token does not have `manage-integrations` ability or insufficient form permissions.

`404 Not Found` – Form or integration not found.

## Use cases

* **Debugging**: Check recent events to verify your webhook is receiving requests.
* **Monitoring**: Track success/failure rates to identify reliability issues.
* **Audit trail**: Review when submissions were sent to your endpoint.


## OpenAPI

````yaml get /open/forms/{form}/integrations/{integrationid}/events
openapi: 3.0.1
info:
  title: OpnForm API
  description: API for interacting with OpnForm, primarily used for Zapier integration
  version: 1.0.0
servers:
  - url: https://api.opnform.com
security:
  - bearerAuth: []
tags:
  - name: Workspaces
    description: Create and manage workspaces.
  - name: Workspace Users
    description: Manage users within a workspace.
  - name: Forms
    description: Manage and retrieve forms.
  - name: Submissions
    description: Access and manage form submissions.
  - name: Integrations
    description: Manage form integrations (webhooks) via API.
  - name: Zapier
    description: Legacy endpoints for the Zapier integration.
paths:
  /open/forms/{form}/integrations/{integrationid}/events:
    get:
      tags:
        - Integrations
      summary: List Webhook Events
      description: >-
        List past webhook dispatch events for an integration. Requires
        `manage-integrations` ability.
      parameters:
        - name: form
          in: path
          required: true
          schema:
            type: number
            description: The ID of the form.
        - name: integrationid
          in: path
          required: true
          schema:
            type: number
            description: The ID of the integration.
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IntegrationEvent'
        '403':
          description: Forbidden – insufficient permissions
        '404':
          description: Form or integration not found
      security:
        - bearerAuth: []
components:
  schemas:
    IntegrationEvent:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier for the event record.
          readOnly: true
        integration_id:
          type: number
          description: The ID of the webhook integration that generated this event.
          readOnly: true
        event:
          type: string
          description: The type of event.
          example: submission.created
        status:
          type: string
          enum:
            - success
            - failed
            - timeout
          description: Result of the webhook dispatch.
        response_code:
          type: number
          nullable: true
          description: HTTP status code returned by the webhook endpoint.
        error_message:
          type: string
          nullable: true
          description: Error details if the webhook dispatch failed.
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the webhook was dispatched.
          readOnly: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Personal Access Token
      x-bearer-scopemap:
        workspaces-read: Read access to workspaces
        workspaces-write: Write access to workspaces
        workspace-users-read: Read access to workspace users
        workspace-users-write: Write access to workspace users
        forms-read: Read access to forms
        forms-write: Write access to forms
        manage-integrations: Manage form integrations (webhooks)

````