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

# Webhook

AsyncAPI-style webhook or event delivery header with payload fields, signature metadata, retries, and delivery guarantees.

**Interactive playground** For isolated previews, theme switching, and sandbox editing, open [the Webhook playground on holydocs.com](https://holydocs.com/components/webhook).

## When to use

Use this component when endpoint documentation needs explicit request, response, schema, or lifecycle metadata.

## Live Examples

Every example below renders the real component directly inside HolyDocs, followed by the exact MDX you can paste into a page.

### Published Event

Webhook payload reference with nested fields.

**Project published webhook**

**id**

Unique event identifier. Use this to deduplicate retries safely.
  **type**

Event name for routing and dispatch inside your consumer.
  **project**

Embedded snapshot of the published project.
    **project.id**

Internal project identifier.
    **project.url**

Canonical URL of the freshly published docs site.

~~~mdx
<Webhook
  title="Project published webhook"
  event="project.published"
  method="POST"
  endpoint="https://example.com/webhooks/holydocs"
  delivery="At least once"
  signature="x-holydocs-signature"
  retries="3 attempts over 10 minutes"
  contentType="application/json"
>
  <EventField name="id" type="string" required>
    Unique event identifier. Use this to deduplicate retries safely.
  </EventField>
  <EventField name="type" type="string" required>
    Event name for routing and dispatch inside your consumer.
  </EventField>
  <EventField name="project" type="object" required>
    Embedded snapshot of the published project.
    <EventField name="project.id" type="string" required>
      Internal project identifier.
    </EventField>
    <EventField name="project.url" type="string" required>
      Canonical URL of the freshly published docs site.
    </EventField>
  </EventField>
</Webhook>
~~~

## Props

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `event` | `string` | `--` | Event name emitted by the provider. |
| `endpoint` | `string` | `--` | Target endpoint or callback URL pattern. |
| `signature` | `string` | `--` | Signature header or verification note. |
| `delivery` | `string` | `--` | Delivery guarantee summary. |

## Usage

Start from this baseline shape and then tailor the copy, data, or nesting to the page you are writing.

~~~mdx
<Webhook
  title="Project published webhook"
  event="project.published"
  method="POST"
  endpoint="https://example.com/webhooks/holydocs"
  delivery="At least once"
  signature="x-holydocs-signature"
  retries="3 attempts over 10 minutes"
  contentType="application/json"
>
  <EventField name="id" type="string" required>
    Unique event identifier. Use this to deduplicate retries safely.
  </EventField>
  <EventField name="type" type="string" required>
    Event name for routing and dispatch inside your consumer.
  </EventField>
  <EventField name="project" type="object" required>
    Embedded snapshot of the published project.
    <EventField name="project.id" type="string" required>
      Internal project identifier.
    </EventField>
    <EventField name="project.url" type="string" required>
      Canonical URL of the freshly published docs site.
    </EventField>
  </EventField>
</Webhook>
~~~

## Tips

- Keep naming and ordering consistent across fields, examples, and lifecycle notes so readers do not have to re-parse the endpoint surface on every page.
- Document the happy path and the sharp edges together. Request shape alone is not enough without auth, errors, and retry guidance.
- If a component renders into the right panel, verify the page on desktop width so you can confirm the supporting example is visible where readers expect it.

## Related Components

**[ParamField](/components/param-field)**

Documents a request parameter — path, query, or body — with type, requirement status, and description.
**[ResponseField](/components/response-field)**

Documents a field in an API response body with its name, type, and description.
**[Expandable](/components/expandable)**

Collapsible section for nested API fields, keeping complex response shapes readable.

## More

- Interactive playground: [Webhook on holydocs.com](https://holydocs.com/components/webhook)
- Component library index: [/components](/components)