> ## Documentation Index
> Fetch the complete documentation index at: https://bobprince-78964c2b.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Events

> A single webhook request captured by Hookdrop, including its payload, headers, and delivery status.

An event is a single HTTP request that a webhook provider sent to one of your [endpoints](/concepts/endpoints). Hookdrop captures every request in full and stores it so you can inspect, search, and replay it at any time.

## What an event contains

| Field           | Description                                                          |
| --------------- | -------------------------------------------------------------------- |
| **Method**      | The HTTP method of the request — typically `POST`                    |
| **Headers**     | All request headers, including any signature headers from the sender |
| **Body**        | The raw request payload                                              |
| **Source IP**   | The IP address the request originated from                           |
| **Status**      | The current delivery status (see below)                              |
| **Received at** | The exact timestamp when Hookdrop captured the request               |

## Event statuses

Every event moves through a status lifecycle as Hookdrop attempts to forward it to your [destinations](/concepts/destinations).

| Status        | Meaning                                                                                |
| ------------- | -------------------------------------------------------------------------------------- |
| `received`    | Hookdrop captured the request. Delivery has not been attempted yet, or is in progress. |
| `delivered`   | At least one delivery attempt to a destination succeeded (2xx response).               |
| `failed`      | A delivery attempt failed. Hookdrop will retry automatically.                          |
| `dead_letter` | All retry attempts were exhausted. The event requires manual replay.                   |

<Note>
  An event is marked `delivered` as soon as any destination returns a successful response. Events with multiple destinations may still have individual delivery failures for other destinations.
</Note>

For details on what happens when delivery fails, see [Retries & Dead Letter](/concepts/retries).

## Search and filter events

From the endpoint detail page in the dashboard, use the filter controls to narrow down your event list.

<Tabs>
  <Tab title="By status">
    Select a status from the **Status** dropdown to show only events in that state — for example, filter by `dead_letter` to find all events that need replaying.
  </Tab>

  <Tab title="By date range">
    Use the **From** date picker to limit results to events received after a specific point in time. Combine this with the status filter to narrow down further.
  </Tab>

  <Tab title="By payload content">
    Type into the **Search** box to search within event payloads. This maps to the `q` query parameter in the API.

    For example, searching `stripe` will return events whose body contains that string:

    ```bash theme={null}
    GET /api/endpoints/:id/events?q=stripe
    ```
  </Tab>
</Tabs>

## View an event's full detail

Click any event in the list to open its detail view. There you can see:

* **Headers tab** — every request header exactly as received
* **Payload tab** — the raw request body with syntax highlighting
* **Deliveries tab** — a log of every forwarding attempt, including the response code, response body, and timestamp from your destination server

<Tip>
  Check the Deliveries tab first when debugging a failed event. The response body from your server often explains exactly why the delivery failed.
</Tip>

## Manage events with the API

You can list events, retrieve individual events, trigger replays, and fetch delivery logs programmatically. See the [Events API reference](/api-reference/events).
