RocketReach · AsyncAPI Specification
Rocketreach Webhooks
Version
View Spec
View on GitHub
B2BContact DataEmail LookupPhone LookupSales IntelligenceLead GenerationPeople SearchCompany SearchData EnrichmentProspectingRecruitingWebhookAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: https://docs.rocketreach.co/reference/webhooks
asyncapi_published: false
asyncapi_note: >-
RocketReach publishes NO AsyncAPI document. Probed the docs host, the RFC 9727 api-catalog linkset (which
advertises only the OpenAPI), and the github.com/rocketreach org — nothing. The event surface below is the
webhook catalog transcribed from RocketReach's own Webhooks page; it is deliberately NOT rendered as a
fabricated AsyncAPI spec.
summary: >-
RocketReach delivers asynchronous person-lookup results by HTTP POST to a customer-registered callback URL,
as the documented alternative to polling the check-status endpoints. Webhooks are created and managed in
Account Settings, are per-endpoint selectable, and can be test-fired from the UI. Payloads are HMAC-signed.
delivery:
transport: http
method: POST
direction: provider-to-consumer
registration:
ui: https://rocketreach.co/account?section=nav_gen_api
api: false
note: >-
Webhook endpoints are registered in the account UI, not through the API. Each registered URL gets an
integer webhook_id, can be enabled/disabled, test-fired, deleted, and given a signing secret.
selection:
parameter: webhook_id
scope: request-level
default: the top-most enabled webhook when webhook_id is omitted from the lookup request
retries_published: false
ordering_published: false
events:
- name: person.lookup.result
trigger: A People Lookup request (GET /person/lookup) completes asynchronously.
requesting_operations:
- create_person_lookup
- create_universal_person_lookup
payload: >-
The resolved person profile object — the same body the lookup endpoint would return — with an added
profile_list object carrying the list id and name the contact was filed under.
example: '{"profile_list": {"id": 1000, "name": "Example Profile List"}, "id": 123456}'
source: https://docs.rocketreach.co/reference/webhooks
- name: person.bulk_lookup.result
trigger: A Bulk People Lookup request (POST /bulkLookup) completes.
requesting_operations:
- create_person_bulk_lookup
- create_universal_person_bulk_lookup
payload: A LIST of the person.lookup.result objects, one per query in the batch.
source: https://docs.rocketreach.co/reference/webhooks
- name: webhook.test
trigger: The Test Webhook button in Account Settings.
payload: A basic JSON payload used only to verify connectivity.
source: https://docs.rocketreach.co/reference/webhooks
event_count: 3
headers:
- name: RR-Request-ID
description: UUID correlating the delivery back to the originating lookup request.
required: true
- name: X-RocketReach-Signature
description: Base64-encoded HMAC-SHA256 of the raw request body, keyed on the webhook's secret.
required: true
present_when: a secret has been generated for the webhook
security:
signature:
header: X-RocketReach-Signature
algorithm: HMAC-SHA256
encoding: base64
signed_content: raw response body bytes
secret_management: Generate / Regenerate Secret in Account Settings, per webhook
verification_sample: python (hmac.new + hmac.compare_digest), published by RocketReach
timestamp_header: null
replay_protection: >-
Incomplete. No timestamp or nonce is signed, so a captured delivery can be replayed; consumers should
de-duplicate on RR-Request-ID.
mtls: false
ip_allowlist_published: false
consumer_guidance:
- Register the callback URL and enable the endpoints you want before sending lookups.
- Pass webhook_id in the lookup request rather than relying on the top-most-enabled default.
- Verify X-RocketReach-Signature with a constant-time comparison before trusting the body.
- Use webhooks instead of polling /person/checkStatus to stay under the published rate limits.