---
updatedAt: 2026-06-17T16:34:00.000Z
agentTools:
  projectIndex: https://docs.rocketreach.co/llms.txt
---

# Webhooks

Lookup results can be sent to a webhook for streamlined data flow

## Getting Started

### Create your webhook

Go to your RocketReach account [API Usage & Settings](https://rocketreach.co/account?section=nav_gen_api) page

<Image align="center" width="500px" src="https://files.readme.io/6a8a047d6ccb006174ba91379d82d645a631eda051a12a74222efb6c68070e91-Screenshot_2025-08-12_at_3.45.00_PM.png" />

Enter your webhook's URL and check the endpoints you wish to enable, then click `Create`.

<Image align="center" width="1000px" src="https://files.readme.io/7288accccd4afe0a305c146694f551dd27fb25da26a2f4bba11a80594f5a824c-Screenshot_2025-08-12_at_3.53.23_PM.png" />

Make sure the webhook is enabled and click `Test Webhook` to verify connection

### Send a lookup request

Create either a <Anchor label="People Lookup" target="_blank" href="/reference/people-lookup-api">People Lookup</Anchor> or <Anchor label="Bulk People Lookup" target="_blank" href="/reference/bulk-person-lookup-person-lookup-api">Bulk People Lookup</Anchor> request and include your desired webhook's ID in the request parameters. If no webhook ID is provided in the request, the value will default to your top-most enabled webhook.

#### Request Query Examples

##### People Lookup API

```json
{
  "id": 123456,
	"webhook_id": 1004,
}
```

##### Bulk People Lookup API

```json
{
  "queries": [

		{"id": 123456}, ...
  ],
	"webhook_id": 1004,
}
```

### Get response data

Response data sent to webhooks will always have the following format (or a list of these objects for bulk requests)

```json
{
	"profile_list": {
      "id": 1000,
      "name": "Example Profile List"
  },
  "id": 123456,
	...
}
```

With headers

```json
{
  "RR-Request-ID": "85c36d54-8c43-4a97-8a7d-782d8a0f938f",
	...
}
```

Use this `RR-Request-ID` to correlate your requests with responses received by the webhook

## Authentication

### Generate a webhook secret

Go to your RocketReach account [API Usage & Settings](https://rocketreach.co/account?section=nav_gen_api) page and find/create your webhook

Click `Generate Secret` or `Regenerate Secret` and await confirmation of a successful generation

Store the secret value for future use in authentication

### Verify your webhook data

Your response data will now contain the following header

```json
{
  "X-RocketReach-Signature": "h50yogIFeOJuOvaxOoJhtJ2WHOzqdKFsGG7p4f3lkwI=",
	...
}
```

Using your secret and the raw response body you can compute an expected secret value using the following code example

```python
import hashlib
import hmac
import base64

def verify_signature(secret, body, received_signature) -> bool:
	# secret: the secret associated with your webhook ID
	# body: the raw response body (bytes) recieved from RocketReach
	# received_signature: 'X-RocketReach-Signature' from the recieved headers
  # Compute HMAC-SHA256 of the body
  computed_hmac = hmac.new(
    secret.encode("utf-8"),
    body,
    hashlib.sha256
	).digest()
  # Base64 encode the result
  computed_signature = base64.b64encode(computed_hmac).decode("utf-8")
  # Use constant-time comparison to avoid timing attacks
  return hmac.compare_digest(computed_signature, received_signature)
```

A `True` response indicates the response was properly authenticated