FullEnrich · AsyncAPI Specification
Fullenrich Webhooks
Version
View Spec
View on GitHub
B2B DataContact EnrichmentEmail FinderPhone FinderWaterfall EnrichmentSales IntelligencePeople SearchCompany SearchReverse Email LookupAgent ReadyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-14'
method: searched
source: https://docs.fullenrich.com/api/v2/general/webhooks
spec_type: WebhookCatalog
asyncapi_published: false
asyncapi_note: >-
FullEnrich publishes no AsyncAPI document. Probed the docs host, the llms.txt
index and the GitHub organization; no /asyncapi.yaml, event catalog or channel
spec exists. This file captures the webhook surface the provider does document,
rather than fabricating a spec on its behalf.
description: >-
FullEnrich's enrichment and reverse-email-lookup APIs are asynchronous, and
webhooks are the provider's recommended collection mechanism — polling is
explicitly discouraged. Two outbound events are documented, both signed with
HMAC-SHA1 and retried on failure.
transport: HTTPS POST callback to a caller-supplied URL
subscription_model: per-request — the callback URL is a field on the job submission, not a registered endpoint
registration_ui: none (no webhook management console documented)
events:
- name: batch_finished
parameter: webhook_url
trigger: >-
Fires once when the entire batch finishes, runs out of credits, or is
canceled.
applies_to:
- postContactBulkEnrich
- postContactBulkReverseEmail
payload_schema: '#/components/schemas/ResponseGetContactBulkEnrich'
payload_note: >-
Identical to the body returned by the GET results endpoint — status, cost,
and the full data array.
status_values: [FINISHED, CREDITS_INSUFFICIENT, CANCELED]
- name: contact_finished
parameter: webhook_events.contact_finished
trigger: >-
Fires immediately as each individual contact completes, without waiting for
the batch. Designed for real-time integrations.
applies_to:
- postContactBulkEnrich
payload_schema: '#/components/schemas/ResponseGetContactBulkEnrich'
payload_note: >-
Same envelope, with a single contact in the `data` array. `status` is
IN_PROGRESS because the batch is not finished.
combinable: >-
Can be used together with webhook_url — the caller receives one event per
contact plus a final batch event.
security:
signature_header: X-Signature-SHA1
algorithm: HMAC-SHA1
encoding: lowercase hex
signed_payload: the raw request body bytes (UTF-8), before any JSON parsing or re-serialization
secret: the workspace API key
verification_guidance: >-
Compute HMAC-SHA1 of the raw body keyed with the API key, hex-encode lowercase,
and compare in constant time. The docs publish verified examples in Node.js,
Python, PHP and Go.
observations:
- >-
HMAC-SHA1 is weaker than the HMAC-SHA256 that is now standard for webhook
signing across the industry.
- >-
The signing secret IS the API key rather than a dedicated signing secret, so
the credential that authenticates outbound calls also verifies inbound ones.
Rotating the API key silently breaks webhook verification until the receiver
is updated.
- >-
No timestamp is included in the signature, so the scheme does not defend
against replay on its own.
delivery:
retries: 5
retry_interval: every 1 minute
retry_trigger: any non-2xx response from the receiver
guarantee: >-
Documented as effectively "guaranteed delivery"; the provider's team can check
delivery logs on request. There is no self-serve delivery-log UI documented.
fallback: >-
'GET /contact/enrich/bulk/{enrichment_id}' within the 3-month retention window.
correlation:
mechanism: '`custom` object'
detail: >-
A caller-supplied string map (max 10 keys, 100 chars per value) is echoed back
unchanged in the webhook payload — the intended join key to a CRM record or
user id. Non-string values are rejected.
testing:
recommended_tool: https://webhook.site
detail: >-
The docs recommend a webhook.site temporary URL to inspect the payload shape
while integrating. See sandbox/fullenrich-sandbox.yml.
no_code_platforms:
detail: >-
Zapier, Make, Clay and n8n handle the webhook leg automatically; the docs tell
users of those platforms to skip webhook setup entirely.
gaps:
- No AsyncAPI document, so the event surface is not machine-readable.
- No webhook management/registration endpoint or console — URLs are per-request only.
- No documented event id or delivery id, so receivers cannot deduplicate a retried delivery.
- No timestamp in the signature scheme.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/fullenrich-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.