Asynchronous Single Contact Enrichment
Enrich a single contact record with email, phone, and / or personal email data
enrichment_id and status: "pending"; the waterfall
runs asynchronously in the background.
When to use this endpoint
Use the async endpoint when:- You can accept results via webhook, or you can poll for them later.
- You’re enriching at scale and don’t want to hold an HTTP connection per contact.
- You want to retain the enrichment result on the contact record for later retrieval via
GET /contacts/{id}.
Enrichment Types
Passenrichment_type as an array containing one of:
["email"]— Find and validate the professional email["phone"]— Find phone numbers (requireslinkedin_url)["personal_email"]— Find a personal email (requireslinkedin_urland account-level consent — see below)
personal_email requires the authenticated user to have
consented to personal email enrichment in their account settings.
If consent is missing, the API responds with 422 Unprocessable Entity
and the message "You can't use the personal email enrichment feature without consenting with our terms of use". This consent gate is required
for GDPR compliance.Required Fields
firstnamelastnameenrichment_typedomainorcompany_name(whenenrichment_typeis["email"])linkedin_url(whenenrichment_typeis["phone"]or["personal_email"])
Receiving results
You have two options:- Webhook — pass
webhook_urlin the request. We POST the final result to that URL once the waterfall completes. - Polling — call
GET /contacts/{id}with the returnedenrichment_id. While the waterfall is running thestatusispending; once it has completed (with or without data) thestatusflips tofinished.
Custom Fields
Passcustom: { ... } in the request to attach arbitrary correlation data
(e.g. your CRM record ID). The same payload is echoed back on
GET /contacts/{id} and on the webhook callback.
Pricing
Each enrichment consumes credits based on the requestedenrichment_type and
the providers used. Check your account credits via the
Account Credits endpoint.Authorizations
Your API key
Body
Contact information for enrichment
First name of the contact
Last name of the contact
Type of enrichment to perform. Supported values: "email", "phone", "personal_email". Note: "personal_email" requires the user to have consented to personal email enrichment in their account settings (GDPR-compliant). Requests for "personal_email" or "phone" require linkedin_url.
1phone, email, personal_email Company name of the contact
Company domain
LinkedIn profile URL of the contact
Webhook URL to receive enrichment results
Optional. Restrict phone enrichment to phone numbers from these countries. When omitted, the user's account-level default phone country codes are applied.
ISO 3166-1 alpha-2 country code (e.g. "US", "FR", "GB")
Custom fields to include with the enrichment that will be returned in the webhook (like crm id, etc.)
Response
Enrichment request accepted. The waterfall runs asynchronously; poll GET /contacts/{id} (using the returned enrichment_id) or wait for the webhook_url callback to retrieve final results.
The ID of the enrichment request. Use it to poll GET /contacts/{id}.
The contact's first name
The contact's last name
Always pending on creation; the waterfall runs asynchronously.
pending Custom fields passed in the request