# Webhooks

 - [Overview](https://developer.getparallax.com/api-documentation/swagger/webhooks/overview.md): ## Overview Webhooks allow your application to receive real-time HTTP notifications when events occur in Parallax. Instead of polling the API for changes, webhooks push data to your endpoint as soon a
 - [Setting Up Webhooks](https://developer.getparallax.com/api-documentation/swagger/webhooks/setting-up-webhooks.md): ## Setting Up Webhooks To receive webhooks, you need to create a webhook subscriber and subscribe to the topics you're interested in. See the [Webhook Subscribers API](/v1/webhook-subscribers) for com
 - [Step 1: Create a Webhook Subscriber](https://developer.getparallax.com/api-documentation/swagger/webhooks/step-1:-create-a-webhook-subscriber.md): ### Step 1: Create a Webhook Subscriber Send a POST request to create your webhook configuration: ```http POST /v1/webhook-subscribers Content-Type: application/json X-API-KEY: your-api-key { "cal
 - [Step 2: Subscribe to Topics](https://developer.getparallax.com/api-documentation/swagger/webhooks/step-2:-subscribe-to-topics.md): ### Step 2: Subscribe to Topics Subscribe to the event topics you want to receive: ```http POST /v1/webhook-subscribers/{id}/subscriptions Content-Type: application/json X-API-KEY: your-api-key {
 - [Verifying Webhook Signatures](https://developer.getparallax.com/api-documentation/swagger/webhooks/verifying-webhook-signatures.md): ## Verifying Webhook Signatures Every webhook request includes cryptographic headers that let you verify the request came from Parallax and hasn't been tampered with.
 - [Headers](https://developer.getparallax.com/api-documentation/swagger/webhooks/headers.md): ### Headers | Header | Description | | --- | --- | | `X-Parallax-Signature` | HMAC-SHA256 signature of the payload, prefixed with `sha256=` | | `X-Parallax-Timestamp` | Unix timestamp (seconds) when
 - [Verification Steps](https://developer.getparallax.com/api-documentation/swagger/webhooks/verification-steps.md): ### Verification Steps 1. Extract the `X-Parallax-Signature` and `X-Parallax-Timestamp` headers 2. Read the raw request body (the JSON payload) 3. Concatenate the timestamp and body: `{timestamp}.{bod
 - [Webhook Payload Format](https://developer.getparallax.com/api-documentation/swagger/webhooks/webhook-payload-format.md): ## Webhook Payload Format All webhooks use a consistent envelope structure: ```json { "Payload": { "Id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" }, "Topic": "project.created",
 - [Available Webhook Events](https://developer.getparallax.com/api-documentation/swagger/webhooks/available-webhook-events.md): ## Available Webhook Events | Topic | Description | Payload Fields | ModifiedProperties Values | | --- | --- | --- | --- | | `person.created` | A person was created | `Id` | — | | `person.modified` |
 - [Best Practices](https://developer.getparallax.com/api-documentation/swagger/webhooks/best-practices.md): ## Best Practices - **Always verify signatures** before processing webhook data to ensure requests are authentic - **Implement replay protection** by checking that the timestamp is recent - **Use cons
