Skip to main content

Contact Enrich

Enrich contacts with full details including email, phone, social profiles, and employment history.

Data Coverage

MetricValue
Verified contacts210M+
Direct dials and mobile numbers140M+

Numbers describe the underlying data pool. What an individual account can return depends on plan and integration entitlements.

Credits: billed per revealed detail

Enrichment is billed per detail actually revealed, per matched contact — email and phone are billed at different rates, and a phone reveal costs substantially more than an email. See Credit cost per tool for both exact rates.

Phone reveal is opt-in — pass revealPhone: true to request it. Requesting both bills the sum of the two rates. Contacts that do not match bill nothing. Use contact_search to identify contacts, then enrich only the best matches.

Parameters

NameTypeRequiredDescription
contactIdstringNoContact ID from contact_search (most accurate method)
firstNamestringNoContact's first name
lastNamestringNoContact's last name
emailstringNoContact's email address (if known)
companyDomainstringNoCurrent employer's domain
companyNamestringNoCurrent employer's name
linkedinUrlstringNoLinkedIn profile URL
contactsarrayNoMultiple contacts in one call, for an agent resolving a small set at once (max 10)
revealEmailbooleanNoWhether to reveal email addresses (default: true)
revealPhonebooleanNoWhether to reveal phone numbers (default: false — opt-in, billed separately per matched contact)

Required Integrations

  • apollo (Contact Data — configure in Integrations Marketplace)

Enrichment Methods

Most accurate method. Use the ID from contact_search results.

{
"tool": "contact_enrich",
"parameters": {
"contactId": "contact_123"
}
}

Method 2: By Name + Company

When you don't have a contact ID.

{
"tool": "contact_enrich",
"parameters": {
"firstName": "John",
"lastName": "Smith",
"companyDomain": "salesforce.com"
}
}

Method 3: Multiple Contacts in One Call

Resolve up to 10 contacts in a single call when an agent already has the set in hand (more efficient than one call each).

{
"tool": "contact_enrich",
"parameters": {
"contacts": [
{ "id": "contact_id_1" },
{ "id": "contact_id_2" },
{ "firstName": "Jane", "lastName": "Doe", "companyDomain": "stripe.com" }
]
}
}

Best Practices

Search First, Then Enrich

  1. Search: contact_search to find contacts (flat rate per call)
  2. Review: Identify the best matches
  3. Enrich: contact_enrich on selected contacts (billed per revealed detail)

Provide More Info for Better Matches

When not using contact ID, provide multiple identifying fields:

  • LinkedIn URL (most reliable)
  • Email (if known)
  • Full name + company domain

Batch Within a Single Agent Turn

When an agent needs several contacts at once, pass the contacts array instead of making individual calls.

Example Usage

MCP Client - Single Contact

{
"tool": "contact_enrich",
"parameters": {
"contactId": "5f4c8e2a1b3d4e5f6a7b8c9d"
}
}

By LinkedIn URL

{
"tool": "contact_enrich",
"parameters": {
"linkedinUrl": "https://linkedin.com/in/johndoe",
"companyDomain": "salesforce.com"
}
}

Response Format

{
"data": {
"contact": {
"id": "contact_id",
"firstName": "John",
"lastName": "Smith",
"name": "John Smith",
"title": "VP of Sales",
"seniority": "vp",
"email": "john.smith@salesforce.com",
"emailStatus": "verified",
"phone": "+1-555-123-4567",
"mobilePhone": "+1-555-987-6543",
"linkedinUrl": "https://linkedin.com/in/johnsmith",
"twitterUrl": "https://twitter.com/johnsmith",
"organization": {
"id": "org_123",
"name": "Salesforce",
"domain": "salesforce.com",
"industry": "Software",
"employeeCount": 50000,
"revenue": 30000000000
},
"employmentHistory": [
{
"organizationName": "Salesforce",
"title": "VP of Sales",
"startDate": "2020-01-01",
"isCurrent": true
},
{
"organizationName": "Oracle",
"title": "Director of Sales",
"startDate": "2015-06-01",
"endDate": "2019-12-31",
"isCurrent": false
}
],
"city": "San Francisco",
"state": "California",
"country": "United States"
},
"metadata": {
"creditsUsed": 1,
"matchConfidence": "high",
"enrichedAt": "2025-02-05T12:00:00Z"
}
}
}

Error Handling

Common errors:

  • Invalid API key: Check Contact Data integration configuration
  • Rate limit exceeded: Wait and retry
  • Access denied: Check API key permissions
  • Maximum 10 contacts: The per-call cap is 10 — narrow the set the agent is resolving
  • No match found: Provide more identifying information
  • contact_search - Find contacts (flat rate per call)
  • company_firmographic - Get company information
  • company_technographic - Analyze company tech stack

Next Steps