Creates a new contact or updates an existing one based on email or LinkedIn URL.
email, linkedinUrl, or linkedinUrlSalesNav already exists (upsert).
During updates, only non-empty fields are applied — null or empty values are ignored to preserve existing data.
| Identifier | Description |
|---|---|
email | Primary email address — used as the main unique key |
linkedinUrl | LinkedIn profile URL — used as an alternative unique key |
linkedinUrlSalesNav | LinkedIn Sales Navigator profile URL — used as an alternative unique key |
email, linkedinUrl, or linkedinUrlSalesNav already exists, the endpoint updates it instead of creating a duplicate.
| Field | Description |
|---|---|
companyId | Direct company ID — takes priority over the others |
companyDomain | Company domain (e.g. lemlist.com) — used if companyId is not provided |
companyLinkedinUrl | Company LinkedIn URL — used as a last resort |
companyLinked: true and the companyId.
contactOwner field. Accepted formats:
| Format | Example |
|---|---|
| User ID | usr_2aB3cD4eF5gH6iJ7k |
| Team member email | john@yourcompany.com |
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Contact email address. Used as a unique key for upsert matching. At least one of email, linkedinUrl, or linkedinUrlSalesNav is required.
LinkedIn profile URL. Used as an alternative unique key for upsert matching. At least one of email, linkedinUrl, or linkedinUrlSalesNav is required.
LinkedIn Sales Navigator profile URL. Used as an alternative unique key for upsert matching.
Additional email addresses for the contact. Each must be a valid email address.
Contact first name.
Contact last name.
Contact phone number.
Contact job title. If a company is linked, this is saved as part of the job data.
Contact job description. If a company is linked, this is saved as part of the job data.
URL of the contact's profile picture.
Contact timezone.
Contact industry.
Contact languages.
Contact location.
Contact skills.
Contact summary or bio.
Contact tagline.
Owner of the contact. Can be a user ID (e.g. usr_...) or a team member's email address. If the provided value does not match a team member, the owner defaults to the API key owner.
Origin of the contact record. Set on creation only and cannot be updated afterwards. Defaults to api.
ID of a company already existing in lemlist to link to this contact. Takes priority over companyDomain and companyLinkedinUrl.
Domain of a company already existing in lemlist to link to this contact (e.g. lemlist.com). Used if companyId is not provided.
LinkedIn URL of a company already existing in lemlist to link to this contact. Used if companyId and companyDomain are not provided.
Any additional key is treated as a custom field. Custom fields must be registered in the team's CRM field registry beforehand.