Upsert Contact
Create a contact, or update the matching one if it already exists.
The contact is matched inside your organization on email first, then
on linkedin_url (both normalized), so re-sending the same person is
safe and returns the same id. Fields you send overwrite the stored
values; fields you omit are left untouched. 201 is returned for both
the create and the update.
company_domain is what links the contact to an account — the account
(and its company) is created when it does not exist yet, and
company_name is only used for that creation. Sending company_name
alone does not link an account.
Requires the contacts:write scope on the API key.
Authorizations
Bearer API key issued from Settings → Developers.
Body
Upsert Contact payload
First name.
Last name.
Email. At least one of email or linkedin_url is required.
LinkedIn profile URL. At least one of email or linkedin_url is required.
Job title.
Phone number.
Employer name.
Employer's primary domain. Required to link the contact to an account.
Response
Successful Response
Unique identifier of the contact.
When this contact was first associated with the organization.
When this contact was last touched in the organization.
Email.
First name.
Last name.
Job title.
LinkedIn profile URL.
Phone number.
City.
State.
Country.
Profile picture URL.
Employer name.
Employer's primary domain.
Account this contact is linked to. Use it with the Accounts endpoints.
User who owns this contact, if any.
Summary of the user who owns this contact.