All notable changes to the Lusha API and MCP are documented here. We follow semantic versioning.
Status: Production - Released: June 2026 - Stability: Stable
Decision Makers API Added POST /v3/contacts/decision-makers - resolve companies to their most relevant contacts for outreach.
- Supply companies by
domainor Lusha companyid(exactly one per entry); up to N companies per request - Optional
clientReferenceIdper entry is echoed back in the matching result for correlation - Results are grouped per company with decision makers ranked by relevance (highest first)
- Each decision maker is returned as a free contact preview: name, title, location, LinkedIn, seniority, department,
has, andcanReveal - Pass the returned contact
idvalues to Enrich Contacts (POST /v3/contacts/enrich) to reveal emails and phones - Companies that cannot be matched return a per-item
NOT_FOUNDerror without failing the entire request
- Free for MVP (
creditsCharged: 0on all responses) - Encrypted company IDs (
vN.…) are supported; legacy numeric IDs are accepted during the transition window - Decision makers are returned as
V3ContactPreviewobjects - the same shape as Search Contacts results
Website Visits API Added POST /v3/companies/website-visits - identify and filter companies that have visited your tracked domains.
- Filter by engagement score band (
cold,warm,hot) viafilters.scoreBands - Filter by session metrics:
totalSessions,uniqueVisitors,avgSessionMinutes,daysVisited,highIntentPageviews,daysSinceLastVisit - Filter by score range via
filters.score(min/max, 1–100) - Filter by geography via
filters.visitorCountrieswithincludeandexcludearrays (ISO 3166-1 alpha-2 codes) - Sort results by any metric field via
sort.byandsort.order(ascordesc) - Paginate via
pagination.limit(max 150) andpagination.offset - Date range window cannot exceed 3 months
Domains must be configured for tracking in the Lusha dashboard before use. If any requested domain is not configured, the entire request fails with 400. Each result includes a V3 company firmographic preview (same shape as Search Companies) plus behavioral visit metrics. Pass the returned company id to Enrich Companies for full firmographic data.
startDateandendDateare required; the window between them must not exceed 3 months- Both dates must be in
YYYY-MM-DDformat - Each result includes
score,scoreBand,totalSessions,uniqueVisitors,avgSessionMinutes,daysVisited,highIntentPageviews,daysSinceLastVisit,lastVisit, andvisitorCountry
Signal Sub-Filters for Company Bulk Enrich Added optional signalsFilters parameter to POST /bulk/company/v2 to narrow signal results within requested signal types:
newsEventTypes- filter news signals by specific event types (e.g. Partnership, New Customer, Executive Hire)hiringByDepartments- filtersurgeInHiringByDepartmentsignals by departmenthiringByLocations- filtersurgeInHiringByLocationsignals by country/state- Multi-value filters use OR logic; values are not case-sensitive
- Sending
statewithoutcountryinhiringByLocationsreturns HTTP 400
Signal Sub-Filters for Company Signals API Added optional filters.include block to:
POST /api/signals/companiesPOST /api/signals/companies/search
Supports the same sub-filter options as above (newsEventTypes, hiringByDepartments, hiringByLocations).
Company Lookalikes V3 Added POST /v3/companies/lookalike - mirrors the contact lookalikes pattern introduced in v2.1.0:
- Session-based deduplication via
dedupeSessionId - Seed inputs via
domainsandlinkedinUrls excludeparameter to suppress known accounts- Returns
domain,linkedinUrl,name,employeeCount,industry, andlocationper result
Webhooks: Opt-Out Subscription Endpoint Added POST /api/subscriptions/opt-out - subscribe to real-time notifications when a contact opts out of data processing. Delivers contact identity, opt-out date, and specific data points (emails/phones) that must be removed. Supports multi-tenant setups via partnerClientId.
- Contact Lookalikes V3 - Result field
idrenamed tocontactId; nested company fieldidrenamed tocompanyIdfor clarity - Signals API -
maxResultsPerSignalis now optional across all 4 signal endpoints (previously required in v2.1.0). When omitted: returns all available signals if nostartDateis provided, or all signals fromstartDateonward if provided
- Webhooks URL Verification - Removed the challenge/response URL verification step from webhook subscription creation. Webhook URLs are no longer verified via a GET challenge request when creating or updating subscriptions.
- Signal sub-filters reduce response size and credit usage by narrowing results within a signal type without requiring separate requests
maxResultsPerSignalremains available as an optional cap when you want to limit results per signal type
Contact Lookalikes V3 Replaced POST /api/recommendations/contacts with a redesigned endpoint:
POST /v3/lookalike/contacts- returns contact lookalikes based on seed contacts- Supports multiple seed identifier types:
linkedinUrls,emails,contactIds, andcontacts(name + company) - Session-based deduplication via
dedupeSessionId- omit on first request, reuse on subsequent calls - Session history persists for 30 days from last activity
excludeparameter supports up to 500 contacts across all identifier types- Seeds require 5-100 total identifiers across all arrays
- Returns
id,firstName,lastName,socialLinks,company,jobTitle, andlocationper result
Signal Rate Control Added maxResultsPerSignal (required at time of release) to all 4 Signals API endpoints:
POST /api/signals/contactsPOST /api/signals/contacts/searchPOST /api/signals/companiesPOST /api/signals/companies/search
- Contact Lookalikes - Endpoint path changed from
/api/recommendations/contactsto/v3/lookalike/contacts. Request and response schemas fully replaced - not backwards compatible. - Signals API -
maxResultsPerSignaladded as a required parameter. Limits the number of signal instances returned per signal type per entity, starting fromstartDate.
- The new contact lookalikes endpoint aligns with the existing company lookalikes pattern
maxResultsPerSignalhelps control response size and credit consumption, especially when requestingallSignalsover long date ranges
New Company Data Fields Added 7 new data points to Company API V2 (Single & Bulk) and Prospecting Company Enrich API:
linkedinFollowers- LinkedIn followers countemailDomain- company email domaincompanyLocations- array of all known company site locations (not just HQ), each withcity,continent,country,country_iso2,location_coordinates,state,state_codealternativeName- normalized alternative company namecompanyType- type of company (e.g. "Private company")lushaPopularityTier- Lusha popularity tier
New Person Data Fields Added LinkedIn enrichment fields to Person API V2 (Single & Bulk) and Prospecting Contact Enrich API:
xUrl- Twitter/X profile URL (data.socialLinks.xUrl)linkedinFollowersCount- LinkedIn followers countlinkedinConnectionsCount- LinkedIn connections countlinkedinCertifications- professional certifications from LinkedInlinkedinCourses- courses listed on LinkedInlinkedinAwards- honors and awards from LinkedInlinkedinSkills- skills listed on LinkedIn profile
Company Size Enhancements
companySizeobject (Single Enrich) now returnsmin,max, andemployeesInLinkedinemployeesInLinkedinadded as a flat field to the bulk response
New News Event Signal Types Replaced the generic newsEvent signal with 7 granular categories, available across Signals API, Prospecting API, and Webhooks:
riskNews- litigations and security newscommercialActivityNews- launches, partnerships, and go-to-market activitycorporateStrategyNews- M&A, restructuring, or strategic direction changesfinancialEventsNews- funding, IPOs, and financial performance eventspeopleNews- hiring, layoffs, or leadership changesmarketIntelligenceNews- event participation, recognition, competitor activityproductActivityNews- product launch, development, and integration news
- Company API V2 (Single Enrich) -
companySizenow returns an object withmin,max, andemployeesInLinkedininstead of a simple range array - Prospecting Company Search - New news signal types now available as search filters
- Prospecting Company Enrich - Response now includes all signal types including new news signal categories
- Webhooks - New news signal types are now subscribable event types for company subscriptions
companyLocationsdiffers from the existing HQlocationfield - it returns all known company site locations- The new news signal types replace the previous generic
newsEventsignal - All 7 news signal types share the same response schema:
companyId,companyName,domain,signalId,eventType,eventSummary,articlePublishedDate,articleTitle,articleHighlight,eventEffectiveDate,articleUrl
New Webhooks API Introduced real-time event notifications for contact and company signals via webhooks.
POST /api/subscriptions- create webhook subscriptions (bulk, up to 25 per request) for contact and company signalsGET /api/subscriptions- list all active webhook subscriptionsGET /api/subscriptions/{id}- retrieve a specific subscriptionPATCH /api/subscriptions/{id}- update subscription settingsPOST /api/subscriptions/delete- delete subscriptions (bulk supported)POST /api/subscriptions/{id}/test- test delivery with mock payload (no credits consumed)GET /api/audit-logs- webhook delivery logsGET /api/audit-logs/stats- delivery statisticsGET /api/account/secret- retrieve webhook secretPOST /api/account/secret/regenerate- regenerate webhook secret
Features include real-time delivery, event filtering by signal type, HMAC-SHA256 signature verification, automatic retry with exponential backoff (max 3 attempts), and delivery audit logs retained for 90 days (successful) and 180 days (failed).
- Webhooks are a push-based alternative to polling the Signals API
- Ideal for time-sensitive workflows like triggering outreach on job changes
- Premium feature - standard credit charges apply for signal detection; retries do not incur additional charges
Signal Filtering for Prospecting Search Enhanced Prospecting APIs with signal-based filtering.
POST /prospecting/contact/search- can now filter contacts bypromotion,companyChange,allSignalsPOST /prospecting/company/search- can now filter companies byheadcountGrowth,newJobsOpen,newsEvent,allSignalsstartDateparameter added for time-based filtering- Search responses now include a
signalTypesarray indicating detected signals per result
- Premium feature - credits are charged for each signal type that returns results
- Works in conjunction with the Signals API for retrieving detailed signal metadata
POST /api/recommendations/contacts- AI-powered recommendations for similar contactsPOST /api/recommendations/companies- AI-powered recommendations for similar companies
Enables prospect expansion by surfacing net-new contacts and companies with similar attributes to your known leads. Can be used as a downstream step after enrichment, prospecting, or CRM triggers.
- These endpoints were superseded by the redesigned Lookalikes V3 endpoints in v2.1.0
New searchText Filter Free-text search capability for Prospecting APIs, available in both include and exclude sections:
POST /prospecting/contact/search- supportssearchTextin contacts and companies filter sectionsPOST /prospecting/company/search- supportssearchTextin companies filter section- Enables natural language queries like "finance marketing in Germany DE"
- Searches across multiple fields simultaneously
ContactFiltersandCompanyFiltersschemas updated to include optionalsearchTextproperty
New Signals Endpoints
POST /signals/contacts- retrieve contact signals by IDsPOST /signals/companies- retrieve company signals by IDsPOST /signals/contacts/search- retrieve contact signals by identifiers (LinkedIn URL, email, or name + company/domain)POST /signals/companies/search- retrieve company signals by identifiers (domain, company name, or ID)GET /signals/filters/:objectType- view available signal filter types forcontactorcompany
All signal endpoints support startDate (optional, defaults to last 6 months).
Partial Profile Filter Added partialProfile boolean parameter to contact enrichment APIs for simplified contact profiles.
- Enrichment APIs (
v2/personandv2/company, single and bulk) now always returnperson_idandcompany_idwhere applicable - Signal filters can now be used as filters in existing enrichment API calls
## [Version] - YYYY-MM-DD - Title
### Added
New features and endpoints
### Changed
Updates to existing functionality
### Fixed
Bug fixes and corrections
### Removed
Deprecated features
### Notes
Additional context- Email: Subscribe for release notifications
- Support: support@lusha.com
| Version | Status | Support Level |
|---|---|---|
| 2.2.x | Current | Full support |
| 2.x | Recent | Full support |
| 1.x | Legacy | Security only |
Last updated: June 2026