Create Contact
Creates a new contact or updates an existing one (upsert by email/LinkedIn), or creates/updates team contact profile only when CampaignId is omitted or null (no campaign enrollment row).
Campaign enrollment: When CampaignId is set, returns the created/updated contact (enrollment). Optional contact_profile_id seeds the enrollment from an existing profile; the profile must already have a ContactTeam row for the campaign's team.
Profile-only (no campaign): Omit CampaignId (or send null/empty). Requires TeamId and at least one of email or linkedin_url. Returns 201 with data.object: contact_profile and enrolled: false (no Contact row).
Flow: With CampaignId, the API upserts ContactProfile + ContactTeam for the team, then creates or updates the Contact (campaign enrollment). Without CampaignId, only the profile and team membership are upserted.
Email validation: Set validate_emails: true to queue deliverability verification when the contact profile is unvalidated or pending (valid2 -1 or 0). Already-validated profiles are not re-checked (no extra credits). Applies on create, update, and re-enroll. Default is false. Not applied on the profile-only path.
Request body
Response
Contact updated (existing contact)
Example response
{
"success": true,
"request_id": "req_abc123def456"
}Changes
No recorded changes to this endpoint across all 1 revision of this API.