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

# Webhook Events

> Webhook endpoint for receiving real-time events from Hookpulse

Hookpulse sends webhook events to your configured endpoint when resources are created, updated, or deleted.

## Setup

1. Navigate to your [webhook settings](https://hookpulse.io/signin) in the dashboard
2. Click "Add Webhook"
3. Enter your webhook URL
4. Select the events you want to receive
5. Save your webhook configuration

## Webhook signature

All webhook requests include a signature header for verification:

```
X-Hookpulse-Signature: sha256=...
```

Verify the signature using your webhook secret to ensure the request is from Hookpulse.

## Event types

| Event              | Description                              |
| ------------------ | ---------------------------------------- |
| `resource.created` | Triggered when a new resource is created |
| `resource.updated` | Triggered when a resource is updated     |
| `resource.deleted` | Triggered when a resource is deleted     |

## Example payload

<ResponseExample>
  ```json theme={null}
  {
    "event": "resource.created",
    "data": {
      "id": "res_1234567890",
      "name": "My New Resource",
      "type": "webhook",
      "created_at": "2024-01-01T00:00:00Z"
    },
    "timestamp": "2024-01-01T00:00:00Z"
  }
  ```
</ResponseExample>

## Response

Your webhook endpoint should return a `200 OK` status code to acknowledge receipt of the event. Hookpulse will retry failed webhook deliveries up to 3 times with exponential backoff.


## OpenAPI

````yaml POST /webhook
openapi: 3.0.3
info:
  title: Hookpulse API
  description: >-
    Complete API documentation for Hookpulse. Build powerful integrations with
    our RESTful API.
  version: 1.0.0
  contact:
    name: Hookpulse Support
    email: care@hookpulse.io
    url: https://hookpulse.io
servers:
  - url: https://api.hookpulse.io
    description: Production server
security:
  - apiKeyAuth: []
    brandUuidAuth: []
paths:
  /webhook:
    post:
      description: Webhook endpoint for receiving real-time events from Hookpulse
      requestBody:
        description: Webhook event payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookEvent'
      responses:
        '200':
          description: Webhook received successfully
components:
  schemas:
    WebhookEvent:
      required:
        - event
        - data
      type: object
      properties:
        event:
          description: Type of event
          type: string
          enum:
            - resource.created
            - resource.updated
            - resource.deleted
        data:
          description: Event data payload
          type: object
        timestamp:
          description: ISO 8601 timestamp of when the event occurred
          type: string
          format: date-time
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-hookpulse-api-key
      description: >-
        API key for authentication. Get this from your dashboard by selecting a
        brand and going to API Keys section.
    brandUuidAuth:
      type: apiKey
      in: header
      name: x-brand-uuid
      description: >-
        Brand UUID for authentication. Get this from your dashboard after adding
        a brand - it will be displayed in the UI.

````