Reveal full contact data for contacts you’ve already found via Search Contacts.
Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked:
emails - work and personal email addresses
phones - mobile and direct phone numbers
Omit reveal to get both by default
Waterfall Reveal
Fall through to your enabled third-party providers when Lusha’s own data has no match, for extra reach on hard-to-match contacts.
If Data Waterfall is enabled on your account, with specific providers turned on under Account > Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don’t need to pass anything to trigger it.
Pass waterfallEnabled: false to opt a specific call out:
waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call.
Provider order isn’t configurable - Lusha manages that internally.
If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way.
When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or <providerId>), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape.
Async results (job)
Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job.
If the response has no job, it is final.
If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id.
While the job status is processing, wait retryAfter seconds and poll again.
On complete, merge the job’s contacts into your enrich results by id. Do not replace the whole enrich payload.
On expired or failed, stop and keep what Enrich Contacts already returned.
Branch on whether job is present, and then on the job status. Don’t infer that work is still running because an email or phone is empty.
Polling is free. A data point is billed once, by whichever call delivered it.
Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free.
Billing: Charged per revealed field (email or phone) via per-datapoint pricing.
Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.
Whether this call is allowed to fall through to your enabled
third-party providers when Lusha's own data has no match, for the fields
requested via reveal. Defaults to true whenever Data Waterfall is
enabled on your account (Account > Waterfall) - pass false to opt this
specific call out. Has no effect if Data Waterfall or no providers are
enabled on your account. Provider order isn't configurable - Lusha manages
that internally.
false means Lusha data only. If Lusha does not have a requested field, the response sets statusReason: WATERFALL_DISABLED.
Optional. If provided, these contacts are also added to this table (if not already present) and the revealed fields' columns are populated. See the Tables API.
Added to a Prospecting, Enrich, Signals, or Lookalike response when tableId is passed on the request. The primary response is unaffected even if the table write fails.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Lusha Knowledge Hub","description":"Access documentation, use cases, and technical guides for Lusha. One destination for data docs, developer APIs, and user guides across the Lusha platform.","colors":{"primary":"#863fff","light":"#863fff","dark":"#be97ff"},"logo":{"light":"https://mintcdn.com/lusha-14097d0b/fbYn8-MoaljvjGwq/logo-light.svg?fit=max\u0026auto=format\u0026n=fbYn8-MoaljvjGwq\u0026q=85\u0026s=6a57e7bcd594f8328dddc6bac14a320d","dark":"https://mintcdn.com/lusha-14097d0b/fbYn8-MoaljvjGwq/logo-dark.svg?fit=max\u0026auto=format\u0026n=fbYn8-MoaljvjGwq\u0026q=85\u0026s=daf86151ba21bcac68d09c97f5fd60b1","href":"https://www.lusha.com"},"favicon":"https://mintcdn.com/lusha-14097d0b/XGBFtOdYmU-JH9FU/favicon.png?fit=max\u0026auto=format\u0026n=XGBFtOdYmU-JH9FU\u0026q=85\u0026s=e4a97c7ee560294bc389dc8c2b23f591","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript","java","go"]}},"navbar":{"links":[{"href":"https://dashboard.lusha.com/","label":"Login"},{"href":"https://www.lusha.com/contact-sales/","label":"Contact sales"}],"primary":{"type":"button","label":"Start for free","href":"https://auth.lusha.com/signup"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/lushadata/posts?feedView=all","facebook":"https://www.facebook.com/LushaData?_gl=1*61sopm*_gcl_aw*R0NMLjE3ODcxMjQxNjEuQ2p3S0NBandxSlhVQmhCTkVpd0E4QmdHN2xFRVVLN0p1VWttYTVOcllKQ0RLamtHUVpHUHBScjg5dWJ4Zk1iQjY0aU9ySlpCSXFRQ1Rob0NRSE1RQXZEX0J3RQ..*_gcl_au*MTYzNjMwMDc2NS4xNzg1NzU3ODkx*_ga*MTQ1NTcwOTc0LjE3MzI0NDUyMzE.*_ga_7C6N0WZ5Q3*czE3ODg3NzAxMjEkbzgzOSRnMCR0MTc4ODc3MDEyMSRqNjAkbDAkaDA.","x":"https://x.com/LushaData?_gl=1*61sopm*_gcl_aw*R0NMLjE3ODcxMjQxNjEuQ2p3S0NBandxSlhVQmhCTkVpd0E4QmdHN2xFRVVLN0p1VWttYTVOcllKQ0RLamtHUVpHUHBScjg5dWJ4Zk1iQjY0aU9ySlpCSXFRQ1Rob0NRSE1RQXZEX0J3RQ..*_gcl_au*MTYzNjMwMDc2NS4xNzg1NzU3ODkx*_ga*MTQ1NTcwOTc0LjE3MzI0NDUyMzE.*_ga_7C6N0WZ5Q3*czE3ODg3NzAxMjEkbzgzOSRnMCR0MTc4ODc3MDEyMSRqNjAkbDAkaDA.","youtube":"https://www.youtube.com/channel/UCZNqzgRZFBub6WJxeaQcxUQ"},"links":[{"header":"Resources ","items":[{"label":"Trust Center","href":"https://www.lusha.com/trust-center"},{"label":"Privacy Notice","href":"https://www.lusha.com/legal/privacy-notice"},{"label":"Contact Support","href":"mailto:support@lusha.com"},{"label":"Feature Request","href":"https://dashboard-services.lusha.com/v2/user-voice/goto"}]}]},"fonts":{"heading":{"family":"ABC Social","weight":500,"source":"fonts/ABCSocialMedium.woff2","format":"woff2"},"body":{"family":"ABC Social","weight":400,"source":"fonts/ABCSocialBook.woff2","format":"woff2"}},"integrations":{"amplitude":{"apiKey":"53a4873c41a742020f00fbd4d53dfedc"}},"contextual":{"options":["copy","chatgpt","claude","download-pdf","view"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lusha-14097d0b","hasAudioNarration":false,"actualSubdomain":"lusha-14097d0b","customDomains":["docs.lusha.com"],"gitSource":{"type":"github","owner":"lusha-com","repo":"lusha-api-hub","deployBranch":"feature/INF-3209/main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6078e74c37478135a279a","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"User Guide","count":250},{"language":"default","tag":"API Docs","count":203},{"language":"default","tag":"Endpoints","count":110},{"language":"default","tag":"Build \u0026 Enrich","count":74},{"language":"default","tag":"Resources","count":64},{"language":"default","tag":"Integrations \u0026 API","count":61},{"language":"default","tag":"Getting Started","count":54},{"language":"default","tag":"Account \u0026 Billing","count":49},{"language":"default","tag":"Extension \u0026 Outreach","count":47},{"language":"default","tag":"Prospecting","count":41}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@lusha.com"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:'ABC Social';src:url('/fonts/ABCSocialMedium.woff2') format('woff2'),\n url('/fonts/ABCSocialMedium.woff') format('woff');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'ABC Social';src:url('/fonts/ABCSocialBold.woff2') format('woff2'),\n url('/fonts/ABCSocialBold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}:root{--lusha-topbar-h: 64px}[data-testid=\"header\"],nav[class*=\"Navbar\"],div[class*=\"TopBar\"]{position:sticky!important;top:0;z-index:30;background:inherit}[data-testid=\"header\"] :is(article,.prose,[class*=\"Content\"]){position:static!important}[class*=\"DropdownButton\"],[class*=\"dropdown-button\"],[class*=\"SidebarDropdown\"]>button,[data-testid=\"sidebar-dropdown-button\"],nav [class*=\"dropdown\"]>button:first-child{position:sticky!important;top:var(--lusha-topbar-h);z-index:20;background:inherit}nav [class*=\"SidebarGroup\"]>span,nav [class*=\"SidebarGroup\"]>p,nav [class*=\"SidebarGroup\"]>div>span,nav [class*=\"group-header\"],nav [class*=\"GroupHeader\"],nav [class*=\"sidebar-group-title\"]{font-weight:700!important}nav [hidden],nav [aria-hidden=\"true\"]{display:block!important}nav [data-state=\"closed\"]{display:block!important;height:auto!important;max-height:none!important;overflow:visible!important;visibility:visible!important}nav [aria-expanded=\"false\"]+*{display:block!important;height:auto!important;max-height:none!important;overflow:visible!important}nav [aria-expanded=\"false\"] svg[class*=\"chevron\"i],nav [aria-expanded=\"false\"] svg[class*=\"caret\"i],nav [aria-expanded=\"false\"] [aria-label*=\"chevron\"i] svg,nav [aria-expanded=\"false\"] [aria-label*=\"expand\"i] svg,nav [data-state=\"closed\"] svg[class*=\"chevron\"i],nav [data-state=\"closed\"] svg[class*=\"caret\"i]{transform:rotate(90deg)}.gPmUJu{--lp-bg:#f9f9f7;--lp-card:#ffffff;--lp-card-hover:rgba(20,20,20,0.02);--lp-subtle:#f6f6f6;--lp-ink:#141414;--lp-ink-75:rgba(20,20,20,0.75);--lp-ink-60:rgba(20,20,20,0.6);--lp-ink-50:rgba(20,20,20,0.5);--lp-ink-45:rgba(20,20,20,0.45);--lp-ink-35:rgba(20,20,20,0.35);--lp-ink-18:rgba(20,20,20,0.18);--lp-ink-08:rgba(20,20,20,0.08);--lp-ink-07:rgba(20,20,20,0.07);--lp-border:#e5e5e5;--lp-border-soft:#eeeeee;--lp-border-subtle:#efefef;--lp-accent-soft:#faf8ff;--lp-accent-softer:#f3ecff;--lp-purple-light:#ece2ff;font-family:'ABC Social',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--lp-ink);line-height:1.6;-webkit-font-smoothing:antialiased;background:var(--lp-bg);min-height:100vh}.fRtpNA{max-width:1680px;margin:0 auto;padding:0 120px}@media (max-width:1200px){.fRtpNA{padding:0 60px}}@media (max-width:768px){.fRtpNA{padding:0 24px}}.kjhtDE{background:var(--lp-card);border-bottom:1px solid var(--lp-ink-08);padding:72px 0 64px}@media (max-width:768px){.kjhtDE{padding:48px 0 40px}}.jDlqbx{font-size:10px;font-weight:500;-webkit-letter-spacing:0.14em;-moz-letter-spacing:0.14em;-ms-letter-spacing:0.14em;letter-spacing:0.14em;text-transform:uppercase;color:#863fff;margin:0 0 18px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.jDlqbx::before{content:'';width:20px;height:1px;background:#863fff;display:block}.jQgKcN{font-family:'ABC Social',sans-serif;font-size:56px;font-weight:400;color:var(--lp-ink);line-height:1.1;-webkit-letter-spacing:-0.01em;-moz-letter-spacing:-0.01em;-ms-letter-spacing:-0.01em;letter-spacing:-0.01em;margin:0 0 14px}@media (max-width:1200px){.jQgKcN{font-size:48px}}@media (max-width:768px){.jQgKcN{font-size:36px}}.hoQscC{font-size:15px;font-weight:300;color:var(--lp-ink-50);max-width:460px;line-height:1.65;margin:0}.dhcVeT{display:grid;grid-template-columns:repeat(3,1fr);padding:0 120px}@media (max-width:1200px){.dhcVeT{padding:0 60px}}@media (max-width:768px){.dhcVeT{padding:0 24px}}@media (max-width:900px){.dhcVeT{grid-template-columns:1fr}}.eHXlJE{display:block;background:var(--lp-card);border-right:1px solid var(--lp-ink-08);border-top:1px solid var(--lp-ink-08);padding:44px 48px 52px;-webkit-text-decoration:none;text-decoration:none;color:inherit;position:relative;cursor:pointer;-webkit-transition:background 0.2s ease;transition:background 0.2s ease}.eHXlJE:last-child{border-right:none}.eHXlJE:hover .card-arrow{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media (max-width:1200px){.eHXlJE{padding:40px 40px 48px}}@media (max-width:900px){.eHXlJE{border-right:none;border-bottom:1px solid var(--lp-ink-08);padding:36px 24px 44px}}.eHXlJE:hover{background:var(--lp-card-hover)}.NzpTL{display:block;background:var(--lp-card);border-right:1px solid var(--lp-ink-08);border-top:1px solid var(--lp-ink-08);padding:44px 48px 52px;-webkit-text-decoration:none;text-decoration:none;color:inherit;position:relative}.NzpTL:last-child{border-right:none}.NzpTL:hover .card-arrow{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media (max-width:1200px){.NzpTL{padding:40px 40px 48px}}@media (max-width:900px){.NzpTL{border-right:none;border-bottom:1px solid var(--lp-ink-08);padding:36px 24px 44px}}.eAmjTv{font-family:'ABC Social',sans-serif;font-size:11px;color:var(--lp-ink-18);-webkit-letter-spacing:0.06em;-moz-letter-spacing:0.06em;-ms-letter-spacing:0.06em;letter-spacing:0.06em;display:block;margin-bottom:28px}.hkfyFL{width:48px;height:48px;border-radius:12px;background:#ece2ff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:24px}.kcFPjI{width:48px;height:48px;border-radius:12px;background:#E5F0FF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:24px}.ljuXwQ{width:48px;height:48px;border-radius:12px;background:#FFE4FE;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:24px}.cNxFri{font-family:'ABC Social',sans-serif;font-size:21px;font-weight:400;color:var(--lp-ink);margin:0 0 10px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.cZFlXu{font-family:'ABC Social',sans-serif;font-size:9px;font-weight:500;-webkit-letter-spacing:0.1em;-moz-letter-spacing:0.1em;-ms-letter-spacing:0.1em;letter-spacing:0.1em;text-transform:uppercase;background:#863fff;color:#ffffff;border-radius:3px;padding:2px 7px;line-height:16px}.jgsKsF{font-size:13px;font-weight:300;line-height:1.7;color:var(--lp-ink-50);margin:0 0 16px;max-width:280px}.budHNg{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;margin-bottom:28px}.jcPhQd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border:0.5px solid var(--lp-ink-08);background:var(--lp-accent-soft);margin-top:0;-webkit-text-decoration:none;text-decoration:none;color:inherit;cursor:pointer;-webkit-transition:background 0.15s,border-color 0.15s;transition:background 0.15s,border-color 0.15s}.jcPhQd:hover{background:var(--lp-accent-softer);border-color:rgba(134,63,255,0.5)}.kwTDrc{width:28px;height:28px;border-radius:6px;background:#ece2ff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.kYbqxg{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:2px;-webkit-flex:1;-ms-flex:1;flex:1}.jKfGmb{margin:0;font-size:12px;font-weight:500;color:var(--lp-ink)}.jkSMGq{margin:0;font-size:11px;font-weight:300;color:var(--lp-ink-50);line-height:1.5}.bpJDwY{font-size:11px;color:#863fff;opacity:0.6;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-top:1px}.eUKjPD{height:1px;background:var(--lp-ink-07);margin-bottom:20px}.nMIVy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px}.hmaPFT{width:4px;height:4px;border-radius:50%;background:#3A91FF;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:inline-block}.fsxITo{width:4px;height:4px;border-radius:50%;background:#FF54BB;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:inline-block}.llAaLe{width:4px;height:4px;border-radius:50%;background:#863fff;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:inline-block}.cZAJVh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;font-size:12px;font-weight:500;color:#3A91FF;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity 0.15s;transition:opacity 0.15s}.cZAJVh:hover{opacity:0.65}.bfZHka{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;font-size:12px;font-weight:500;color:#FF54BB;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity 0.15s;transition:opacity 0.15s}.bfZHka:hover{opacity:0.65}.gDIIVw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;font-size:12px;font-weight:500;color:#863fff;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity 0.15s;transition:opacity 0.15s}.gDIIVw:hover{opacity:0.65}.bFSXOZ{position:absolute;bottom:40px;right:40px;opacity:0;-webkit-transform:translate(3px,-3px);-ms-transform:translate(3px,-3px);transform:translate(3px,-3px);-webkit-transition:opacity 0.2s ease,-webkit-transform 0.2s ease;-webkit-transition:opacity 0.2s ease,transform 0.2s ease;transition:opacity 0.2s ease,transform 0.2s ease}@media (max-width:900px){.bFSXOZ{display:none}}.kQgXlD{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--lp-ink-08);padding:0 120px}@media (max-width:1200px){.kQgXlD{padding:0 60px}}@media (max-width:768px){.kQgXlD{padding:0 24px}}@media (max-width:900px){.kQgXlD{grid-template-columns:1fr}}.cPMNec{background:var(--lp-card);padding:56px 64px 64px;position:relative;overflow:hidden}@media (max-width:1200px){.cPMNec{padding:48px 48px 56px}}@media (max-width:768px){.cPMNec{padding:40px 24px 48px}}.dLIuYT{position:absolute;width:340px;height:340px;border-radius:50%;background:rgba(134,63,255,0.11);top:-100px;right:-80px;pointer-events:none}.ihXqXo{font-size:10px;font-weight:500;-webkit-letter-spacing:0.14em;-moz-letter-spacing:0.14em;-ms-letter-spacing:0.14em;letter-spacing:0.14em;text-transform:uppercase;color:rgba(134,63,255,0.8);margin:0 0 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.ihXqXo::before{content:'';width:16px;height:1px;background:rgba(134,63,255,0.8);display:block}.gVffKC{font-family:'ABC Social',sans-serif;font-size:32px;font-weight:400;color:var(--lp-ink);line-height:1.2;-webkit-letter-spacing:-0.01em;-moz-letter-spacing:-0.01em;-ms-letter-spacing:-0.01em;letter-spacing:-0.01em;margin:0 0 12px}@media (max-width:768px){.gVffKC{font-size:26px}}.ixRwDA{font-size:13px;font-weight:300;color:var(--lp-ink-50);line-height:1.65;margin:0 0 36px;max-width:340px}.fckwHi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:36px}.cJIHMc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:16px;padding:14px 0;border-bottom:1px solid var(--lp-ink-08)}.cJIHMc:first-child{border-top:1px solid var(--lp-ink-08)}.QTRWT{font-family:'ABC Social',sans-serif;font-size:11px;color:rgba(134,63,255,0.7);font-weight:500;min-width:20px;margin-top:2px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ipILMt{font-size:13px;font-weight:300;color:var(--lp-ink-50);line-height:1.55}.ipILMt strong{color:var(--lp-ink);font-weight:500}.jYkPbP{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;background:#863fff;color:#ffffff;font-family:'ABC Social',sans-serif;font-size:13px;font-weight:500;padding:12px 22px;border-radius:6px;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity 0.15s;transition:opacity 0.15s;cursor:pointer}.jYkPbP:hover{opacity:0.88}.GNmGU{background:var(--lp-card);padding:56px 64px 64px;border-left:1px solid var(--lp-ink-08)}@media (max-width:1200px){.GNmGU{padding:48px 48px 56px}}@media (max-width:900px){.GNmGU{border-left:none;border-top:1px solid var(--lp-ink-08);padding:40px 24px 48px}}.dxwwat{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:4px}.htxojm{font-size:10px;font-weight:500;-webkit-letter-spacing:0.14em;-moz-letter-spacing:0.14em;-ms-letter-spacing:0.14em;letter-spacing:0.14em;text-transform:uppercase;color:var(--lp-ink-60);margin:0}.eGOwrL{font-size:11px;font-weight:500;color:#863fff;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity 0.15s;transition:opacity 0.15s}.eGOwrL:hover{opacity:0.7}.bexoPI{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:14px;padding:16px 0;border-top:1px solid var(--lp-ink-07);border-bottom:1px solid var(--lp-ink-07);-webkit-text-decoration:none;text-decoration:none;color:inherit;cursor:pointer;-webkit-transition:opacity 0.15s;transition:opacity 0.15s;margin-top:-1px}.bexoPI:hover{opacity:0.65}.bKciuB{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:14px;padding:16px 0;border-top:1px solid var(--lp-ink-07);border-bottom:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;cursor:pointer;-webkit-transition:opacity 0.15s;transition:opacity 0.15s;margin-top:-1px}.bKciuB:hover{opacity:0.65}.cWJytx{width:32px;height:32px;border-radius:7px;background:#ece2ff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-top:1px}.cbicuu{width:32px;height:32px;border-radius:7px;background:#E5F0FF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-top:1px}.fvODKq{width:32px;height:32px;border-radius:7px;background:#FFE4FE;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-top:1px}.fPvtvr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:2px}.iAlosE{font-size:10px;font-weight:500;-webkit-letter-spacing:0.08em;-moz-letter-spacing:0.08em;-ms-letter-spacing:0.08em;letter-spacing:0.08em;text-transform:uppercase;color:#863fff}.KXpFR{font-size:10px;font-weight:500;-webkit-letter-spacing:0.08em;-moz-letter-spacing:0.08em;-ms-letter-spacing:0.08em;letter-spacing:0.08em;text-transform:uppercase;color:#3A91FF}.cEkDYe{font-size:10px;font-weight:500;-webkit-letter-spacing:0.08em;-moz-letter-spacing:0.08em;-ms-letter-spacing:0.08em;letter-spacing:0.08em;text-transform:uppercase;color:#FF54BB}.hWcWqT{font-size:13px;font-weight:500;color:var(--lp-ink);line-height:1.45;margin:0}.iBOFdX{font-size:11px;font-weight:300;color:var(--lp-ink-35);margin:0}.cRCxgM{border-top:1px solid var(--lp-ink-08);padding:0 120px}@media (max-width:1200px){.cRCxgM{padding:0 60px}}@media (max-width:768px){.cRCxgM{padding:0 24px}}:root.dark .lp-root{--lp-bg: #111111;--lp-card: #161616;--lp-card-hover: rgba(255,255,255,.04);--lp-subtle: #1a1a1a;--lp-ink: #f0f0f0;--lp-ink-75: rgba(240,240,240,.75);--lp-ink-60: rgba(240,240,240,.6);--lp-ink-50: rgba(240,240,240,.5);--lp-ink-45: rgba(240,240,240,.45);--lp-ink-35: rgba(240,240,240,.35);--lp-ink-18: rgba(240,240,240,.18);--lp-ink-08: rgba(255,255,255,.08);--lp-ink-07: rgba(255,255,255,.07);--lp-border: #2a2a2a;--lp-border-soft: #222222;--lp-border-subtle: #252525;--lp-accent-soft: #1a1030;--lp-accent-softer: #211540;--lp-purple-light: #2d1f4a}.lp-root{width:100%;margin-left:auto;margin-right:auto}#content-area:has(.lp-root),main:has(>.lp-root),div:has(>.lp-root){padding-left:0;padding-right:0;max-width:100%}#topbar-cta-button>a{background-color:#111111!important;border-radius:8px}:root.dark #topbar-cta-button>a{background-color:#ffffff!important}#topbar-cta-button>a svg{display:none}.lp-footer{--lp-footer-bg: #ffffff;--lp-footer-border: #ededf2;--lp-footer-ink: #3b3c45;--lp-footer-ink-hover: #1a1c21;display:flex;flex-direction:column;align-items:center;flex-wrap:wrap;flex-shrink:0;padding:16px;gap:20px;border-top:1px solid var(--lp-footer-border);background-color:var(--lp-footer-bg);color:var(--lp-footer-ink);font-size:14px;font-weight:400;font-family:'ABC Social', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif}:root.dark .lp-footer{--lp-footer-bg: #000000;--lp-footer-border: #3b3c45;--lp-footer-ink: #c4c6d1;--lp-footer-ink-hover: #fbfbfc}.lp-footer .gTuGtl{display:flex;flex-wrap:wrap;flex-direction:column;gap:24px}.lp-footer .jHMgmr{margin:8px 0}.lp-footer .cOxuwY{color:var(--lp-footer-ink);text-decoration:none;text-align:center}.lp-footer .cOxuwY:hover{color:var(--lp-footer-ink-hover)}.lp-footer .idCJFc{display:flex;flex-direction:row;align-items:start;align-self:center}.lp-footer .dkRCjj{display:flex;justify-content:space-between;align-items:center;font-size:14px;background-color:var(--lp-footer-bg);color:var(--lp-footer-ink);text-align:start;gap:8px}.lp-footer .dkRCjj span{max-width:1200px}.lp-footer .gOUsPl{padding:8px 0}@media screen and (min-width: 672px){.lp-footer{padding:14px 40px;flex-direction:row;justify-content:space-between}}@media screen and (min-width: 960px){.lp-footer .idCJFc{margin-top:0}}body:has(.lp-root) #header{display:none}body:has(.lp-root) #sidebar-content{display:none!important}body:has(.lp-root) #body-content{padding-left:0!important;max-width:none!important}body:has(.lp-root) #content-area{max-width:none;padding:0;margin:0}body:has(.lp-root) #footer>div{padding-top:12px!important;padding-bottom:20px!important;gap:12px!important}body:has(.lp-root) #footer [class*=\"gap-y-24\"]{row-gap:0!important}.kh-wide{width:100%!important}@media (min-width: 1024px){#content-area:has(.kh-wide){max-width:calc(min(1100px, 100vw - 22rem) + 3rem)!important}}.dc-page{--dc-ink: #141414;--dc-invert: #ffffff;--dc-secondary: #5c5c5c;--dc-border: #ececec;--dc-subtle: #f6f6f6;--dc-row-hover: #fafafa;--dc-surface: #ffffff;--dc-accent: #863fff;--dc-tint: #ece2ff;--dc-signal: #e6ff06;--dc-dot-muted: #c5c5c5;--dc-focus-ring: 0 0 0 3px rgba(134, 63, 255, 0.22);display:flex;flex-direction:column;gap:48px;color:var(--dc-ink)}html.dark .dc-page{--dc-ink: #ffffff;--dc-invert: #141414;--dc-secondary: #c5c5c5;--dc-border: #3c3c3c;--dc-subtle: #2a2a2a;--dc-row-hover: #242424;--dc-surface: var(--color-background-dark, #0b0b0f)}.dc-stats-block{display:flex;flex-direction:column;gap:16px}.dc-stats{display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));border:1px solid var(--dc-border);border-radius:16px}.dc-stats.dc-stats-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.dc-stats-cell{padding:24px 28px;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--dc-border)}.dc-stats-cell:first-child{border-left:none}@media (max-width: 768px){.dc-stats,.dc-stats.dc-stats-4{grid-template-columns:repeat(2, minmax(0, 1fr))}.dc-stats-cell{border-left:none;border-top:1px solid var(--dc-border)}.dc-stats-cell:nth-child(-n+2){border-top:none}}.dc-stats-num{font-size:40px;font-weight:700;line-height:1.1;letter-spacing:-0.02em;color:var(--dc-ink)}.dc-stats-label{font-size:15px;color:var(--dc-secondary)}.dc-stats-link{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:500;color:var(--dc-ink);text-decoration:underline;text-underline-offset:3px}.dc-stats-link:hover{color:var(--dc-accent)}.dc-cards{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px}.dc-cards.dc-cards-3{grid-template-columns:repeat(3, minmax(0, 1fr))}@media (max-width: 640px){.dc-cards,.dc-cards.dc-cards-3{grid-template-columns:1fr}}.dc-card{border:1px solid var(--dc-border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:12px;text-align:left;background:none;font:inherit;color:inherit}button.dc-card{cursor:pointer}button.dc-card:hover,button.dc-card.dc-active{border-color:var(--dc-ink)}.dc-card-top{display:flex;align-items:center;justify-content:space-between}.dc-card-icon{width:40px;height:40px;border-radius:8px;background:var(--dc-subtle);display:flex;align-items:center;justify-content:center}.dc-card-icon.dc-card-icon-signal{background:var(--dc-signal);color:#141414}.dc-card-count{font-size:14px;color:var(--dc-secondary)}.dc-card-title{font-size:22px;font-weight:500;margin:0}.dc-card-body{font-size:16px;line-height:1.5;color:var(--dc-secondary);margin:0}.dc-endpoints-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;color:var(--dc-secondary)}.dc-code-chip{font-size:14px;font-family:ui-monospace, \"SF Mono\", Menlo, monospace;color:var(--dc-ink);background:var(--dc-subtle);border-radius:4px;padding:3px 8px}.dc-explorer{display:flex;flex-direction:column;gap:16px}.dc-toolbar,.dc-toolbar2{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.dc-toolbar2{gap:12px}.dc-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--dc-subtle);border-radius:90px}.dc-tab{border:none;cursor:pointer;font:inherit;font-size:15px;font-weight:500;padding:8px 16px;border-radius:90px;display:flex;gap:8px;align-items:center;background:transparent;color:var(--dc-ink)}.dc-tab.dc-active{background:var(--dc-ink);color:var(--dc-invert)}.dc-tab-count{font-size:13px;opacity:0.7}.dc-search{flex:1 1 280px;max-width:380px;height:44px;display:flex;align-items:center;gap:8px;border:1px solid var(--dc-ink);border-radius:8px;padding:0 12px;background:var(--dc-surface)}.dc-search:focus-within{box-shadow:var(--dc-focus-ring)}.dc-search input{flex:1;border:none;font:inherit;font-size:15px;background:transparent;min-width:0;box-shadow:none;color:var(--dc-ink);outline:none}.dc-search input::placeholder{color:var(--dc-secondary)}.dc-pills-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dc-pills-label{font-size:14px;color:var(--dc-secondary)}.dc-pill{cursor:pointer;font:inherit;font-size:14px;padding:6px 14px;border-radius:90px;border:1px solid var(--dc-border);background:var(--dc-surface);color:var(--dc-ink)}.dc-pill.dc-active{background:var(--dc-ink);border-color:var(--dc-ink);color:var(--dc-invert)}.dc-divider-v{width:1px;height:24px;background:var(--dc-border)}.dc-toggle-pill{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit;font-size:14px;padding:6px 14px 6px 10px;border-radius:90px;border:1px solid var(--dc-border);background:var(--dc-surface);color:var(--dc-ink)}.dc-toggle-pill.dc-active{border-color:var(--dc-accent);background:var(--dc-tint);color:#141414}.dc-legend{font-size:13px;color:var(--dc-secondary);display:flex;align-items:center;flex-wrap:wrap;gap:16px}.dc-legend-item{display:flex;align-items:center;gap:6px}.dc-info-note{font-size:14px;color:var(--dc-secondary);display:flex;align-items:center;gap:6px}.dc-table-wrap{border:1px solid var(--dc-border);border-radius:16px;overflow:auto}.dc-table-wrap.dc-table-scroll{max-height:760px}.dc-grid-header{position:sticky;top:0;z-index:2;background:var(--dc-surface);display:grid;gap:16px;padding:14px 20px;font-size:13px;font-weight:500;color:var(--dc-secondary);border-bottom:1px solid var(--dc-border)}.dc-grid-header .dc-col-active{color:var(--dc-accent)}.dc-col-center{text-align:center}.dc-group-row{display:flex;gap:8px;align-items:baseline;padding:10px 20px;background:var(--dc-subtle);border-bottom:1px solid var(--dc-border)}.dc-group-label{font-size:14px;font-weight:500}.dc-group-count{font-size:13px;color:var(--dc-secondary)}.dc-row{display:grid;gap:16px;padding:16px 20px;border-bottom:1px solid var(--dc-border);align-items:start}.dc-row:hover{background:var(--dc-row-hover)}.dc-field-name{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.dc-field-name-text{font-size:15px;font-weight:500}.dc-field-desc{font-size:14px;line-height:1.45;color:var(--dc-secondary);text-wrap:pretty}.dc-also-called{font-size:13px;color:var(--dc-secondary)}.dc-signal-tag{display:inline-flex;align-items:center;gap:2px;background:var(--dc-signal);color:#141414;font-size:12px;font-weight:500;padding:1px 8px 1px 5px;border-radius:90px;white-space:nowrap}.dc-beta-tag{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;border:1px solid var(--dc-ink);border-radius:90px;padding:0 7px;line-height:18px;white-space:nowrap}.dc-path-chip{cursor:pointer;border:none;background:var(--dc-subtle);border-radius:4px;padding:4px 8px;font-family:ui-monospace, \"SF Mono\", Menlo, monospace;font-size:13px;color:var(--dc-ink);display:inline-flex;gap:6px;align-items:center;max-width:100%;text-align:left;word-break:break-all}.dc-path-chip:hover{background:var(--dc-tint)}.dc-copy-icon{flex:none}.dc-method{font-weight:600;font-size:11px;flex:none;white-space:nowrap}.dc-path-text{min-width:0;overflow-wrap:anywhere}.dc-plain-cell{font-size:14px;padding-top:3px}.dc-dot-cell{display:flex;justify-content:center;padding-top:8px}.dc-dot-on{width:10px;height:10px;border-radius:50%;background:var(--dc-ink);display:inline-block}.dc-dot-off{width:8px;height:8px;border-radius:50%;border:1px solid var(--dc-dot-muted);display:inline-block}.dc-planned-pill{display:inline-block;font-size:11px;font-weight:500;color:#141414;background:var(--dc-tint);border-radius:90px;padding:1px 7px;white-space:nowrap}.dc-dashboard-only{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--dc-secondary)}.dc-empty{padding:48px 20px;text-align:center;font-size:15px;color:var(--dc-secondary)}.dc-count-text{font-size:14px;color:var(--dc-secondary)}.dc-related{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:16px}@media (max-width: 640px){.dc-related{grid-template-columns:1fr}}.dc-related-card{display:block;border:1px solid var(--dc-border);border-radius:16px;padding:24px;text-decoration:none;color:inherit}.dc-related-card:hover{border-color:var(--dc-ink)}.dc-related-title{font-size:17px;font-weight:500;margin:0 0 8px}.dc-related-sub{font-size:14px;color:var(--dc-secondary);display:flex;align-items:center;gap:4px}.chat-assistant-floating-input{display:none!important}"}],"page":{"pagePath":"api-reference/enrich/enrich-contacts","slug":"/api-reference/enrich/enrich-contacts","pageMetadata":{"title":"Enrich Contacts","description":"Reveal full contact data for contacts you've already found via Search Contacts.\n\nPass up to 100 contact `ids` (from the search response). Use the `reveal` field to control what gets unlocked:\n- `emails` - work and personal email addresses\n- `phones` - mobile and direct phone numbers\n- Omit `reveal` to get both by default\n\n---\n\n### Waterfall Reveal\nFall through to your enabled third-party providers when Lusha's own data has no match, for extra reach on hard-to-match contacts.\n\nIf **Data Waterfall** is enabled on your account, with specific providers turned on under **Account > Waterfall**, the waterfall runs automatically on every Enrich Contacts call - you don't need to pass anything to trigger it.\n\n\nPass `waterfallEnabled: false` to opt a specific call out:\n\n ```json\n \"reveal\": [\"emails\", \"phones\"],\n \"waterfallEnabled\": false\n ```\n\n- `reveal` controls **which fields** come back.\n- `waterfallEnabled` controls whether the waterfall runs for this call at all. Defaults to `true` whenever Data Waterfall is enabled on your account; pass `false` to disable it just for this call.\n- Provider order isn't configurable - Lusha manages that internally.\n- If Data Waterfall is off or no providers are enabled on your account, `waterfallEnabled` has no effect either way.\n\nWhen the waterfall runs, the response adds `status`, `statusDescription` and (when a field is empty because the waterfall did not run) `statusReason`. Each email and phone carries `dataSource` (`lusha` or `\u003cproviderId>`), plus `credits` when an external provider delivered it. Contacts with unresolved data points list them in `missingDataPoints`. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape.\n\n### Async results (`job`)\nFast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a `job`.\n\n1. If the response has no `job`, it is final.\n2. If `job` is present, wait `job.retryAfter` seconds, then call [Get Contacts Enrich Job](#operation/getContactsEnrichJob) with `job.id`.\n3. While the job `status` is `processing`, wait `retryAfter` seconds and poll again.\n4. On `complete`, merge the job's `contacts` into your enrich results by `id`. Do not replace the whole enrich payload.\n5. On `expired` or `failed`, stop and keep what Enrich Contacts already returned.\n\nBranch on whether `job` is present, and then on the job `status`. Don't infer that work is still running because an email or phone is empty.\n\nPolling is free. A data point is billed once, by whichever call delivered it.\n---\n> **Tip:** If `canReveal.credits` is `0` in the search response, that data has already been revealed for your account - re-enriching it is free.\n\n> **Billing:** Charged per revealed field (email or phone) via per-datapoint pricing.\n\n> **Persisting to a table:** Pass `tableId` to also add these contacts to an existing table and populate the Work email / Phone columns. See [Contacts Tables](#tag/Contacts-Tables).\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/enrich","href":"/api-reference/enrich/enrich-contacts","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n blockquote: \"blockquote\",\n code: \"code\",\n h2: \"h2\",\n h3: \"h3\",\n hr: \"hr\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Reveal full contact data for contacts you’ve already found via Search Contacts.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pass up to 100 contact \", _jsx(_components.code, {\n children: \"ids\"\n }), \" (from the search response). Use the \", _jsx(_components.code, {\n children: \"reveal\"\n }), \" field to control what gets unlocked:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"emails\"\n }), \" - work and personal email addresses\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"phones\"\n }), \" - mobile and direct phone numbers\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Omit \", _jsx(_components.code, {\n children: \"reveal\"\n }), \" to get both by default\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(_components.h3, {\n children: \"Waterfall Reveal\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Fall through to your enabled third-party providers when Lusha’s own data has no match, for extra reach on hard-to-match contacts.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"If \", _jsx(_components.strong, {\n children: \"Data Waterfall\"\n }), \" is enabled on your account, with specific providers turned on under \", _jsx(_components.strong, {\n children: \"Account > Waterfall\"\n }), \", the waterfall runs automatically on every Enrich Contacts call - you don’t need to pass anything to trigger it.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pass \", _jsx(_components.code, {\n children: \"waterfallEnabled: false\"\n }), \" to opt a specific call out:\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"2\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"2\",\n children: [_jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \" \\\"reveal\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"emails\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"phones\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"],\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \" \\\"waterfallEnabled\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#569CD6\"\n },\n children: \"false\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"reveal\"\n }), \" controls \", _jsx(_components.strong, {\n children: \"which fields\"\n }), \" come back.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"waterfallEnabled\"\n }), \" controls whether the waterfall runs for this call at all. Defaults to \", _jsx(_components.code, {\n children: \"true\"\n }), \" whenever Data Waterfall is enabled on your account; pass \", _jsx(_components.code, {\n children: \"false\"\n }), \" to disable it just for this call.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Provider order isn’t configurable - Lusha manages that internally.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"If Data Waterfall is off or no providers are enabled on your account, \", _jsx(_components.code, {\n children: \"waterfallEnabled\"\n }), \" has no effect either way.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When the waterfall runs, the response adds \", _jsx(_components.code, {\n children: \"status\"\n }), \", \", _jsx(_components.code, {\n children: \"statusDescription\"\n }), \" and (when a field is empty because the waterfall did not run) \", _jsx(_components.code, {\n children: \"statusReason\"\n }), \". Each email and phone carries \", _jsx(_components.code, {\n children: \"dataSource\"\n }), \" (\", _jsx(_components.code, {\n children: \"lusha\"\n }), \" or \", _jsx(_components.code, {\n children: \"\u003cproviderId>\"\n }), \"), plus \", _jsx(_components.code, {\n children: \"credits\"\n }), \" when an external provider delivered it. Contacts with unresolved data points list them in \", _jsx(_components.code, {\n children: \"missingDataPoints\"\n }), \". These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape.\"]\n }), \"\\n\", _jsxs(_components.h3, {\n children: [\"Async results (\", _jsx(_components.code, {\n children: \"job\"\n }), \")\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a \", _jsx(_components.code, {\n children: \"job\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"If the response has no \", _jsx(_components.code, {\n children: \"job\"\n }), \", it is final.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"If \", _jsx(_components.code, {\n children: \"job\"\n }), \" is present, wait \", _jsx(_components.code, {\n children: \"job.retryAfter\"\n }), \" seconds, then call \", _jsx(_components.a, {\n href: \"#operation/getContactsEnrichJob\",\n children: \"Get Contacts Enrich Job\"\n }), \" with \", _jsx(_components.code, {\n children: \"job.id\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"While the job \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"processing\"\n }), \", wait \", _jsx(_components.code, {\n children: \"retryAfter\"\n }), \" seconds and poll again.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"On \", _jsx(_components.code, {\n children: \"complete\"\n }), \", merge the job’s \", _jsx(_components.code, {\n children: \"contacts\"\n }), \" into your enrich results by \", _jsx(_components.code, {\n children: \"id\"\n }), \". Do not replace the whole enrich payload.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"On \", _jsx(_components.code, {\n children: \"expired\"\n }), \" or \", _jsx(_components.code, {\n children: \"failed\"\n }), \", stop and keep what Enrich Contacts already returned.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Branch on whether \", _jsx(_components.code, {\n children: \"job\"\n }), \" is present, and then on the job \", _jsx(_components.code, {\n children: \"status\"\n }), \". Don’t infer that work is still running because an email or phone is empty.\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Polling is free. A data point is billed once, by whichever call delivered it.\"\n }), \"\\n\", _jsxs(_components.blockquote, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Tip:\"\n }), \" If \", _jsx(_components.code, {\n children: \"canReveal.credits\"\n }), \" is \", _jsx(_components.code, {\n children: \"0\"\n }), \" in the search response, that data has already been revealed for your account - re-enriching it is free.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.blockquote, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Billing:\"\n }), \" Charged per revealed field (email or phone) via per-datapoint pricing.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.blockquote, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Persisting to a table:\"\n }), \" Pass \", _jsx(_components.code, {\n children: \"tableId\"\n }), \" to also add these contacts to an existing table and populate the Work email / Phone columns. See \", _jsx(_components.a, {\n href: \"#tag/Contacts-Tables\",\n children: \"Contacts Tables\"\n }), \".\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Enrich Contacts","description":"Reveal full contact data for contacts you've already found via Search Contacts.\n\nPass up to 100 contact `ids` (from the search response). Use the `reveal` field to control what gets unlocked:\n- `emails` - work and personal email addresses\n- `phones` - mobile and direct phone numbers\n- Omit `reveal` to get both by default\n\n---\n\n### Waterfall Reveal\nFall through to your enabled third-party providers when Lusha's own data has no match, for extra reach on hard-to-match contacts.\n\nIf **Data Waterfall** is enabled on your account, with specific providers turned on under **Account > Waterfall**, the waterfall runs automatically on every Enrich Contacts call - you don't need to pass anything to trigger it.\n\n\nPass `waterfallEnabled: false` to opt a specific call out:\n\n ```json\n \"reveal\": [\"emails\", \"phones\"],\n \"waterfallEnabled\": false\n ```\n\n- `reveal` controls **which fields** come back.\n- `waterfallEnabled` controls whether the waterfall runs for this call at all. Defaults to `true` whenever Data Waterfall is enabled on your account; pass `false` to disable it just for this call.\n- Provider order isn't configurable - Lusha manages that internally.\n- If Data Waterfall is off or no providers are enabled on your account, `waterfallEnabled` has no effect either way.\n\nWhen the waterfall runs, the response adds `status`, `statusDescription` and (when a field is empty because the waterfall did not run) `statusReason`. Each email and phone carries `dataSource` (`lusha` or `\u003cproviderId>`), plus `credits` when an external provider delivered it. Contacts with unresolved data points list them in `missingDataPoints`. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape.\n\n### Async results (`job`)\nFast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a `job`.\n\n1. If the response has no `job`, it is final.\n2. If `job` is present, wait `job.retryAfter` seconds, then call [Get Contacts Enrich Job](#operation/getContactsEnrichJob) with `job.id`.\n3. While the job `status` is `processing`, wait `retryAfter` seconds and poll again.\n4. On `complete`, merge the job's `contacts` into your enrich results by `id`. Do not replace the whole enrich payload.\n5. On `expired` or `failed`, stop and keep what Enrich Contacts already returned.\n\nBranch on whether `job` is present, and then on the job `status`. Don't infer that work is still running because an email or phone is empty.\n\nPolling is free. A data point is billed once, by whichever call delivered it.\n---\n> **Tip:** If `canReveal.credits` is `0` in the search response, that data has already been revealed for your account - re-enriching it is free.\n\n> **Billing:** Charged per revealed field (email or phone) via per-datapoint pricing.\n\n> **Persisting to a table:** Pass `tableId` to also add these contacts to an existing table and populate the Work email / Phone columns. See [Contacts Tables](#tag/Contacts-Tables).\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/enrich","href":"/api-reference/enrich/enrich-contacts","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/lusha-14097d0b/dc79a6b820cc1c13/intercom.js"],"openApiReferenceData":{"operation":{"tags":["Enrich"],"summary":"Enrich Contacts","operationId":"enrichContacts","description":"Reveal full contact data for contacts you've already found via Search Contacts.\n\nPass up to 100 contact `ids` (from the search response). Use the `reveal` field to control what gets unlocked:\n- `emails` - work and personal email addresses\n- `phones` - mobile and direct phone numbers\n- Omit `reveal` to get both by default\n\n---\n\n### Waterfall Reveal\nFall through to your enabled third-party providers when Lusha's own data has no match, for extra reach on hard-to-match contacts.\n\nIf **Data Waterfall** is enabled on your account, with specific providers turned on under **Account > Waterfall**, the waterfall runs automatically on every Enrich Contacts call - you don't need to pass anything to trigger it.\n\n\nPass `waterfallEnabled: false` to opt a specific call out:\n\n ```json\n \"reveal\": [\"emails\", \"phones\"],\n \"waterfallEnabled\": false\n ```\n\n- `reveal` controls **which fields** come back.\n- `waterfallEnabled` controls whether the waterfall runs for this call at all. Defaults to `true` whenever Data Waterfall is enabled on your account; pass `false` to disable it just for this call.\n- Provider order isn't configurable - Lusha manages that internally.\n- If Data Waterfall is off or no providers are enabled on your account, `waterfallEnabled` has no effect either way.\n\nWhen the waterfall runs, the response adds `status`, `statusDescription` and (when a field is empty because the waterfall did not run) `statusReason`. Each email and phone carries `dataSource` (`lusha` or `\u003cproviderId>`), plus `credits` when an external provider delivered it. Contacts with unresolved data points list them in `missingDataPoints`. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape.\n\n### Async results (`job`)\nFast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a `job`.\n\n1. If the response has no `job`, it is final.\n2. If `job` is present, wait `job.retryAfter` seconds, then call [Get Contacts Enrich Job](#operation/getContactsEnrichJob) with `job.id`.\n3. While the job `status` is `processing`, wait `retryAfter` seconds and poll again.\n4. On `complete`, merge the job's `contacts` into your enrich results by `id`. Do not replace the whole enrich payload.\n5. On `expired` or `failed`, stop and keep what Enrich Contacts already returned.\n\nBranch on whether `job` is present, and then on the job `status`. Don't infer that work is still running because an email or phone is empty.\n\nPolling is free. A data point is billed once, by whichever call delivered it.\n---\n> **Tip:** If `canReveal.credits` is `0` in the search response, that data has already been revealed for your account - re-enriching it is free.\n\n> **Billing:** Charged per revealed field (email or phone) via per-datapoint pricing.\n\n> **Persisting to a table:** Pass `tableId` to also add these contacts to an existing table and populate the Work email / Phone columns. See [Contacts Tables](#tag/Contacts-Tables).\n","requestBody":"7e1ebb5a-1d80-46b4-b80b-dcb095da7150","responses":{"200":"2b2ea540-06c3-4e2e-b84c-4d60c5ca2b5b","400":"8faaaf1a-160e-4b79-aefb-99ecad289f21","401":"fab9238c-1a14-45af-9ae2-a74871e89d11","402":"3e60ab86-b367-44ca-8e47-31e60947755e","403":"94141cf5-b3a0-43dc-950f-4059b7920c26","429":"e9e282b3-b85d-4f6d-b318-3c34c8c2146b"},"method":"post","type":"path","servers":["3169910d-c980-4c87-9945-a6521fee12f2"],"security":["2f1acc1c-bd8a-4843-bd43-0e9592ca50ae"],"path":"/v3/contacts/enrich","baseUrlOptions":["https://api.lusha.com"],"title":"Enrich Contacts","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","java","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","uniqueKey":"ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":100,"example":["4389064654","4389064624"],"isRequired":true,"uniqueKey":"ids","typeLabel":"string[]"},"reveal":{"type":"array","items":{"type":"string","enum":["emails","phones"],"uniqueKey":"reveal.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["emails","phones"],"uniqueKey":"reveal","typeLabel":"enum\u003cstring>[]"},"waterfallEnabled":{"type":"boolean","default":true,"description":"Whether this call is allowed to fall through to your enabled\nthird-party providers when Lusha's own data has no match, for the fields\nrequested via `reveal`. Defaults to `true` whenever Data Waterfall is\nenabled on your account (Account > Waterfall) - pass `false` to opt this\nspecific call out. Has no effect if Data Waterfall or no providers are\nenabled on your account. Provider order isn't configurable - Lusha manages\nthat internally.\n`false` means Lusha data only. If Lusha does not have a requested field, the response sets `statusReason: WATERFALL_DISABLED`.\n","example":false,"uniqueKey":"waterfallEnabled","typeLabel":"boolean"},"tableId":{"type":"string","description":"Optional. If provided, these contacts are also added to this table (if not already present) and the revealed fields' columns are populated. See the Tables API.","example":"482910","uniqueKey":"tableId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"standard":{"title":"standard","value":{"ids":["4389064654","4389064624"],"reveal":["emails","phones"]}},"waterfallDisabled":{"title":"waterfallDisabled","value":{"ids":["4389064654","4389064624"],"reveal":["emails","phones"],"waterfallEnabled":false}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"2b2ea540-06c3-4e2e-b84c-4d60c5ca2b5b":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","format":"uuid","uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"4389064704","uniqueKey":"results.items.[INDEX].id","typeLabel":"string"},"firstName":{"type":"string","example":"Orit","uniqueKey":"results.items.[INDEX].firstName","typeLabel":"string"},"lastName":{"type":"string","example":"Shilvock","uniqueKey":"results.items.[INDEX].lastName","typeLabel":"string"},"fullName":{"type":"string","example":"Orit Shilvock","uniqueKey":"results.items.[INDEX].fullName","typeLabel":"string"},"jobTitle":{"type":"object","properties":{"title":{"type":"string","example":"Vice President of Partnerships","uniqueKey":"results.items.[INDEX].jobTitle.title","typeLabel":"string"},"departments":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].jobTitle.departments.items.[INDEX]","typeLabel":"string"},"example":["Business Development"],"uniqueKey":"results.items.[INDEX].jobTitle.departments","typeLabel":"string[]"},"seniority":{"type":"string","example":"Vice President","uniqueKey":"results.items.[INDEX].jobTitle.seniority","typeLabel":"string"},"startDate":{"type":"string","description":"Date the contact started in this role","example":"2023-04-01","uniqueKey":"results.items.[INDEX].jobTitle.startDate","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].jobTitle","typeLabel":"object"},"location":{"type":"object","properties":{"country":{"type":"string","example":"Israel","uniqueKey":"results.items.[INDEX].location.country","typeLabel":"string"},"countryIso2":{"type":"string","example":"IL","uniqueKey":"results.items.[INDEX].location.countryIso2","typeLabel":"string"},"state":{"type":"string","example":"Tel Aviv District","uniqueKey":"results.items.[INDEX].location.state","typeLabel":"string"},"city":{"type":"string","example":"Tel Aviv","uniqueKey":"results.items.[INDEX].location.city","typeLabel":"string"},"continent":{"type":"string","example":"Asia","uniqueKey":"results.items.[INDEX].location.continent","typeLabel":"string"},"coordinates":{"type":"array","items":{"type":"number","uniqueKey":"results.items.[INDEX].location.coordinates.items.[INDEX]","typeLabel":"number"},"example":[34.78057098388672,32.08087921142578],"description":"City location coordinates: `[longitude, latitude]` of the city the contact is based in. City-level only - not a street address or neighborhood.","uniqueKey":"results.items.[INDEX].location.coordinates","typeLabel":"number[]"},"isEuContact":{"type":"boolean","example":false,"uniqueKey":"results.items.[INDEX].location.isEuContact","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].location","typeLabel":"object"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"results.items.[INDEX].tags.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"results.items.[INDEX].tags.items.[INDEX].name","typeLabel":"string"},"color":{"type":"string","example":"#FF5733","uniqueKey":"results.items.[INDEX].tags.items.[INDEX].color","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].tags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].tags","typeLabel":"object[]"},"emails":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"orit.shilvock@lusha.com","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].email","typeLabel":"string\u003cemail>"},"type":{"type":"string","enum":["work","private","unknown"],"example":"work","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"confidence":{"oneOf":[{"type":"string","example":"A+","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].confidence.oneOf.0","typeLabel":"string"},{"type":"null","example":"A+","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].confidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].emails.items.[INDEX].confidence","typeLabel":"string | null"},"updateDate":{"type":"string","format":"date","example":"2026-04-23","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].updateDate","typeLabel":"string\u003cdate>"},"dataSource":{"type":"string","description":"Where this data point came from. `lusha` for Lusha data, or `\u003cproviderId>` when an external Data Waterfall provider delivered it (for example `wiza`). Omitted when the waterfall did not run.","example":"lusha","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].dataSource","typeLabel":"string"},"credits":{"type":"number","description":"Credits charged for this one data point. Present only when an external provider delivered it. Omitted for Lusha-sourced data points.","uniqueKey":"results.items.[INDEX].emails.items.[INDEX].credits","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].emails.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].emails","typeLabel":"object[]"},"phones":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string","example":"+14155551234","uniqueKey":"results.items.[INDEX].phones.items.[INDEX].number","typeLabel":"string"},"type":{"type":"string","enum":["mobile","direct","work","unknown"],"example":"mobile","uniqueKey":"results.items.[INDEX].phones.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"doNotCall":{"type":"boolean","example":false,"uniqueKey":"results.items.[INDEX].phones.items.[INDEX].doNotCall","typeLabel":"boolean"},"updateDate":{"type":"string","format":"date","example":"2026-04-23","uniqueKey":"results.items.[INDEX].phones.items.[INDEX].updateDate","typeLabel":"string\u003cdate>"},"dataSource":{"type":"string","description":"Where this data point came from. `lusha` for Lusha data, or `\u003cproviderId>` when an external Data Waterfall provider delivered it (for example `wiza`). Omitted when the waterfall did not run.","example":"lusha","uniqueKey":"results.items.[INDEX].phones.items.[INDEX].dataSource","typeLabel":"string"},"credits":{"type":"number","description":"Credits charged for this one data point. Present only when an external provider delivered it. Omitted for Lusha-sourced data points.","uniqueKey":"results.items.[INDEX].phones.items.[INDEX].credits","typeLabel":"number"}},"uniqueKey":"results.items.[INDEX].phones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].phones","typeLabel":"object[]"},"company":{"type":"object","properties":{"id":{"type":"string","example":"16303253","uniqueKey":"results.items.[INDEX].company.id","typeLabel":"string"},"name":{"type":"string","example":"Lusha","uniqueKey":"results.items.[INDEX].company.name","typeLabel":"string"},"domain":{"type":"string","example":"www.lusha.com","uniqueKey":"results.items.[INDEX].company.domain","typeLabel":"string"},"industry":{"type":"string","example":"Technology, Information \u0026 Media","uniqueKey":"results.items.[INDEX].company.industry","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].company","typeLabel":"object"},"socialLinks":{"type":"object","properties":{"linkedin":{"type":"string","example":"https://www.linkedin.com/in/orit-shilvock-6243bb5","uniqueKey":"results.items.[INDEX].socialLinks.linkedin","typeLabel":"string"},"xUrl":{"type":"string","example":"https://twitter.com/lushaofficial","uniqueKey":"results.items.[INDEX].socialLinks.xUrl","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].socialLinks","typeLabel":"object"},"previousEmployment":{"type":"array","items":{"type":"object","properties":{"company":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].company.name","typeLabel":"string"},"domain":{"type":"string","uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].company.domain","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].company","typeLabel":"object"},"jobTitle":{"type":"object","properties":{"title":{"type":"string","uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].jobTitle.title","typeLabel":"string"},"departments":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].jobTitle.departments.items.[INDEX]","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].jobTitle.departments","typeLabel":"string[]"},"seniority":{"type":"string","uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].jobTitle.seniority","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX].jobTitle","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].previousEmployment.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].previousEmployment","typeLabel":"object[]"},"linkedinFollowers":{"type":"integer","description":"Number of followers on the contact's LinkedIn profile.","example":1520,"uniqueKey":"results.items.[INDEX].linkedinFollowers","typeLabel":"integer"},"linkedinConnections":{"type":"integer","description":"Number of connections on the contact's LinkedIn profile.","example":500,"uniqueKey":"results.items.[INDEX].linkedinConnections","typeLabel":"integer"},"profile":{"type":"object","description":"Professional profile details from the contact's LinkedIn profile. Each list is omitted when Lusha has no data for it. The `has` array on Search Contacts (`skills`, `certifications`, `awards`, `courses`) shows what's available before you enrich.","properties":{"skills":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].profile.skills.items.[INDEX]","typeLabel":"string"},"example":["Python","Project Management"],"uniqueKey":"results.items.[INDEX].profile.skills","typeLabel":"string[]"},"certifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Certification name.","example":"AWS Certified Solutions Architect - Associate","uniqueKey":"results.items.[INDEX].profile.certifications.items.[INDEX].name","typeLabel":"string"},"authority":{"type":"string","description":"Issuing organization.","example":"Amazon Web Services","uniqueKey":"results.items.[INDEX].profile.certifications.items.[INDEX].authority","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].profile.certifications.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].profile.certifications","typeLabel":"object[]"},"awards":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Award title.","example":"Employee of the Year","uniqueKey":"results.items.[INDEX].profile.awards.items.[INDEX].title","typeLabel":"string"},"date":{"type":"string","description":"Year the award was received.","example":"2019","uniqueKey":"results.items.[INDEX].profile.awards.items.[INDEX].date","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].profile.awards.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].profile.awards","typeLabel":"object[]"},"courses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Course name.","example":"Machine Learning","uniqueKey":"results.items.[INDEX].profile.courses.items.[INDEX].name","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].profile.courses.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].profile.courses","typeLabel":"object[]"}},"uniqueKey":"results.items.[INDEX].profile","typeLabel":"object"},"partialProfile":{"type":"boolean","description":"Whether this is a partial profile. Search and Prospecting return partial profiles only when `options.includePartialProfiles` is `true`.","uniqueKey":"results.items.[INDEX].partialProfile","typeLabel":"boolean"},"updateDate":{"type":"string","format":"date","example":"2026-04-23","uniqueKey":"results.items.[INDEX].updateDate","typeLabel":"string\u003cdate>"},"error":{"type":"object","description":"Per-item error in a batch response","properties":{"code":{"type":"string","enum":["NOT_FOUND","COMPLIANCE_RESTRICTED","ENRICH_FAILED","NO_SCORE"],"example":"NOT_FOUND","uniqueKey":"results.items.[INDEX].error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"Contact not found","uniqueKey":"results.items.[INDEX].error.message","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].error","typeLabel":"object"},"missingDataPoints":{"type":"array","maxItems":2,"items":{"type":"object","description":"A requested data point the waterfall could not resolve. Describes the waterfall as a whole, not a single provider.","properties":{"type":{"type":"string","enum":["email","phone"],"example":"phone","uniqueKey":"results.items.[INDEX].missingDataPoints.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["NOT_FOUND","BILLING_FAILED"],"description":"`NOT_FOUND` - every source was searched and nothing was found.\n`BILLING_FAILED` - the run stopped on credits before the field was fully searched.","example":"NOT_FOUND","uniqueKey":"results.items.[INDEX].missingDataPoints.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"Human-readable text. Do not parse it.","uniqueKey":"results.items.[INDEX].missingDataPoints.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].missingDataPoints.items.[INDEX]","typeLabel":"object"},"description":"Present when the waterfall ran and at least one requested data point is still unresolved. At most one entry for `email` and one for `phone`.","uniqueKey":"results.items.[INDEX].missingDataPoints","typeLabel":"object[]"}},"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results","typeLabel":"object[]"},"tableWrite":{"type":"object","description":"Added to a Prospecting, Enrich, Signals, or Lookalike response when `tableId` is passed on the request. The primary response is unaffected even if the table write fails.\n","properties":{"tableId":{"type":"string","example":"482910","uniqueKey":"tableWrite.tableId","typeLabel":"string"},"added":{"type":"integer","description":"Number of new entities added to the table by this call.","example":3,"uniqueKey":"tableWrite.added","typeLabel":"integer"},"alreadyPresent":{"type":"integer","description":"Number of entities from this call that were already in the table.","example":2,"uniqueKey":"tableWrite.alreadyPresent","typeLabel":"integer"},"columnsCreated":{"type":"integer","description":"Number of columns auto-created by this call (e.g. a Signals column created on first use).","example":0,"uniqueKey":"tableWrite.columnsCreated","typeLabel":"integer"},"rowsProcessed":{"type":"integer","description":"Number of rows the column-run touched as part of this call.","example":5,"uniqueKey":"tableWrite.rowsProcessed","typeLabel":"integer"},"rowsCharged":{"type":"integer","description":"Number of those rows that incurred a credit charge.","example":5,"uniqueKey":"tableWrite.rowsCharged","typeLabel":"integer"},"rowsAlreadyPaidInTable":{"type":"integer","description":"Number of those rows that were already paid for in this table and were not re-charged.","example":0,"uniqueKey":"tableWrite.rowsAlreadyPaidInTable","typeLabel":"integer"},"creditsCharged":{"type":"integer","description":"Credits charged specifically for this table write.","example":0,"uniqueKey":"tableWrite.creditsCharged","typeLabel":"integer"}},"uniqueKey":"tableWrite","typeLabel":"object"},"billing":{"type":"object","description":"Credit usage summary for a V3 API request","properties":{"creditsCharged":{"type":"integer","description":"Total credits charged for this request","example":3,"uniqueKey":"billing.creditsCharged","typeLabel":"integer"},"resultsReturned":{"type":"integer","description":"Number of successful results returned","example":1,"uniqueKey":"billing.resultsReturned","typeLabel":"integer"},"lowBalance":{"type":"boolean","description":"Whether the account's credit balance is low","example":false,"uniqueKey":"billing.lowBalance","typeLabel":"boolean"}},"uniqueKey":"billing","typeLabel":"object"},"status":{"type":"string","enum":["completed","partial","halted","OUT_OF_CREDITS","PARTIAL_OUT_OF_CREDITS"],"description":"Waterfall outcome for the request. Omitted when the waterfall did not run.\n\n- `completed` - every requested data point was resolved.\n- `partial` - at least one requested data point is still missing, or still in progress when `job` is present.\n- `halted` - the run stopped before it finished the provider list.\n- `OUT_OF_CREDITS` - the run stopped because the account could not pay.\n- `PARTIAL_OUT_OF_CREDITS` - some data was returned, then credits ran out.","example":"partial","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"statusDescription":{"type":"string","description":"Human-readable text, present whenever `status` is set. Do not parse it - branch on `status` and `statusReason`.","example":"Some requested data points are still being retrieved.","uniqueKey":"statusDescription","typeLabel":"string"},"statusReason":{"type":"string","enum":["WATERFALL_NOT_CONFIGURED","WATERFALL_NOT_IN_PLAN","WATERFALL_DISABLED"],"description":"Stable reason a requested field is empty because the waterfall did not run. When set, `status` is `partial`.\n\n- `WATERFALL_NOT_CONFIGURED` - Data Waterfall is on the plan, but no providers are connected.\n- `WATERFALL_NOT_IN_PLAN` - Data Waterfall is not on the account's plan.\n- `WATERFALL_DISABLED` - the request set `waterfallEnabled` to `false`, and Lusha did not have the field.","uniqueKey":"statusReason","typeLabel":"enum\u003cstring>"},"job":{"type":"object","description":"Present only when an async provider is still working. Absent means the response is final.","properties":{"id":{"type":"string","description":"Pass this as `jobId` to `GET /v3/contacts/jobs/{jobId}`.","example":"wf_3f2b9c1e-4a7d-4f3b-9c2e-1d6a5b8c7e90","uniqueKey":"job.id","typeLabel":"string"},"status":{"type":"string","enum":["processing"],"description":"Always `processing` on the Enrich Contacts response.","uniqueKey":"job.status","typeLabel":"enum\u003cstring>"},"expiresAt":{"type":"string","format":"date-time","description":"After this time the job is gone.","example":"2026-01-15T10:30:00Z","uniqueKey":"job.expiresAt","typeLabel":"string\u003cdate-time>"},"retryAfter":{"type":"number","description":"Seconds to wait before the first poll.","example":5,"uniqueKey":"job.retryAfter","typeLabel":"number"}},"uniqueKey":"job","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"final":{"title":"final","value":{"requestId":"71581363-f73d-46e1-9115-ecbd771b964b","results":[{"id":"4389064654","firstName":"Daniel","lastName":"Turgeman","fullName":"Daniel Turgeman","jobTitle":{"title":"Technical Product Manager","departments":["Product"],"seniority":"Manager"},"location":{"country":"Israel","countryIso2":"IL","city":"Tel Aviv","continent":"Asia","coordinates":[34.78057098388672,32.08087921142578],"isEuContact":false},"tags":[],"emails":[{"email":"daniel.t@lusha.com","type":"work","confidence":"A+","updateDate":"2026-04-23"}],"phones":[],"company":{"id":"16303253","name":"Lusha","domain":"www.lusha.com","industry":"Technology, Information \u0026 Media"},"socialLinks":{"linkedin":"https://www.linkedin.com/in/daniel-turgeman-49676b161"},"previousEmployment":[],"updateDate":"2026-04-23"}],"billing":{"creditsCharged":2,"resultsReturned":2}}},"asyncJob":{"title":"asyncJob","value":{"requestId":"c3d4e5f6-a7b8-9012-cdef-345678901234","results":[{"id":"v1.AbCdEfGhIjKlMnOpQrStUvWxYz012345","firstName":"John","lastName":"Doe","emails":[{"email":"john.doe@example.com","type":"work","confidence":"A+","dataSource":"lusha"}]}],"billing":{"creditsCharged":1,"resultsReturned":1},"status":"partial","statusDescription":"Some requested data points are still being retrieved.","job":{"id":"wf_3f2b9c1e-4a7d-4f3b-9c2e-1d6a5b8c7e90","status":"processing","expiresAt":"2026-01-15T10:30:00Z","retryAfter":5}}}},"exampleType":"examples"}},"exampleType":"examples"},"8faaaf1a-160e-4b79-aefb-99ecad289f21":{"description":"Bad request - invalid input data","content":{"application/json":{"schema":{"type":"object","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Error message","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Detailed error messages (optional, only for validation errors)","example":["entityType must be one of: contact, company"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":400,"message":"Invalid request parameters"},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"message":"Invalid request parameters"}}},"exampleType":"examples"}},"exampleType":"examples"},"fab9238c-1a14-45af-9ae2-a74871e89d11":{"description":"Unauthorized - invalid or missing API key","content":{"application/json":{"schema":{"type":"object","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Error message","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Detailed error messages (optional, only for validation errors)","example":["entityType must be one of: contact, company"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":401,"message":"Invalid API key"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"message":"Invalid API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"3e60ab86-b367-44ca-8e47-31e60947755e":{"description":"Payment required - insufficient credits","content":{"application/json":{"schema":{"type":"object","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Error message","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Detailed error messages (optional, only for validation errors)","example":["entityType must be one of: contact, company"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":402,"message":"Insufficient credits for this operation"},"examples":{"Example":{"title":"Example","value":{"statusCode":402,"message":"Insufficient credits for this operation"}}},"exampleType":"examples"}},"exampleType":"examples"},"94141cf5-b3a0-43dc-950f-4059b7920c26":{"description":"Forbidden - account inactive, V3 access not enabled, or plan does not include this feature","content":{"application/json":{"schema":{"type":"object","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Error message","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Detailed error messages (optional, only for validation errors)","example":["entityType must be one of: contact, company"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"accountInactive":{"title":"accountInactive","value":{"statusCode":403,"message":"Your account is not active. Please reach out to support at support@lusha.com"}},"v3NotEnabled":{"title":"v3NotEnabled","value":{"statusCode":403,"message":"V3 API access is not enabled for your account"}}},"exampleType":"examples"}},"exampleType":"examples"},"e9e282b3-b85d-4f6d-b318-3c34c8c2146b":{"description":"Too many requests - rate limit exceeded","content":{"application/json":{"schema":{"type":"object","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Error message","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Detailed error messages (optional, only for validation errors)","example":["entityType must be one of: contact, company"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":429,"message":"Too many requests. Please wait before making another request."},"examples":{"Example":{"title":"Example","value":{"statusCode":429,"message":"Too many requests. Please wait before making another request."}}},"exampleType":"examples"}},"headers":{"x-rate-limit-daily":{"description":"Total requests allowed per day","schema":{"type":"integer"}},"x-daily-requests-left":{"description":"Requests remaining in daily quota","schema":{"type":"integer"}},"x-rate-limit-hourly":{"description":"Total requests allowed per hour","schema":{"type":"integer"}},"x-hourly-requests-left":{"description":"Requests remaining in hourly quota","schema":{"type":"integer"}},"x-rate-limit-minute":{"description":"Total requests allowed per minute","schema":{"type":"integer"}},"x-minute-requests-left":{"description":"Requests remaining in current minute window","schema":{"type":"integer"}}},"exampleType":"examples"}},"security":{"2f1acc1c-bd8a-4843-bd43-0e9592ca50ae":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api_key","description":"Your Lusha API key. You can find this in your Lusha dashboard under API settings.\nInclude this key in the `api_key` header for all requests.\n","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"3169910d-c980-4c87-9945-a6521fee12f2":{"url":"https://api.lusha.com","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"api_key","description":"Your Lusha API key. You can find this in your Lusha dashboard under API settings.\nInclude this key in the `api_key` header for all requests.\n","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"api_key","type":"string","description":"Your Lusha API key. You can find this in your Lusha dashboard under API settings.\nInclude this key in the `api_key` header for all requests.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"api_key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"lusha-14097d0b","siteName":"Lusha Knowledge Hub","title":"Enrich Contacts - Lusha Knowledge Hub","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{"V3":{"href":"/api-reference/enrich/enrich-contacts","matchLevel":0},"V2 (Legacy)":{"href":"/api-reference/prospecting--search-\u0026-enrich/enrich-contacts","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T18:38:12.542Z","originalFileLocation":"api-reference/enrich/enrich-contacts.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Reveal full contact data for contacts you\u0026#x27;ve already found via Search Contacts. Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked: - emails - work and personal email addresses - phones - mobile and direct phone numbers - Omit reveal to get both by default --- ### Waterfall Reveal Fall through to your enabled third-party providers when Lusha\u0026#x27;s own data has no match, for extra reach on hard-to-match contacts. If Data Waterfall is enabled on your account, with specific providers turned on under Account \u0026gt; Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don\u0026#x27;t need to pass anything to trigger it. Pass waterfallEnabled: false to opt a specific call out: json \u0026quot;reveal\u0026quot;: [\u0026quot;emails\u0026quot;, \u0026quot;phones\u0026quot;], \u0026quot;waterfallEnabled\u0026quot;: false - reveal controls which fields come back. - waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call. - Provider order isn\u0026#x27;t configurable - Lusha manages that internally. - If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way. When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or ), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape. ### Async results (job) Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job. 1. If the response has no job, it is final. 2. If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id. 3. While the job status is processing, wait retryAfter seconds and poll again. 4. On complete, merge the job\u0026#x27;s contacts into your enrich results by id. Do not replace the whole enrich payload. 5. On expired or failed, stop and keep what Enrich Contacts already returned. Branch on whether job is present, and then on the job status. Don\u0026#x27;t infer that work is still running because an email or phone is empty. Polling is free. A data point is billed once, by whichever call delivered it. --- \u0026gt; Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free. \u0026gt; Billing: Charged per revealed field (email or phone) via per-datapoint pricing. \u0026gt; Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lusha Knowledge Hub\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Enrich Contacts - Lusha Knowledge Hub\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reveal full contact data for contacts you\u0026#x27;ve already found via Search Contacts. Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked: - emails - work and personal email addresses - phones - mobile and direct phone numbers - Omit reveal to get both by default --- ### Waterfall Reveal Fall through to your enabled third-party providers when Lusha\u0026#x27;s own data has no match, for extra reach on hard-to-match contacts. If Data Waterfall is enabled on your account, with specific providers turned on under Account \u0026gt; Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don\u0026#x27;t need to pass anything to trigger it. Pass waterfallEnabled: false to opt a specific call out: json \u0026quot;reveal\u0026quot;: [\u0026quot;emails\u0026quot;, \u0026quot;phones\u0026quot;], \u0026quot;waterfallEnabled\u0026quot;: false - reveal controls which fields come back. - waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call. - Provider order isn\u0026#x27;t configurable - Lusha manages that internally. - If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way. When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or ), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape. ### Async results (job) Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job. 1. If the response has no job, it is final. 2. If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id. 3. While the job status is processing, wait retryAfter seconds and poll again. 4. On complete, merge the job\u0026#x27;s contacts into your enrich results by id. Do not replace the whole enrich payload. 5. On expired or failed, stop and keep what Enrich Contacts already returned. Branch on whether job is present, and then on the job status. Don\u0026#x27;t infer that work is still running because an email or phone is empty. Polling is free. A data point is billed once, by whichever call delivered it. --- \u0026gt; Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free. \u0026gt; Billing: Charged per revealed field (email or phone) via per-datapoint pricing. \u0026gt; Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lusha Knowledge Hub\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lusha.com/api-reference/enrich/enrich-contacts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lusha-14097d0b.mintlify.site/_mintlify/api/og/v2?division=Enrich\u0026amp;title=Enrich+Contacts\u0026amp;description=Reveal+full+contact+data+for+contacts+you%27ve+already+found+via+Search+Contacts.%0A%0APass+up+to+100+contact+%60ids%60+%28from+the+search+response%29.+Use+the+%60reveal%60+field\u0026amp;theme=32c141a77927ad05dd38dace\u0026amp;signature=9e877ed362c5e4e2a303d98f9314a8db75319af3ced2c574416bc9a78faa1310\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Enrich Contacts - Lusha Knowledge Hub\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reveal full contact data for contacts you\u0026#x27;ve already found via Search Contacts. Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked: - emails - work and personal email addresses - phones - mobile and direct phone numbers - Omit reveal to get both by default --- ### Waterfall Reveal Fall through to your enabled third-party providers when Lusha\u0026#x27;s own data has no match, for extra reach on hard-to-match contacts. If Data Waterfall is enabled on your account, with specific providers turned on under Account \u0026gt; Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don\u0026#x27;t need to pass anything to trigger it. Pass waterfallEnabled: false to opt a specific call out: json \u0026quot;reveal\u0026quot;: [\u0026quot;emails\u0026quot;, \u0026quot;phones\u0026quot;], \u0026quot;waterfallEnabled\u0026quot;: false - reveal controls which fields come back. - waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call. - Provider order isn\u0026#x27;t configurable - Lusha manages that internally. - If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way. When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or ), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape. ### Async results (job) Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job. 1. If the response has no job, it is final. 2. If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id. 3. While the job status is processing, wait retryAfter seconds and poll again. 4. On complete, merge the job\u0026#x27;s contacts into your enrich results by id. Do not replace the whole enrich payload. 5. On expired or failed, stop and keep what Enrich Contacts already returned. Branch on whether job is present, and then on the job status. Don\u0026#x27;t infer that work is still running because an email or phone is empty. Polling is free. A data point is billed once, by whichever call delivered it. --- \u0026gt; Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free. \u0026gt; Billing: Charged per revealed field (email or phone) via per-datapoint pricing. \u0026gt; Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lusha-14097d0b.mintlify.site/_mintlify/api/og/v2?division=Enrich\u0026amp;title=Enrich+Contacts\u0026amp;description=Reveal+full+contact+data+for+contacts+you%27ve+already+found+via+Search+Contacts.%0A%0APass+up+to+100+contact+%60ids%60+%28from+the+search+response%29.+Use+the+%60reveal%60+field\u0026amp;theme=32c141a77927ad05dd38dace\u0026amp;signature=9e877ed362c5e4e2a303d98f9314a8db75319af3ced2c574416bc9a78faa1310\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lusha-14097d0b/bbZyyWQ78WmZY57w/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lusha Knowledge Hub\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#863fff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lusha.com/api-reference/enrich/enrich-contacts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/enrich/enrich-contacts.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lusha.com/#organization\",\"name\":\"Lusha Knowledge Hub\",\"url\":\"https://docs.lusha.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lusha-14097d0b/fbYn8-MoaljvjGwq/logo-light.svg?fit=max\u0026auto=format\u0026n=fbYn8-MoaljvjGwq\u0026q=85\u0026s=6a57e7bcd594f8328dddc6bac14a320d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lusha.com#website\",\"name\":\"Lusha Knowledge Hub\",\"url\":\"https://docs.lusha.com\",\"publisher\":{\"@id\":\"https://docs.lusha.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts#webpage\",\"url\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts\",\"name\":\"Enrich Contacts\",\"description\":\"Reveal full contact data for contacts you've already found via Search Contacts. Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked: - emails - work and personal email addresses - phones - mobile and direct phone numbers - Omit reveal to get both by default --- ### Waterfall Reveal Fall through to your enabled third-party providers when Lusha's own data has no match, for extra reach on hard-to-match contacts. If Data Waterfall is enabled on your account, with specific providers turned on under Account > Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don't need to pass anything to trigger it. Pass waterfallEnabled: false to opt a specific call out: json \\\"reveal\\\": [\\\"emails\\\", \\\"phones\\\"], \\\"waterfallEnabled\\\": false - reveal controls which fields come back. - waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call. - Provider order isn't configurable - Lusha manages that internally. - If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way. When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or ), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape. ### Async results (job) Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job. 1. If the response has no job, it is final. 2. If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id. 3. While the job status is processing, wait retryAfter seconds and poll again. 4. On complete, merge the job's contacts into your enrich results by id. Do not replace the whole enrich payload. 5. On expired or failed, stop and keep what Enrich Contacts already returned. Branch on whether job is present, and then on the job status. Don't infer that work is still running because an email or phone is empty. Polling is free. A data point is billed once, by whichever call delivered it. --- > Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free. > Billing: Charged per revealed field (email or phone) via per-datapoint pricing. > Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.\",\"dateModified\":\"2026-11-12T18:38:12.542Z\",\"isPartOf\":{\"@id\":\"https://docs.lusha.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.lusha.com/api-reference/search/search-contacts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enrich Contacts\",\"item\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts#apireference\",\"headline\":\"Enrich Contacts\",\"name\":\"Enrich Contacts\",\"description\":\"Reveal full contact data for contacts you've already found via Search Contacts. Pass up to 100 contact ids (from the search response). Use the reveal field to control what gets unlocked: - emails - work and personal email addresses - phones - mobile and direct phone numbers - Omit reveal to get both by default --- ### Waterfall Reveal Fall through to your enabled third-party providers when Lusha's own data has no match, for extra reach on hard-to-match contacts. If Data Waterfall is enabled on your account, with specific providers turned on under Account > Waterfall, the waterfall runs automatically on every Enrich Contacts call - you don't need to pass anything to trigger it. Pass waterfallEnabled: false to opt a specific call out: json \\\"reveal\\\": [\\\"emails\\\", \\\"phones\\\"], \\\"waterfallEnabled\\\": false - reveal controls which fields come back. - waterfallEnabled controls whether the waterfall runs for this call at all. Defaults to true whenever Data Waterfall is enabled on your account; pass false to disable it just for this call. - Provider order isn't configurable - Lusha manages that internally. - If Data Waterfall is off or no providers are enabled on your account, waterfallEnabled has no effect either way. When the waterfall runs, the response adds status, statusDescription and (when a field is empty because the waterfall did not run) statusReason. Each email and phone carries dataSource (lusha or ), plus credits when an external provider delivered it. Contacts with unresolved data points list them in missingDataPoints. These fields are omitted when the waterfall did not run, so a Lusha-only response keeps its usual shape. ### Async results (job) Fast providers answer inside this call. A slower provider does not hold the request open: the response returns what is already known, plus a job. 1. If the response has no job, it is final. 2. If job is present, wait job.retryAfter seconds, then call Get Contacts Enrich Job with job.id. 3. While the job status is processing, wait retryAfter seconds and poll again. 4. On complete, merge the job's contacts into your enrich results by id. Do not replace the whole enrich payload. 5. On expired or failed, stop and keep what Enrich Contacts already returned. Branch on whether job is present, and then on the job status. Don't infer that work is still running because an email or phone is empty. Polling is free. A data point is billed once, by whichever call delivered it. --- > Tip: If canReveal.credits is 0 in the search response, that data has already been revealed for your account - re-enriching it is free. > Billing: Charged per revealed field (email or phone) via per-datapoint pricing. > Persisting to a table: Pass tableId to also add these contacts to an existing table and populate the Work email / Phone columns. See Contacts Tables.\",\"url\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lusha.com/api-reference/enrich/enrich-contacts#webpage\"},\"dateModified\":\"2026-11-12T18:38:12.542Z\",\"publisher\":{\"@id\":\"https://docs.lusha.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lusha.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lusha Knowledge Hub\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lusha Knowledge Hub\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/enrich/enrich-contacts.md","siteName":"Lusha Knowledge Hub","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Lusha Data","pages":[{"title":"Lusha Data","href":"/data-catalog/search-layer"}]},{"tab":"API Docs","versions":[{"version":"V3","default":true,"tag":"Latest","groups":[{"group":"Overview","icon":"compass","pages":[{"title":"API overview","href":"/api-reference/overview"}]},{"group":"Resources","icon":"book","pages":[{"group":"Getting Started","root":{"title":"Get started with the Lusha API","sidebarTitle":"Get Started","href":"/introduction"},"pages":[{"group":"Overview","pages":[{"title":"Authenticate with the Lusha API","href":"/authentication"},{"title":"Rate limits for the Lusha API","href":"/rate-limiting"},{"title":"Lusha API error codes and responses","href":"/error-codes"}]},{"group":"Credits \u0026 Plans","pages":[{"title":"Unified Credits plan","href":"/credits/unified-credits"}]},{"group":"Search \u0026 Enrich","pages":[{"title":"Enrich contacts and companies with Lusha","sidebarTitle":"Overview","href":"/enrichment/overview"},{"title":"Search contacts","sidebarTitle":"Search Contacts","href":"/enrichment/search-contacts"},{"title":"Enrich contacts","sidebarTitle":"Enrich Contacts","href":"/enrichment/enrich-contacts"},{"title":"Search and enrich contacts","sidebarTitle":"Search and Enrich Contacts","href":"/enrichment/search-and-enrich-contacts"},{"title":"Search companies","sidebarTitle":"Search Companies","href":"/enrichment/search-companies"},{"title":"Enrich companies","sidebarTitle":"Enrich Companies","href":"/enrichment/enrich-companies"},{"title":"Search and enrich companies","sidebarTitle":"Search and Enrich Companies","href":"/enrichment/search-and-enrich-companies"}]},{"group":"Prospecting","pages":[{"title":"Prospect and build ICP lists with Lusha","sidebarTitle":"Overview","href":"/prospecting/overview"},{"title":"Search prospecting contacts by ICP filters","sidebarTitle":"Search Contacts","href":"/prospecting/search-contacts"},{"title":"Search prospecting companies by firmographic filters","sidebarTitle":"Search Companies","href":"/prospecting/search-companies"}]},{"group":"Signals","pages":[{"title":"Detect contact and company signals with Lusha","sidebarTitle":"Overview","href":"/signals/overview"},{"title":"Retrieve contact signals for company changes and promotions","sidebarTitle":"Contact Signals","href":"/signals/contact-signals"},{"title":"Retrieve company signals for business events and growth","sidebarTitle":"Company Signals","href":"/signals/company-signals"},{"title":"Score contacts and companies by signal activity","sidebarTitle":"Signal Score","href":"/signals/signal-score"}]},{"group":"ICP Fit Score","pages":[{"title":"Score contacts and companies against your ICPs","sidebarTitle":"Overview","href":"/icp-fit-score/overview"}]},{"group":"Buying Group","pages":[{"title":"Map the buying committee at target companies","sidebarTitle":"Overview","href":"/buying-group/overview"}]},{"group":"Conversations","pages":[{"title":"Search sales conversations and fetch transcripts","sidebarTitle":"Overview","href":"/conversations/overview"}]},{"group":"Website Visits","pages":[{"title":"See which companies are visiting your website","sidebarTitle":"Overview","href":"/website-visits/overview"}]},{"group":"Webhooks","pages":[{"title":"Receive real-time signal notifications via webhooks","sidebarTitle":"Overview","href":"/webhooks/overview"},{"title":"Create and manage Lusha webhook subscriptions","sidebarTitle":"Subscriptions","href":"/webhooks/manage-subscriptions"},{"title":"Verify Lusha webhook signatures with HMAC-SHA256","sidebarTitle":"Security","href":"/webhooks/security"},{"title":"Monitor webhook delivery with Lusha audit logs","sidebarTitle":"Audit Logs","href":"/webhooks/audit-logs"}]},{"group":"Lookalikes","pages":[{"title":"Discover lookalike contacts and companies with AI","sidebarTitle":"Overview","href":"/lookalikes/overview"},{"title":"Find similar contacts with POST /v3/contacts/lookalike","sidebarTitle":"Contact Lookalikes","href":"/lookalikes/contact-lookalikes"},{"title":"Find similar companies with POST /v3/companies/lookalike","sidebarTitle":"Company Lookalikes","href":"/lookalikes/company-lookalikes"}]},{"group":"Filters Reference","pages":[{"title":"Available contact filters for prospecting searches","sidebarTitle":"Contact Filters","href":"/filters/contact-filters"},{"title":"Available company filters for prospecting searches","sidebarTitle":"Company Filters","href":"/filters/company-filters"}]},{"group":"Account","pages":[{"title":"Monitor account usage with GET /v3/account/usage","sidebarTitle":"Usage","href":"/account/usage"}]}]},{"group":"Tutorials","root":{"title":"Tutorials","href":"/tutorials/index"},"pages":[{"group":"Getting Started","pages":[{"title":"API Fundamentals","href":"/tutorials/api_fundamentals"},{"title":"Postman Environment Guide","href":"/tutorials/postman-environment-guide"},{"title":"Lusha API V3: Transition and Migration Guide","href":"/tutorials/v3-migration-guide"}]},{"group":"CRM Tutorials","pages":[{"title":"HubSpot Contact Enrichment","href":"/tutorials/hubspot"},{"title":"HubSpot + Lusha Prospecting API","href":"/tutorials/hubspot-prospecting"},{"title":"Salesforce Lead Enrichment","href":"/tutorials/salesforce-contact"},{"title":"Salesforce Company Enrichment","href":"/tutorials/salesforce-company"},{"title":"Zoho Contact Data Enrichment","href":"/tutorials/zoho"}]},{"group":"Spreadsheet Tutorials","pages":[{"title":"Automate Contact Data Enrichment","href":"/tutorials/sheets-contact"},{"title":"Automate Company Data Enrichment","href":"/tutorials/sheets-company"},{"title":"Automate Contact Search and Enrich","href":"/tutorials/sheets-prospecting-contacts"},{"title":"Automate Company Search and Enrich","href":"/tutorials/sheets-prospecting-company"}]},{"group":"Automation Platforms","pages":[{"title":"Lusha connector on Albato","href":"/tutorials/albato"},{"title":"Lusha Connect on Make","href":"/tutorials/make"},{"title":"Build an Automated Prospecting Workflow with Lusha and Make","href":"/tutorials/make-prospecting-workflow"},{"title":"Lusha Connector on n8n: Data Enrichment","href":"/tutorials/n8n"},{"title":"Lusha Connect on Pipedream","href":"/tutorials/pipedream"},{"title":"Lusha Workato Connector Guide","href":"/tutorials/workato1"},{"title":"Lusha Connect Prospecting Workflow Guide","href":"/tutorials/workato2"},{"title":"Lusha Zapier Connector Guide","href":"/tutorials/zapier"},{"title":"Lusha connector on Clay: Data enrichment","href":"/tutorials/clay-data"},{"title":"Find company and people lookalikes in Clay","href":"/tutorials/clay-lookalikes"},{"title":"Lusha signals in Clay: identify and prioritise high-intent accounts","href":"/tutorials/clay-signals"},{"title":"Clay: suggested workflow combinations","href":"/tutorials/clay-workflow"}]},{"group":"Signals \u0026 Recommendations","pages":[{"title":"Signals API","href":"/tutorials/signals"},{"title":"Recommendations API","href":"/tutorials/recommendations"}]},{"group":"Tables","icon":"table","pages":[{"title":"Tables API","href":"/tutorials/tables"}]}]},{"group":"FAQ","root":{"title":"FAQ","href":"/faq/overview"},"pages":[{"group":"API \u0026 Integration","pages":[{"title":"Lusha API - Frequently Asked Questions (Q\u0026A)","href":"/faq/api"}]},{"group":"Data \u0026 Coverage","pages":[{"title":"Data \u0026 Coverage FAQ","href":"/faq/data"}]},{"group":"Credits \u0026 Billing","pages":[{"title":"Credits \u0026 Billing FAQ","href":"/faq/billing"}]},{"group":"MCP","pages":[{"title":"MCP FAQ","href":"/faq/mcp"}]}]},{"title":"API playground","href":"/playground"},{"title":"Changelog","href":"/changelog/overview"}]},{"group":"Endpoints","icon":"server","pages":[{"group":"Search","icon":"magnifying-glass","pages":[{"title":"Search Contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/search","href":"/api-reference/search/search-contacts"},{"title":"Search Companies","description":"Look up companies by identifier. Returns a preview of each company profile.\n\n**Accepted identifiers (at least one required per company):**\n- Lusha company `id`\n- `name`\n- `domain`\n\nUp to 100 companies per request. Each result includes a `has` field listing the data available via Enrich Companies.\n\nPass a `signals` filter to narrow results to companies showing specific activity (e.g. headcount growth, hiring surge).\n\n> **Billing:** Charged per successful result via the `api_search` action.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/search","href":"/api-reference/search/search-companies"}]},{"group":"Enrich","icon":"address-book","pages":[{"title":"Enrich Contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/enrich","href":"/api-reference/enrich/enrich-contacts"},{"title":"Get Contacts Enrich Job","description":"Poll the async Data Waterfall job returned in the `job` field of [Enrich Contacts](#operation/enrichContacts). No body and no query parameters.\n\n- While `status` is `processing`, wait `retryAfter` seconds and poll again. `covers` lists what is still outstanding.\n- On `complete`, merge `contacts` into your enrich results by `id`. The job returns only the contacts it was still working on - contacts already returned by Enrich Contacts are not repeated.\n- On `expired` or `failed`, stop and keep what Enrich Contacts already returned.\n\n> **Billing:** Polling does not charge credits. `creditsCharged` is the async charge only - Enrich Contacts already reported its own in `billing.creditsCharged`.\n\n> **Errors:** `404` means the job does not exist, has expired, or belongs to another account (these are not distinguished) - stop polling. `503` means the job store could not be reached - retry. A `503` does not mean the job is gone.\n","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/jobs/{jobId}","href":"/api-reference/enrich/get-contacts-enrich-job"},{"title":"Enrich Companies","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/enrich","href":"/api-reference/enrich/enrich-companies"}]},{"group":"Search \u0026 Enrich","icon":"wand-magic-sparkles","pages":[{"title":"Search and Enrich Contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/search-and-enrich","href":"/api-reference/search-\u0026-enrich/search-and-enrich-contacts"},{"title":"Search and Enrich Companies","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/search-and-enrich","href":"/api-reference/search-\u0026-enrich/search-and-enrich-companies"}]},{"group":"Prospecting","icon":"magnifying-glass","pages":[{"title":"Prospecting Contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/prospecting","href":"/api-reference/prospecting/prospecting-contacts"},{"title":"Prospecting Companies","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/prospecting","href":"/api-reference/prospecting/prospecting-companies"}]},{"group":"Tables","icon":"table","pages":[{"group":"Contact Tables","icon":"address-book","pages":[{"title":"Create Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/tables","href":"/api-reference/contacts-tables/create-contacts-table"},{"title":"List Contacts Tables","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/tables/list","href":"/api-reference/contacts-tables/list-contacts-tables"},{"title":"Get Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/tables/{table_id}","href":"/api-reference/contacts-tables/get-contacts-table"},{"title":"Update Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/contacts/tables/{table_id}","href":"/api-reference/contacts-tables/update-contacts-table"},{"title":"Delete Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/contacts/tables/{table_id}","href":"/api-reference/contacts-tables/delete-contacts-table"},{"title":"Get Contacts Table Entities","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/tables/{table_id}/entities","href":"/api-reference/contacts-tables/get-contacts-table-entities"},{"title":"Add Entities to Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/tables/{table_id}/entities","href":"/api-reference/contacts-tables/add-entities-to-contacts-table"},{"title":"Remove Entities from Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/contacts/tables/{table_id}/entities","href":"/api-reference/contacts-tables/remove-entities-from-contacts-table"},{"title":"Get Contacts Column Catalog","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/tables/columns","href":"/api-reference/contacts-tables/get-contacts-column-catalog"},{"title":"List Contacts Table Columns","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/tables/{table_id}/columns","href":"/api-reference/contacts-tables/list-contacts-table-columns"},{"title":"Add Columns to Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/tables/{table_id}/columns","href":"/api-reference/contacts-tables/add-columns-to-contacts-table"},{"title":"Remove Column from Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/contacts/tables/{table_id}/columns/{column_id}","href":"/api-reference/contacts-tables/remove-column-from-contacts-table"},{"title":"Run Column on Contacts Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/tables/{table_id}/columns/{column_id}/run","href":"/api-reference/contacts-tables/run-column-on-contacts-table"}]},{"group":"Company Tables","icon":"building","pages":[{"title":"Create Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/tables","href":"/api-reference/companies-tables/create-companies-table"},{"title":"List Companies Tables","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/tables/list","href":"/api-reference/companies-tables/list-companies-tables"},{"title":"Get Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/tables/{table_id}","href":"/api-reference/companies-tables/get-companies-table"},{"title":"Update Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/companies/tables/{table_id}","href":"/api-reference/companies-tables/update-companies-table"},{"title":"Delete Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/companies/tables/{table_id}","href":"/api-reference/companies-tables/delete-companies-table"},{"title":"Get Companies Table Entities","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/tables/{table_id}/entities","href":"/api-reference/companies-tables/get-companies-table-entities"},{"title":"Add Entities to Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/tables/{table_id}/entities","href":"/api-reference/companies-tables/add-entities-to-companies-table"},{"title":"Remove Entities from Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/companies/tables/{table_id}/entities","href":"/api-reference/companies-tables/remove-entities-from-companies-table"},{"title":"Get Companies Column Catalog","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/tables/columns","href":"/api-reference/companies-tables/get-companies-column-catalog"},{"title":"Remove Column from Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/companies/tables/{table_id}/columns/{column_id}","href":"/api-reference/companies-tables/remove-column-from-companies-table"},{"title":"Run Column on Companies Table","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/tables/{table_id}/columns/{column_id}/run","href":"/api-reference/companies-tables/run-column-on-companies-table"}]}]},{"group":"Filters","icon":"filter","pages":[{"title":"Get Contact Filter Types (Discovery)","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/prospecting/filters","href":"/api-reference/filters/get-contact-filter-types-discovery"},{"title":"Get Contact Filter Values","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/prospecting/filters/{filterType}","href":"/api-reference/filters/get-contact-filter-values"},{"title":"Get Company Filter Types (Discovery)","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/prospecting/filters","href":"/api-reference/filters/get-company-filter-types-discovery"},{"title":"Get Company Filter Values","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/prospecting/filters/{filterType}","href":"/api-reference/filters/get-company-filter-values"}]},{"group":"Lookalikes","icon":"users","pages":[{"title":"Contact Lookalikes","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/lookalike","href":"/api-reference/lookalikes/contact-lookalikes"},{"title":"Company Lookalikes","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/lookalike","href":"/api-reference/lookalikes/company-lookalikes"}]},{"group":"Recommendations","icon":"star","pages":[{"title":"Contact Recommendations","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/recommendations","href":"/api-reference/recommendations/contact-recommendations"},{"title":"Company Recommendations","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/recommendations","href":"/api-reference/recommendations/company-recommendations"},{"title":"Contact Recommendation Filters","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/recommendations/filters","href":"/api-reference/recommendations/contact-recommendation-filters"},{"title":"Company Recommendation Filters","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/recommendations/filters","href":"/api-reference/recommendations/company-recommendation-filters"}]},{"group":"Signals","icon":"bolt","pages":[{"group":"Contact Signals","icon":"address-book","pages":[{"title":"Contact Signals","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/signals","href":"/api-reference/signals/contact-signals"},{"title":"Get Contact Signal Types","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/contacts/signals/types","href":"/api-reference/signals/get-contact-signal-types"},{"title":"Score Contacts by Signal Activity","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/signal-score","href":"/api-reference/signals/score-contacts-by-signal-activity"}]},{"group":"Company Signals","icon":"building","pages":[{"title":"Company Signals","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/signals","href":"/api-reference/signals/company-signals"},{"title":"Get Company Signal Filters (Discovery)","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/signals/filters","href":"/api-reference/signals/get-company-signal-filters-discovery"},{"title":"Get Company Signal Filter Values","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/signals/filters/{filterType}","href":"/api-reference/signals/get-company-signal-filter-values"},{"title":"Get Company Signal Types","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/companies/signals/types","href":"/api-reference/signals/get-company-signal-types"},{"title":"Score Companies by Signal Activity","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/signal-score","href":"/api-reference/signals/score-companies-by-signal-activity"}]}]},{"group":"ICP Fit Score","icon":"bullseye","pages":[{"title":"List Target Profiles","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/icp/profiles","href":"/api-reference/icp-fit-score/list-target-profiles"},{"title":"Score Contacts by ICP Fit","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/icp-fit-score","href":"/api-reference/icp-fit-score/score-contacts-by-icp-fit"},{"title":"Score Companies by ICP Fit","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/icp-fit-score","href":"/api-reference/icp-fit-score/score-companies-by-icp-fit"}]},{"group":"Buying Group","icon":"user-group","pages":[{"title":"Get Buying Group Contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/contacts/buying-group","href":"/api-reference/buying-group/get-buying-group-contacts"}]},{"group":"Conversations","icon":"comments","pages":[{"title":"Search Conversations","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/account/conversations/search","href":"/api-reference/conversations/search-conversations"},{"title":"Get Conversation Transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/account/conversations/{conversationId}/transcript","href":"/api-reference/conversations/get-conversation-transcript"}]},{"group":"Website Visits","icon":"globe","pages":[{"title":"Get Website Visitors","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/companies/website-visits","href":"/api-reference/website-visits/get-website-visitors"}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Create Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/subscriptions","href":"/api-reference/webhooks/create-subscription"},{"title":"List Subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/subscriptions","href":"/api-reference/webhooks/list-subscriptions"},{"title":"Get Subscription by ID","deprecated":null,"version":null,"openapi":"/openapi.json get /api/subscriptions/{id}","href":"/api-reference/webhooks/get-subscription-by-id"},{"title":"Update Subscription","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/subscriptions/{id}","href":"/api-reference/webhooks/update-subscription"},{"title":"Delete Subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json post /api/subscriptions/delete","href":"/api-reference/webhooks/delete-subscriptions"},{"title":"Test Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/subscriptions/{id}/test","href":"/api-reference/webhooks/test-subscription"},{"title":"Create Opt-Out Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/subscriptions/opt-out","href":"/api-reference/webhooks/create-opt-out-subscription"},{"title":"Get Audit Logs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/audit-logs","href":"/api-reference/webhooks/get-audit-logs"},{"title":"Get Audit Log Statistics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/audit-logs/stats","href":"/api-reference/webhooks/get-audit-log-statistics"},{"title":"Get Account Secret","deprecated":null,"version":null,"openapi":"/openapi.json get /api/account/secret","href":"/api-reference/webhooks/get-account-secret"},{"title":"Regenerate Account Secret","deprecated":null,"version":null,"openapi":"/openapi.json post /api/account/secret/regenerate","href":"/api-reference/webhooks/regenerate-account-secret"}]},{"group":"Account","icon":"chart-bar","pages":[{"title":"Get Account Usage","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/account/usage","href":"/api-reference/account/get-account-usage"}]}]}]},{"version":"V2 (Legacy)","tag":"Deprecated","pages":[{"title":"V2 (Legacy)","href":"/api-reference/prospecting--search-\u0026-enrich/enrich-contacts"}]}]},{"tab":"MCP Docs","pages":[{"title":"MCP Docs","href":"/mcp/overview"}]},{"tab":"User Guide","dropdowns":[{"dropdown":"Getting Started","icon":"flag","groups":[{"group":"About Lusha","icon":"house","root":{"title":"Lusha user guide","href":"/user-guide"},"pages":[{"title":"Lusha user guide","href":"/user-guide/index"},{"title":"Lusha platform - user guide","href":"/user-guide/overview"},{"title":"Introduction to Lusha","href":"/user-guide/getting-started/introduction-to-lusha"},{"title":"Explore key features","href":"/user-guide/explore-key-features"},{"title":"Understanding data quality and coverage","href":"/user-guide/getting-started/understanding-data-quality-and-coverage"},{"title":"Lusha glossary","href":"/user-guide/getting-started/lusha-glossary"}]},{"group":"Using Lusha","icon":"list-check","root":{"title":"Getting started","href":"/user-guide/getting-started/index"},"pages":[{"title":"Getting started","href":"/user-guide/getting-started/index"},{"title":"Dashboard \u0026 search","href":"/user-guide/dashboard"},{"title":"Notifications and feed - your Lusha activity center","href":"/user-guide/getting-started/notifications-and-feed-your-lusha-activity-center"},{"title":"How credits work in Lusha","href":"/user-guide/getting-started/how-credits-work-in-lusha"}]},{"group":"Account and Login","icon":"user-pen","root":{"title":"Your Lusha account settings - a complete guide","href":"/user-guide/user-setup/your-lusha-account-settings-a-complete-guide"},"pages":[{"title":"Your Lusha account settings - a complete guide","href":"/user-guide/user-setup/your-lusha-account-settings-a-complete-guide"},{"title":"How to sign up to Lusha?","href":"/user-guide/user-setup/how-to-sign-up-to-lusha"},{"title":"Two-Factor Authentication (2FA)","href":"/user-guide/user-setup/two-factor-authentication-2fa"},{"title":"How to change your password","href":"/user-guide/user-setup/how-to-change-your-password"},{"title":"Forgot your password?","href":"/user-guide/user-setup/forgot-your-password"},{"title":"Why does my email address appear as invalid or suspicious?","href":"/user-guide/user-setup/why-does-my-email-address-appear-as-invalid-or-suspicious"},{"title":"How to change your login email or transfer admin access","href":"/user-guide/user-setup/how-to-change-your-login-email-or-transfer-admin-access"}]},{"group":"Help and Feedback","icon":"circle-question","root":{"title":"How to contact Lusha support","href":"/user-guide/getting-started/how-to-contact-lusha-support"},"pages":[{"title":"How to contact Lusha support","href":"/user-guide/getting-started/how-to-contact-lusha-support"},{"title":"Join Lusha community","href":"/user-guide/getting-started/join-lusha-community"},{"title":"Feature requests","href":"/user-guide/getting-started/feature-requests"}]}]},{"dropdown":"Build \u0026 Enrich","icon":"table","groups":[{"group":"Workspace \u0026 Tables","icon":"table-cells","root":{"title":"Platform \u0026 Workspace","href":"/user-guide/platform-and-workspace"},"pages":[{"title":"Platform \u0026 Workspace","href":"/user-guide/platform-and-workspace"},{"title":"Dashboard \u0026 search","href":"/user-guide/dashboard"},{"title":"Search \u0026 lists","href":"/user-guide/search-and-lists"},{"group":"Introduction \u0026 Agentic Search","icon":"wand-magic-sparkles","pages":[{"title":"Workspace: AI-powered table building","href":"/user-guide/introduction-and-getting-started/workspace-ai-powered-table-building"},{"title":"How to use the AI chat to build a table","href":"/user-guide/building-your-workspace-tables/how-to-use-the-ai-chat-to-build-a-table"},{"title":"Workspace credit costs - full breakdown","href":"/user-guide/introduction-and-getting-started/workspace-credit-costs-full-breakdown"},{"title":"Waterfall in Workspace: fill in missing phones and emails","href":"/user-guide/enriching-with-data-and-signals/waterfall-in-workspace-fill-in-missing-phones-and-emails"},{"title":"Moving from Classic tables to Workspaces","href":"/user-guide/introduction-and-getting-started/moving-from-classic-tables-to-workspaces"}]},{"group":"Building \u0026 Filtering Tables","icon":"filter","pages":[{"title":"Using Workspace filters: Contact and company filter panel","href":"/user-guide/building-your-workspace-tables/using-workspace-filters-contact-and-company-filter-panel"},{"title":"How to build your first API request using Tables","href":"/user-guide/building-your-workspace-tables/how-to-build-your-first-api-request-using-tables"},{"title":"Technology filter (Technographics)","href":"/user-guide/shared/filters/technology-filter-technographics"},{"title":"Funding data","href":"/user-guide/shared/filters/funding-data"},{"title":"SIC and NAICS filters","href":"/user-guide/shared/filters/sic-and-naics-filters"},{"title":"Hiring surge (Premium Filter)","href":"/user-guide/shared/filters/hiring-surge-premium-filter"},{"title":"Time zone filter: reach contacts in working hours","href":"/user-guide/shared/filters/time-zone-filter"}]},{"group":"Account-Based Workspace (Beta)","icon":"building","pages":[{"title":"Account-Based Prospecting (Beta)","href":"/user-guide/getting-started-with-prospecting/account-based-prospecting-beta"},{"title":"Account-Based Prospecting filters overview","href":"/user-guide/building-your-workspace-tables/Account-Based Prospecting (Beta)/account-based-prospecting-filters-overview"},{"title":"Not in my CRM filter","href":"/user-guide/building-your-workspace-tables/Account-Based Prospecting (Beta)/not-in-my-crm-filter"},{"title":"Importing from CRM into Workspace","href":"/user-guide/building-your-workspace-tables/Account-Based Prospecting (Beta)/importing-from-crm-into-workspace"},{"title":"How to target existing CRM records in Lusha","href":"/user-guide/building-your-workspace-tables/Account-Based Prospecting (Beta)/how-to-target-existing-crm-records-in-lusha"}]},{"group":"Managing Views, Signals \u0026 Sharing","icon":"share-nodes","pages":[{"title":"Working inside a saved table","href":"/user-guide/shared/tables/working-inside-a-saved-workspace-table"},{"title":"Workspace enrichment: Lusha data vs. AI data columns","href":"/user-guide/enriching-with-data-and-signals/workspace-enrichment-lusha-data-vs-ai-data-columns"},{"title":"Workspace Signals: Tracking buying intent and contact changes","href":"/user-guide/enriching-with-data-and-signals/workspace-signals-tracking-buying-intent-and-contact-changes"},{"title":"Waterfall in Workspace: fill in missing phones and emails","href":"/user-guide/enriching-with-data-and-signals/waterfall-in-workspace-fill-in-missing-phones-and-emails"},{"title":"Permissions, ownership, and shared tables","href":"/user-guide/shared/tables/permissions-ownership-and-shared-tables"},{"title":"Access your complete contacts table","href":"/user-guide/shared/tables/access-your-complete-contacts-list"},{"title":"Exporting from a Workspace table","href":"/user-guide/managing-and-exporting-data/exporting-from-a-workspace-table"},{"title":"Managing first and last name fields in exports","href":"/user-guide/managing-and-exporting-data/managing-first-and-last-name-fields-in-exports"},{"title":"CSV file opens in the wrong format","href":"/user-guide/shared/export/csv-file-opens-in-the-wrong-format"}]}]},{"group":"Prospecting","icon":"magnifying-glass","root":{"title":"Search \u0026 lists","href":"/user-guide/search-and-lists"},"pages":[{"group":"Getting Started with Prospecting","icon":"flag","pages":[{"title":"Getting started with Lusha Prospecting","href":"/user-guide/getting-started-with-prospecting/getting-started-with-lusha-prospecting"},{"title":"The ultimate guide to prospect search with Lusha","href":"/user-guide/getting-started-with-prospecting/the-ultimate-guide-to-prospect-search-with-lusha"},{"title":"Lusha Lookalikes: Finding similar contacts and companies","href":"/user-guide/getting-started-with-prospecting/lusha-lookalikes-finding-similar-contacts-and-companies"},{"title":"Company Bulk Search","href":"/user-guide/getting-started-with-prospecting/company-bulk-search"},{"title":"Saved and recent searches","href":"/user-guide/getting-started-with-prospecting/saved-and-recent-searches"},{"title":"Update your shown contacts","href":"/user-guide/getting-started-with-prospecting/update-your-shown-contacts"},{"title":"Contact tagging","href":"/user-guide/getting-started-with-prospecting/contact-tagging"},{"title":"Company 360 - Company page","href":"/user-guide/getting-started-with-prospecting/company-360-company-page"},{"title":"Why am I seeing a search activity limit?","href":"/user-guide/getting-started-with-prospecting/why-am-i-seeing-a-search-activity-limit"},{"title":"Website Visitors","href":"/user-guide/shared/features/website-visitors"}]},{"group":"Core Filters","icon":"sliders","pages":[{"title":"Filters breakdown - how to reach your ICP","href":"/user-guide/shared/filters/filters-breakdown-how-to-reach-your-icp"},{"title":"Technology filter (Technographics)","href":"/user-guide/shared/filters/technology-filter-technographics"},{"title":"Funding data","href":"/user-guide/shared/filters/funding-data"},{"title":"SIC and NAICS filters","href":"/user-guide/shared/filters/sic-and-naics-filters"},{"title":"Email confidence ratings","href":"/user-guide/shared/filters/email-confidence-ratings"},{"title":"Time zone filter: reach contacts in working hours","href":"/user-guide/shared/filters/time-zone-filter"}]},{"group":"Intent Data","icon":"signal","pages":[{"title":"What is Lusha Intent","href":"/user-guide/intent/what-is-lusha-intent"},{"title":"How to use Lusha's Intent solution","href":"/user-guide/intent/how-to-use-lushas-intent-solution"}]},{"group":"Saving Searches to Tables","icon":"floppy-disk","pages":[{"title":"Working inside a saved table","href":"/user-guide/shared/tables/working-inside-a-saved-workspace-table"},{"title":"Adding contacts to an existing table","href":"/user-guide/managing-and-exporting-data/adding-contacts-to-an-existing-workspace-table"},{"title":"Permissions, ownership, and shared tables","href":"/user-guide/shared/tables/permissions-ownership-and-shared-tables"},{"title":"Access your complete contacts table","href":"/user-guide/shared/tables/access-your-complete-contacts-list"}]},{"group":"Exports \u0026 CSVs","icon":"file-export","pages":[{"title":"Export contacts to CSV file","href":"/user-guide/export/export-contacts-to-csv-file"},{"title":"Export company data to CSV","href":"/user-guide/export/export-company-data-to-csv"},{"title":"CSV file opens in the wrong format","href":"/user-guide/shared/export/csv-file-opens-in-the-wrong-format"},{"title":"Exclude Salesforce contacts from bulk reveal","href":"/user-guide/export/exclude-salesforce-contacts-from-bulk-reveal"},{"title":"Why are some contacts excluded from bulk reveal?","href":"/user-guide/export/why-are-some-contacts-excluded-from-bulk-reveal"}]}]},{"group":"Enrichment","icon":"file-csv","pages":[{"group":"CSV Enrichment","root":{"title":"CSV Enrichment","href":"/user-guide/csv-enrichment/csv-enrichment"},"pages":[{"title":"The Enrich page - Lusha's enrichment hub","href":"/user-guide/csv-enrichment/the-enrich-page-lushas-enrichment-hub"},{"title":"CSV Enrichment","href":"/user-guide/csv-enrichment/csv-enrichment"},{"title":"How to create a CSV file","href":"/user-guide/csv-enrichment/how-to-create-a-csv-file"},{"title":"CSV Enrichment - How matching and match rates work","href":"/user-guide/csv-enrichment/csv-enrichment-how-matching-and-match-rates-work"}]},{"group":"CRM AutoSync","pages":[{"title":"The new CRM AutoSync","href":"/user-guide/crm-enrichment/new-crm-data-enrichment"},{"title":"CRM Data Enrichment (Legacy)","href":"/user-guide/crm-enrichment/crm-data-enrichment"}]}]},{"group":"Recommendations","icon":"sparkles","root":{"title":"How AI Recommendations work","href":"/user-guide/ai-recommendations/how-ai-recommendations-work"},"pages":[{"group":"AI Recommendations","icon":"sparkles","pages":[{"title":"How AI Recommendations work","href":"/user-guide/ai-recommendations/how-ai-recommendations-work"},{"title":"ICP Hub: Setup, scoring, and recommendations","href":"/user-guide/ai-recommendations/icp-hub-setup-scoring-and-recommendations"},{"title":"How to create a Target Profile","href":"/user-guide/ai-recommendations/how-to-create-a-target-profile"},{"title":"Buying Group: find the right contacts fast","href":"/user-guide/ai-recommendations/buying-group-find-the-right-contacts-fast"},{"title":"Signal Score and ICP Fit Score","href":"/user-guide/ai-recommendations/signal-score-and-icp-fit-score"},{"title":"Opportunity Conversion Score (Beta) explained","href":"/user-guide/ai-recommendations/opportunity-conversion-score-beta"},{"title":"Credits and Unified Recommendations Table","href":"/user-guide/ai-recommendations/credits-and-unified-recommendations-table"}]},{"group":"Event-Based Recommendations","icon":"bolt","pages":[{"title":"Activity-based recommendations","href":"/user-guide/event-based-recommendations/activity-based-recommendations"},{"title":"CRM-based recommendations","href":"/user-guide/event-based-recommendations/crm-based-recommendations"},{"title":"Intent-based recommendations","href":"/user-guide/event-based-recommendations/intent-based-recommendations"}]}]},{"group":"AI Notetaker","icon":"comments","root":{"title":"Lusha AI Notetaker overview","href":"/user-guide/getting-started-with-conversations/lusha-conversations-overview"},"pages":[{"group":"Getting Started with AI Notetaker","icon":"flag","pages":[{"title":"Lusha AI Notetaker overview","href":"/user-guide/getting-started-with-conversations/lusha-conversations-overview"},{"title":"How to connect your calendar to Lusha AI Notetaker","href":"/user-guide/getting-started-with-conversations/how-to-connect-your-calendar-to-lusha-conversations"},{"title":"How to record a live or unscheduled meeting","href":"/user-guide/getting-started-with-conversations/how-to-record-a-live-or-unscheduled-meeting"},{"title":"Lusha Over Calendar","href":"/user-guide/getting-started-with-conversations/lusha-over-calendar"}]},{"group":"Using the Platform","icon":"layer-group","pages":[{"title":"Deal View in Lusha AI Notetaker","href":"/user-guide/using-the-platform/deal-view-in-lusha-conversations"},{"title":"Using the Snippets Library","href":"/user-guide/using-the-platform/using-the-snippets-library"},{"title":"Understanding your Meeting Analysis","href":"/user-guide/using-the-platform/understanding-your-meeting-analysis"},{"title":"Lusha AI Notetaker Insights","href":"/user-guide/using-the-platform/lusha-conversations-insights"},{"title":"Troubleshooting: Zoom settings blocking the AI Notetaker bot","href":"/user-guide/using-the-platform/zoom-settings-blocking-the-conversations-bot"},{"title":"Coaching your team with Lusha AI Notetaker","href":"/user-guide/team-and-administration/coaching-your-team-with-lusha-conversations"},{"title":"Lusha AI Notetaker - data security and compliance","href":"/user-guide/trust-and-compliance/lusha-conversations-data-security-and-compliance"}]}]}]},{"dropdown":"Extension \u0026 Outreach","icon":"puzzle-piece","groups":[{"group":"Extension","icon":"chrome","root":{"title":"Lusha's Extension","href":"/user-guide/extension/extension-overview"},"pages":[{"title":"Lusha's Extension","href":"/user-guide/extension/extension-overview"},{"title":"Lusha Extension - prospect from anywhere","href":"/user-guide/extension/lusha-extension-prospect-from-anywhere"},{"title":"Chrome extension","href":"/user-guide/chrome-extension"},{"title":"LinkedIn extension","href":"/user-guide/linkedin-extension"},{"title":"Install Lusha Extension","href":"/user-guide/extension/install-lusha-extension"},{"title":"Getting started with Lusha's extension","href":"/user-guide/extension/getting-started-with-lushas-extension"},{"title":"Access saved contacts in the Lusha Extension","href":"/user-guide/extension/access-saved-contacts-in-the-lusha-extension"},{"title":"How to buy credits in the Lusha extension","href":"/user-guide/extension/how-to-buy-credits-in-the-lusha-extension"},{"title":"Wishlist: saving contacts with no available data","href":"/user-guide/extension/wishlist-saving-contacts-with-no-available-data"},{"title":"How to edit contact details in the Lusha Extension","href":"/user-guide/extension/how-to-edit-contact-details-in-the-lusha-extension"},{"title":"Lusha extension for recruiters","href":"/user-guide/extension/lusha-extension-for-recruiters"},{"group":"Sales Navigator – Bulk Enrichment","icon":"linkedin","pages":[{"title":"Bulk enrichment over LinkedIn Sales Navigator","href":"/user-guide/sales-navigator-bulk-enrichment/bulk-enrichment-over-linkedin-sales-navigator"},{"title":"Bulk save to table on LinkedIn Sales Navigator","href":"/user-guide/sales-navigator-bulk-enrichment/bulk-save-to-table-on-linkedin-sales-navigator"},{"title":"Bulk save leads to CRM from LinkedIn Sales Navigator","href":"/user-guide/sales-navigator-bulk-enrichment/bulk-save-leads-to-crm-from-linkedin-sales-navigator"}]},{"group":"Lusha Everywhere","icon":"globe","pages":[{"title":"What is Lusha Everywhere?","href":"/user-guide/lusha-everywhere/what-is-lusha-everywhere"},{"title":"Enabling Lusha Everywhere in every B2B website","href":"/user-guide/lusha-everywhere/enabling-lusha-everywhere-in-every-b2b-website"},{"title":"Prospecting with Lusha on HubSpot","href":"/user-guide/lusha-everywhere/prospecting-with-lusha-on-hubspot"},{"title":"Prospecting with Lusha on Salesforce","href":"/user-guide/lusha-everywhere/prospecting-with-lusha-on-salesforce"},{"title":"Prospecting with Lusha Extension through Gmail","href":"/user-guide/lusha-everywhere/prospecting-with-lusha-extension-through-gmail"}]},{"group":"FAQs \u0026 Troubleshooting","icon":"circle-question","pages":[{"title":"How to update your Lusha extension","href":"/user-guide/faqs-and-troubleshooting/how-to-update-your-lusha-extension"},{"title":"Why is my extension blank on Chrome?","href":"/user-guide/faqs-and-troubleshooting/why-is-my-extension-blank-on-chrome"},{"title":"Why is Lusha extension asking me to log in when I'm already logged in?","href":"/user-guide/faqs-and-troubleshooting/why-is-lusha-extension-asking-me-to-log-in-when-im-already-logged-in"},{"title":"Why Lusha asks for permissions to read and change data across all websites","href":"/user-guide/faqs-and-troubleshooting/why-lusha-asks-for-permissions-to-read-and-change-data-across-all-websites"},{"title":"Troubleshoot the Lusha extension","href":"/user-guide/faqs-and-troubleshooting/troubleshoot-the-lusha-extension"}]}]},{"group":"Engage \u0026 Sequences","icon":"paper-plane","root":{"title":"Engage \u0026 Sequences","href":"/user-guide/engage-and-sequences"},"pages":[{"title":"Engage \u0026 Sequences","href":"/user-guide/engage-and-sequences"},{"group":"Getting Started with Engage","icon":"flag","pages":[{"title":"Lusha Engage - outreach built into Lusha","href":"/user-guide/getting-started-with-engage/lusha-engage-outreach-built-into-lusha"},{"title":"What is Lusha Engage","href":"/user-guide/getting-started-with-engage/what-is-lusha-engage"},{"title":"Send a one-time email from a table","href":"/user-guide/getting-started-with-engage/send-a-one-time-email-from-a-table"}]},{"group":"Building Sequences","icon":"hammer","pages":[{"title":"How to compose your email sequence","href":"/user-guide/building-sequences/how-to-compose-your-email-sequence"},{"title":"How Lusha composes AI email sequences","href":"/user-guide/building-sequences/how-lusha-composes-ai-email-sequences"},{"title":"How to set up your sequence schedule","href":"/user-guide/building-sequences/how-to-set-up-your-sequence-schedule"},{"title":"How to add contacts to a sequence","href":"/user-guide/add-contacts/how-to-add-contacts-to-a-sequence"},{"title":"How to add contacts to Engage via Lusha extension","href":"/user-guide/add-contacts/how-to-add-contacts-to-engage-via-lusha-extension"},{"title":"How to add contacts to Engage via Lusha Search","href":"/user-guide/add-contacts/how-to-add-contacts-to-engage-via-lusha-search"},{"title":"Upload a CSV of contacts to your sequences","href":"/user-guide/add-contacts/upload-a-csv-of-contacts-to-your-sequences"}]},{"group":"Manage Sequences","icon":"list-check","pages":[{"title":"Overview and optimize your sequences","href":"/user-guide/manage-sequences/overview-and-optimize-your-sequences"},{"title":"How to reorder steps in a sequence","href":"/user-guide/manage-sequences/how-to-reorder-steps-in-a-sequence"},{"title":"Syncing sequences to Salesforce","href":"/user-guide/manage-sequences/syncing-sequences-to-salesforce"}]},{"group":"Performance \u0026 Troubleshooting","icon":"gauge-high","pages":[{"title":"Email limits best practices","href":"/user-guide/performance-and-troubleshooting/email-limits-best-practices"},{"title":"Engage sending limits by email provider","href":"/user-guide/performance-and-troubleshooting/engage-sending-limits-by-email-provider"},{"title":"Out of office auto-reply in Lusha Engage","href":"/user-guide/performance-and-troubleshooting/out-of-office-auto-reply-in-lusha-engage"},{"title":"Understanding email bounces in Engage","href":"/user-guide/performance-and-troubleshooting/understanding-email-bounces-in-engage"},{"title":"How to resolve Outlook 5.1.8 sending error","href":"/user-guide/performance-and-troubleshooting/how-to-resolve-outlook-518-sending-error"},{"title":"Why does my Outlook sender address look different in Engage?","href":"/user-guide/performance-and-troubleshooting/outlook-different-sender-email"},{"title":"Why are my Engage emails going to spam?","href":"/user-guide/performance-and-troubleshooting/why-are-my-engage-emails-going-to-spam"},{"title":"Why are my Engage sequences not sending?","href":"/user-guide/add-contacts/why-are-my-engage-sequences-not-sending"},{"title":"Outlook exe","href":"/user-guide/performance-and-troubleshooting/outlook-exe"}]}]}]},{"dropdown":"Integrations \u0026 API","icon":"plug","groups":[{"group":"Integrations","icon":"plug-circle-bolt","root":{"title":"Integrations","href":"/user-guide/native-crm-integrations"},"pages":[{"title":"Integrations","href":"/user-guide/native-crm-integrations"},{"title":"Available integrations","href":"/user-guide/integrations-basics/available-crm-integrations"},{"title":"Lusha integrations - connect your CRM","href":"/user-guide/integrations-basics/lusha-integrations-connect-your-crm"},{"group":"Integration Basics","icon":"book","pages":[{"title":"CRM permissions required for Lusha integration","href":"/user-guide/integrations-basics/crm-permissions-required-for-lusha-integration"},{"title":"Fields for field mapping and descriptions","href":"/user-guide/integrations-basics/fields-for-field-mapping-and-descriptions"},{"title":"Field mapping test","href":"/user-guide/integrations-basics/field-mapping-test"},{"title":"How to export contacts to CRM using Lusha","href":"/user-guide/integrations-basics/how-to-export-contacts-to-crm-using-lusha"},{"title":"Industry taxonomy update for CRM integration","href":"/user-guide/integrations-basics/industry-taxonomy-update-for-crm-integration"}]},{"group":"Email Providers","icon":"envelope","pages":[{"title":"Gmail integration setup","href":"/user-guide/integrations-basics/gmail-integration-setup"},{"title":"Outlook integration setup","href":"/user-guide/integrations-basics/outlook-integration-setup"}]},{"group":"Salesforce","icon":"cloud","root":{"title":"Salesforce integration","href":"/user-guide/salesforce"},"pages":[{"title":"Salesforce integration","href":"/user-guide/salesforce/salesforce-integration"},{"title":"Salesforce identifier (indicator)","href":"/user-guide/salesforce/salesforce-identifier-indicator"},{"title":"How to configure a Salesforce record type","href":"/user-guide/salesforce/how-to-configure-a-salesforce-record-type"},{"title":"Salesforce common errors","href":"/user-guide/salesforce/salesforce-common-errors"},{"title":"Salesforce integration: read and write permissions explained","href":"/user-guide/salesforce/salesforce-integration-read-and-write-permissions-explained"}]},{"group":"HubSpot","icon":"circle-nodes","root":{"title":"HubSpot integration","href":"/user-guide/hubspot"},"pages":[{"title":"HubSpot integration","href":"/user-guide/hubspot/hubspot-integration"},{"title":"HubSpot identifier (indicator)","href":"/user-guide/hubspot/hubspot-identifier-indicator"},{"title":"HubSpot common errors","href":"/user-guide/hubspot/hubspot-common-errors"},{"title":"Set up Lusha in HubSpot: signals on every contact","href":"/user-guide/hubspot-signals-setup"},{"title":"HubSpot contact data enrichment","href":"/user-guide/webhooks/hubspot-contact-data-enrichment"},{"title":"Enrich HubSpot contacts with Lusha's API using Zapier","href":"/user-guide/webhooks/enrich-hubspot-contacts-with-lushas-api-using-zapier"}]},{"group":"Bullhorn","icon":"bullhorn","pages":[{"title":"Bullhorn integration","href":"/user-guide/bullhorn/bullhorn-integration"},{"title":"Bullhorn identifier (indicator)","href":"/user-guide/bullhorn/bullhorn-identifier-indicator"},{"title":"Bullhorn common errors","href":"/user-guide/bullhorn/bullhorn-common-errors"}]},{"group":"Pipedrive","icon":"chart-line","pages":[{"title":"Pipedrive integration","href":"/user-guide/pipedrive/pipedrive-integration"},{"title":"Pipedrive common errors","href":"/user-guide/pipedrive/pipedrive-common-errors"}]},{"group":"Outreach","icon":"paper-plane","pages":[{"title":"Outreach integration","href":"/user-guide/outreach/outreach-integration"}]},{"group":"Salesloft","icon":"layer-group","pages":[{"title":"Salesloft integration","href":"/user-guide/salesloft/salesloft-integration"}]},{"group":"Zoho","icon":"grip","pages":[{"title":"Zoho integration","href":"/user-guide/zoho/zoho-integration"},{"title":"Zoho CRM common errors","href":"/user-guide/zoho/zoho-common-errors"}]},{"group":"Dynamics","icon":"microsoft","pages":[{"title":"MS Dynamics field mapping","href":"/user-guide/dynamics/ms-dynamics-field-mapping"},{"title":"MS Dynamics 365 common errors","href":"/user-guide/dynamics/ms-dynamics-common-errors"}]},{"group":"Capsule","icon":"address-book","pages":[{"title":"Capsule integration","href":"/user-guide/capsule/capsule-integration"}]},{"group":"Lusha Partners","icon":"handshake","pages":[{"title":"Chili Piper integration","href":"/user-guide/lusha-partners/chilipiper-integration"},{"title":"Monday.com integration","href":"/user-guide/lusha-partners/mondaycom-integration"},{"title":"SourceWhale integration","href":"/user-guide/lusha-partners/sourcewhale-integration"},{"title":"Webmetic integration","href":"/user-guide/lusha-partners/webmetic-integration"},{"title":"Wyzard.ai integration","href":"/user-guide/lusha-partners/wyzardai-integration"},{"title":"Augmented 4 integration","href":"/user-guide/lusha-partners/augmented-4-integration"},{"title":"Scalestack integration","href":"/user-guide/lusha-partners/scalestack-integration"}]}]},{"group":"Lusha's API","icon":"code","root":{"title":"Lusha's API","href":"/user-guide/lushas-api/api-overview"},"pages":[{"title":"Lusha's API","href":"/user-guide/lushas-api/api-overview"},{"title":"Lusha API \u0026 connectors - build and automate","href":"/user-guide/automations-connectors/lusha-api-connectors-build-and-automate"},{"title":"All there is to know about Lusha's API","href":"/user-guide/lushas-api/all-there-is-to-know-about-lushas-api"},{"title":"Signals API","href":"/user-guide/lushas-api/signals-api"},{"title":"Lookalike API","href":"/user-guide/lushas-api/lookalike-api"},{"title":"Website Visitors API","href":"/user-guide/lushas-api/website-visitors-api"},{"title":"Decision Makers API","href":"/user-guide/lushas-api/decision-makers-api"},{"title":"Tables API","href":"/user-guide/lushas-api/tables-api"},{"title":"Conversation Intelligence API","href":"/user-guide/lushas-api/conversation-intelligence-api"},{"title":"Data Waterfall","href":"/user-guide/lushas-api/data-waterfall"},{"title":"Industry taxonomy update for Prospecting API","href":"/user-guide/lushas-api/industry-taxonomy-update-for-prospecting-api"},{"title":"Lusha API error codes reference","href":"/user-guide/lushas-api/lusha-api-error-codes-reference"},{"group":"Automations \u0026 Connectors","icon":"plug-circle-bolt","pages":[{"title":"Lusha Connectors: Centralized automation hub","href":"/user-guide/automations-connectors/lusha-connectors-centralized-automation-hub"},{"title":"Using Lusha with connectors: Lusha Campus Plays","href":"/user-guide/automations-connectors/using-lusha-with-connectors-lusha-campus-plays"},{"title":"Lusha Connectors V3: What changed and how to update","href":"/user-guide/automations-connectors/lusha-connectors-v3-what-changed-and-how-to-update"},{"title":"How to set up webhooks in Lusha","href":"/user-guide/webhooks/how-to-set-up-webhooks-in-lusha"}]},{"group":"MCP","icon":"robot","pages":[{"title":"Lusha Model Context Protocol (MCP) Server","href":"/user-guide/mcp/lusha-model-context-protocol-mcp-server"},{"title":"Using Lusha inside LLMs","href":"/user-guide/mcp/using-lusha-inside-llms"},{"title":"How to use the Lusha plugin for Claude","href":"/user-guide/mcp/how-to-use-the-lusha-plugin-for-claude"},{"title":"Lusha Talent Sourcing","href":"/user-guide/mcp/lusha-talent-sourcing-plugin"},{"title":"How to use Intent as a signal in your AI chats","href":"/user-guide/mcp/how-to-use-intent-as-a-signal-in-ai-chats"}]}]}]},{"dropdown":"Account \u0026 Billing","icon":"user-gear","groups":[{"group":"Billing \u0026 Plans","icon":"credit-card","root":{"title":"Billing \u0026 plans","href":"/user-guide/billing-and-plans"},"pages":[{"title":"Billing \u0026 plans","href":"/user-guide/billing-and-plans"},{"group":"Plans \u0026 Upgrades","icon":"arrow-up-right-dots","pages":[{"title":"Lusha's pricing system","href":"/user-guide/plans-and-upgrades/lushas-pricing-system-2"},{"title":"How to upgrade your plan","href":"/user-guide/plans-and-upgrades/how-to-upgrade-your-plan"},{"title":"How to set up Auto Top-Up for credits","href":"/user-guide/plans-and-upgrades/how-to-set-up-auto-top-up-for-credits"},{"title":"Where can I find my credits renewal date?","href":"/user-guide/plans-and-upgrades/where-can-i-find-my-credits-renewal-date"},{"title":"Account cancellation: what happens to your credits and data","href":"/user-guide/plans-and-upgrades/account-cancellation-what-happens-to-your-credits-and-data"}]},{"group":"Billing \u0026 Payments","icon":"receipt","pages":[{"title":"Why was my payment declined?","href":"/user-guide/billing-and-payments/why-was-my-payment-declined"},{"title":"I was charged unexpectedly - what do I do?","href":"/user-guide/billing-and-payments/i-was-charged-unexpectedly-what-do-i-do"},{"title":"Billing FAQ","href":"/user-guide/billing-and-payments/billing-faq"},{"title":"How to update your billing information","href":"/user-guide/billing-and-payments/how-to-update-your-billing-information"},{"title":"How to download your invoices and receipts","href":"/user-guide/billing-and-payments/how-to-download-your-invoices-and-receipts"},{"title":"How to freeze your Lusha subscription","href":"/user-guide/billing-and-payments/how-to-freeze-your-lusha-subscription"},{"title":"How to cancel your Lusha subscription","href":"/user-guide/billing-and-payments/how-to-cancel-your-lusha-subscription"},{"title":"How to delete your Lusha account","href":"/user-guide/billing-and-payments/how-to-delete-your-lusha-account"},{"title":"Reporting on incorrect data","href":"/user-guide/billing-and-payments/reporting-on-incorrect-data"},{"title":"Tax-related documents provided by Lusha","href":"/user-guide/billing-and-payments/tax-related-documents-provided-by-lusha"}]}]},{"group":"Account \u0026 Team Management","icon":"users","root":{"title":"Account \u0026 team management","href":"/user-guide/account-and-team-management"},"pages":[{"title":"Account \u0026 team management","href":"/user-guide/account-and-team-management"},{"title":"Team management","href":"/user-guide/team-management"},{"title":"User roles and permissions","href":"/user-guide/team-management/user-roles-and-permissions"},{"title":"How to join your company's Lusha account","href":"/user-guide/team-management/how-to-join-your-companys-lusha-account"},{"title":"How to change your login email or transfer admin access","href":"/user-guide/team-management/how-to-change-your-login-email-or-transfer-admin-access"},{"title":"How to see each team member's credit usage","href":"/user-guide/team-management/how-to-see-each-team-members-credit-usage"},{"title":"Groups","href":"/user-guide/team-management/groups"},{"group":"Team Capabilities \u0026 Permissions","icon":"user-lock","pages":[{"title":"How to change roles within your account","href":"/user-guide/manage-your-team-capabilities/how-to-change-roles-within-your-account"},{"title":"How to limit credits per user or group","href":"/user-guide/manage-your-team-capabilities/how-to-limit-credits-per-user-or-group"},{"title":"How to set an inactivity timeout","href":"/user-guide/security/how-to-set-an-inactivity-timeout"}]},{"group":"Manage Your Users","icon":"users-gear","pages":[{"title":"How to invite a user to your plan","href":"/user-guide/manage-your-users/how-to-invite-a-user-to-your-plan"},{"title":"How to accept an invitation to join an account","href":"/user-guide/manage-your-users/how-to-accept-an-invitation-to-join-an-account"},{"title":"Cancel a user invitation to the plan","href":"/user-guide/manage-your-users/cancel-a-user-invitation-to-the-plan"},{"title":"How to remove a team member from your account","href":"/user-guide/manage-your-users/how-to-remove-a-team-member-from-your-account"}]},{"group":"Analytics \u0026 Usage","icon":"chart-column","pages":[{"title":"Understanding the analytics dashboard","href":"/user-guide/usage-analytics/understanding-the-analytics-dashboard"},{"title":"API usage analytics","href":"/user-guide/lushas-api/api-usage-analytics"},{"title":"How credits are counted","href":"/user-guide/usage-analytics/how-credits-are-counted"},{"title":"How to set up automated usage report","href":"/user-guide/usage-analytics/how-to-set-up-automated-usage-report"},{"title":"Export your usage report","href":"/user-guide/team-management/export-your-usage-report"}]}]},{"group":"Security \u0026 Legal","icon":"shield-halved","root":{"title":"Security \u0026 legal","href":"/user-guide/security-and-legal"},"pages":[{"title":"Security \u0026 legal","href":"/user-guide/security-and-legal"},{"title":"Privacy \u0026 compliance","href":"/user-guide/privacy-and-compliance"},{"title":"Responsible Use of the Lusha API","href":"/legal/terms"},{"group":"Security","icon":"lock","pages":[{"title":"Lusha security overview","href":"/user-guide/security/lusha-security-overview"},{"title":"Okta SAML 2.0 setup for Lusha SSO","href":"/user-guide/security/okta-saml-20-setup-for-lusha-sso"},{"title":"How to set up SSO (single sign-on)","href":"/user-guide/security/how-to-set-up-sso-single-sign-on"},{"title":"Custom SAML single sign-on","href":"/user-guide/security/custom-saml-single-sign-on"},{"title":"How to set an inactivity timeout","href":"/user-guide/security/how-to-set-an-inactivity-timeout"}]},{"group":"Privacy \u0026 Compliance","icon":"user-shield","pages":[{"title":"How can I ensure compliance with privacy laws when using Lusha's data for B2B outreach?","href":"/user-guide/privacy-and-compliance/how-can-i-ensure-compliance-with-privacy-laws-when-using-lushas-data-for-b2b-out"},{"title":"What are my rights as a data subject?","href":"/user-guide/privacy-and-compliance/what-are-my-rights-as-a-data-subject"},{"title":"How to remove your details from Lusha","href":"/user-guide/privacy-and-compliance/how-to-remove-your-details-from-lusha"},{"title":"A contact is asking how you got their data","href":"/user-guide/privacy-and-compliance/a-contact-is-asking-how-you-got-their-data"},{"title":"Do Not Call (DNC) tables","href":"/user-guide/privacy-and-compliance/do-not-call-dnc-tables"},{"title":"Opt-out contacts","href":"/user-guide/privacy-and-compliance/opt-out-contacts"},{"title":"Why was my Lusha account suspended?","href":"/user-guide/privacy-and-compliance/why-was-my-lusha-account-suspended"}]}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},"basePath":"","title":"Enrich Contacts - Lusha Knowledge Hub","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DTNSD-0M.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}