Find a potential duplicate contact

Endpoint essentials
API key accessapi/v1/contacts/find_potential_duplicate or Master API key
OAuth scopescontacts_deduplicate
Credit usage0 credits
Learn more about API pricing and credits.

Contacts are people saved in Apollo.

Use the find a potential duplicate contact endpoint to check whether a contact in your team's Apollo workspace has a likely duplicate. Pass one contact ID in the path. To find contact IDs, call the search for contacts endpoint.

This endpoint only reads data. It doesn't change, merge, or delete either contact.

What the response contains

  • A match: contacts holds exactly two objects. The first is the contact you sent, reduced to its id and the duplicate_contact_id. The second is the suggested duplicate's contact record. It has the contact fields of view a contact, but not the nested account or employment_history. To get those, call view a contact with duplicate_contact_id.
  • No match: the body is an empty object, {}.
  • An unusable ID: 404 when the ID doesn't belong to a contact in your workspace or the contact has been deleted, and 422 when the ID isn't a valid Apollo ID.

How Apollo picks the match

Apollo compares the contact you send with the other contacts in your workspace. It checks these signals in order and returns the first contact that matches:

  1. Apollo person: both contacts are linked to the same person in Apollo's database.
  2. Email: the email of the contact you sent is the other contact's verified primary email or one of its additional emails. If the contact you sent is linked to an Apollo person, contacts linked to a different person are skipped.
  3. Salesforce ID: the same Salesforce contact ID or lead ID, including IDs the other contact kept from an earlier merge.
  4. LinkedIn profile: the same LinkedIn profile.
  5. Name and company: the same first and last name at the same company. Apollo matches the company on Apollo organization, then company name, then company domain. Free email domains such as gmail.com don't count as a company domain.

Apollo never returns deleted contacts, or contacts that exist only from an email import.

One match per request

Each request checks one contact and returns at most one duplicate, so checking 500 contacts takes 500 requests. When a contact has several copies, every call returns the same match until that copy is merged or deleted. To find every copy:

  1. Call this endpoint for the contact.
  2. If the two contacts are different people, don't merge. This endpoint keeps returning that contact, so move on to the next contact.
  3. In Apollo, merge the returned duplicate into the contact you keep.
  4. Call this endpoint again for the surviving contact.
  5. Repeat until the response is {}.
🚧

Review the pair before you merge

A match is a suggestion, not a verdict: a name-and-company match can be a different person with the same name. Merging permanently deletes the duplicate and can't be undone, so compare both contacts first.

Path Params
string
required

The Apollo ID for the contact that you want to check for a duplicate.

To find contact IDs, call the search for contacts endpoint and identify the id value for the contact.

Example: 66e34b81740c50074e3d1bd4

Responses

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