Skip to main content
Get verified email addresses and phone numbers for people.
const contacts = await canvas.contacts.enrich({
  people,
});

// Each person now has email
contacts.forEach(c => canvas.log(`${c.name}: ${c.email}`));
Use emailType: "personal" when you want personal emails prioritized.
const contacts = await canvas.contacts.enrich({
  people,
  emailType: "personal",
});

Parameters

people
Person[]
required
People to enrich. Usually the output of canvas.people.search().
email
boolean
default:"true"
Include email enrichment.
phone
boolean
default:"false"
Include phone enrichment. Set to true to also get phone numbers.
emailType
"any" | "work" | "personal"
default:"\"any\""
Email preference for enrichment.
personal prioritizes personal emails and keeps backward compatibility by still populating email.

Returns

The same people array with additional contact fields:
FieldTypeDescription
emailstringCanonical email field for backward compatibility
personal_emailstringPersonal email when available
work_emailstringWork email when available
email_type"personal" | "work" | "other" | "unknown" | "generic"Provider email classification
email_statusstringProvider validation status (for example: valid, risky, unknown)
phonestringPhone number (if available)

Examples

Email only (default)

const contacts = await canvas.contacts.enrich({
  people,
});
// Returns people with email addresses

Personal email mode

const contacts = await canvas.contacts.enrich({
  people,
  emailType: "personal",
});
In personal mode, email is still populated for backward compatibility, and personal_email is preserved explicitly.

Personal email mode with strict quality filter

const contacts = await canvas.contacts.enrich({
  people,
  emailType: "personal",
});

const validPersonalOnly = contacts.filter(
  (c) => c.personal_email && c.email_status === "valid",
);

Email + Phone

const contacts = await canvas.contacts.enrich({
  people,
  phone: true,
});
// Returns people with both email and phone

Phone only

const contacts = await canvas.contacts.enrich({
  people,
  email: false,
  phone: true,
});
// Returns people with phone numbers only