Skip to main content
POST
/
enrich
/
contact
Merged contact info for a person
curl --request POST \
  --url https://api.lava.so/v1/enrich/contact \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "<string>",
  "linkedin_url": "<string>",
  "name": "<string>",
  "company": "<string>",
  "phone": "<string>",
  "twitter_url": "<string>",
  "github_url": "<string>",
  "instagram_handle": "<string>",
  "include_connected_crms": true
}
'
{
  "contact": {
    "name": "<string>",
    "first_name": "<string>",
    "last_name": "<string>",
    "title": "<string>",
    "company": "<string>",
    "company_domain": "<string>",
    "email": "<string>",
    "linkedin_url": "<string>",
    "phone": "<string>",
    "location": "<string>",
    "twitter_url": "<string>",
    "github_url": "<string>",
    "bio": "<string>",
    "provenance": {},
    "confidence": 123
  },
  "sources_failed": [
    {
      "provider": "<string>",
      "reason": "<string>"
    }
  ],
  "available_connections": [
    "<string>"
  ],
  "cost": {
    "total": "<string>",
    "markup": "<string>",
    "breakdown": {}
  }
}

Documentation Index

Fetch the complete documentation index at: https://lava.so/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer token authentication used for standard API calls. Format: 'Bearer YOUR_API_KEY'

Body

application/json

Person identifiers for /v1/enrich/contact and /v1/enrich/profile. At least one strong identifier (email, linkedin_url, phone, twitter_url, github_url, instagram_handle) OR name+company is required. Domain-only or company-only input returns 400.

email
string | null
linkedin_url
string | null
name
string | null
company
string | null
phone
string | null
twitter_url
string | null

Twitter/X profile URL. When supplied, /profile additionally fans out to Apify Twitter scraper.

github_url
string | null

GitHub profile URL. When supplied, /profile additionally fans out to Apify GitHub scraper.

instagram_handle
string | null

Instagram handle (with or without @ prefix). When supplied, /profile additionally fans out to Apify Instagram scraper.

include_connected_crms
boolean | null

Opt-in flag for adding the caller's connected CRMs (HubSpot/Folk/Affinity) to the fanout. Only adapters for services the caller has actually connected are added; opt-in does not fan out to the universe of CRMs.

Response

Merged contact record. contact is null when the fanout returned candidates but no confident match was found — the markup is still charged because the work was performed.

contact
object
required

Merged contact record with per-field provenance. Fields are null when the merger had no confident value. provenance maps each populated field to the array of source ids that contributed.

sources_failed
object[]
required
available_connections
string[]
required

CRM service names the caller has connected (hubspot, folk, affinity). Returned regardless of opt-in so callers can discover what's available.

cost
object
required

Cost breakdown returned on every successful or no-match response. markup is the flat lava-enrich fee; breakdown lists each upstream provider's cost as reported by its adapter; total is markup + sum(breakdown).