Bulk People Enrichment

Endpoint essentials
API key accessapi/v1/people/bulk_match or Master API key
OAuth scopespeople_bulk_match
Free account accessRequires an Apollo account registered with a work email address. Paid accounts aren't affected.
Credit usage1–9 credits per person without waterfall enrichment
Credits are charged only if credit-consuming data is found: 1 credit for demographics or email, plus 8 credits if a mobile phone is returned. If no credit-consuming data is found, the request consumes 0 credits. Apollo doesn't charge a demographic credit when it can't match a person. With waterfall enrichment, this is indicated by match_confidence: none; for standard requests, unmatched people are returned as null. You can enrich up to 10 people per request. Learn more about API pricing and credits.

If waterfall enrichment is used for phone or email, credit usage depends on the returned data and the vendors included in your waterfall enrichment configuration; some vendors consume credits per lookup even when no data is found.

Enrichment is when you refresh existing records so your prospecting data is up-to-date.

Use the bulk people enrichment endpoint to enrich data for up to ten people with a single API call. To enrich data for a single person, use the people enrichment endpoint instead.

Apollo relies on the information you pass via the endpoint's parameters to identify the correct people to enrich. The details for each person should be passed as an object in the details[] array. When you provide more information, Apollo is more likely to find matches within its database. If you only provide general information, such as a name without a domain or email address, you may receive a 200 response, but the response indicates that no records have been enriched. Check match_confidence in the response to understand how confidently Apollo matched the submitted information.

By default, this endpoint doesn't return personal emails or phone numbers. Use the reveal_personal_emails parameter to retrieve personal emails and reveal_phone_number to retrieve phone numbers. If you set either of these parameters to true, Apollo attempts to provide emails or phone numbers for all matches.

When you use reveal_phone_number, a valid webhook_url is required so Apollo can deliver the completed phone enrichment results. Apollo returns the main enrichment response synchronously, then sends the requested phone numbers to the webhook asynchronously. See webhook details.

You can also use the run_waterfall_email and run_waterfall_phone parameters to run waterfall enrichment via this endpoint. Waterfall enrichment gives you broader data coverage by checking connected third-party data sources for contact emails and phone numbers.

When you call this endpoint and include at least one waterfall parameter, a valid webhook_url is required so Apollo can deliver the completed waterfall enrichment results. Apollo returns an immediate synchronous response with demographic and firmographic data, along with a waterfall enrichment request status. Apollo then delivers enriched emails or phone numbers asynchronously to the configured webhook.

Reading the response

The response differs depending on whether you use waterfall enrichment.

For a standard request, the response includes matches along with:

  • total_requested_enrichments
  • unique_enriched_records
  • missing_records
  • credits_consumed

Each person in matches also includes match_confidence, which indicates how confidently Apollo matched the submitted information to a person. Possible values are high and none. For standard requests, successfully matched people return match_confidence: high, while unmatched entries are returned as null. When you use waterfall enrichment, an unmatched result can return match_confidence: none.

If you set run_waterfall_email or run_waterfall_phone to true, the response includes a waterfall object instead. Because waterfall enrichment continues asynchronously, unique_enriched_records, missing_records, and credits_consumed aren't included in the initial response. total_requested_enrichments is included in both response types.

When run_waterfall_email is true, the entries in matches also don't include email or email_status. Apollo sends the enriched email data later to your webhook.

Keep the following response fields in mind:

  • unique_enriched_records counts the number of distinct people whose enrichment consumed credits. It doesn't represent the number of people returned in matches, so it can be lower than the number of matches or 0 when matches contains results.
  • credits_consumed can contain a decimal value depending on your plan's credit pricing.
  • request_id is a signed 64-bit integer and may be negative. Pass the value unchanged when you use the poll webhook result endpoint.
  • status returns success for a successful 200 response, even when Apollo doesn't match every requested person. Use missing_records and matches to review the enrichment results.

Webhook details

Webhook requirements

  • HTTPS required: Your endpoint must be publicly accessible over HTTPS.

  • Rate limiting: Ensure your webhook endpoint can handle the volume of webhook traffic sent by Apollo.

  • Idempotency: Apollo may retry webhook calls. Your endpoint should be idempotent to handle duplicate payloads safely.

Query Params
boolean
Defaults to false

Set to true to enable email waterfall enrichment

boolean
Defaults to false

Set to true to enable phone waterfall enrichment

boolean
Defaults to false

Set to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan. The default value is false.

If a person resides in a GDPR-compliant region, Apollo will not reveal their personal email.

boolean
Defaults to false

Set to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan. The default value is false.

If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered.

string

If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter.

Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number.

If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL.

Example: https://webhook.site/11f2643a-b1b4-c6be-8e6a-6c7da2c12610; https%3A%2F%2Fwebhook.site%2F11f2643a-b1b4-c6be-8e6a-6c7da2c12610

Body Params
details
array of objects
required

Provide info for each person you want to enrich as an object within this array. Add up to 10 people.

details*
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/plain