Merges a Source contact record into a Target contact record, retaining the Target's information when Source and Target conflict.

This API can be used to merge two contact records in your database.

  • The Source (or Secondary) contact is specified in the URL (/people/{vanId}/mergeInto); this record will be deleted as part of the merge
  • The Target (or Primary) contact is specified in the body of the request and survives the merge


Merges are permanent and cannot be undone. Use this endpoint with caution.

Some fields may conflict between the two records and the merge process will not be able to retain both values (e.g., different first names). In this case, the API will retain the Target's information, which is the same behavior as the default selections in the Contacts Merge Wizard in the UI. Note that if you need to retain information from the Source, you can make a subsequent /people/{vanId} call to update the Target with the value(s) from the Source record you want to persist. All other fields where multiple values can be stored--such as emails, phones, and addresses--will be combined into the Target record.

Not all records can be merged; if a record cannot be merged it will be treated as an Input Validation error with details provided in the text field of the error response. Though not exhaustive, some conditions that could prevent a merge are:

  • Both VANIDs need to exist and be accessible to you
  • Both records must have the same contactMode
  • If Disclosure Fields are enabled, the Source record cannot be linked to a Contribution or Disbursement

To check if records can be merged without actually merging, you can specify ?whatIf=true in the query string.

Click Try It! to start a request and see the response here!