Skip to main content
Use POST /bulk/company/v2 to enrich multiple companies in a single request. Submit a list of up to 100 company objects and Lusha returns firmographics, headcount, funding, technologies, intent data, and optional signals for each one. Unlike the single-company endpoint, this endpoint supports signal sub-filters for precise signal retrieval. Endpoint
Authentication: Include your API key in the api_key request header.

Request requirements

Each company object in the companies array must include an id (your own sequential identifier for matching results) and at least one of the following:
  • domain - the company’s web domain (recommended)
  • name - the company name
  • companyId - the Lusha company identifier
signalsFilters supports newsEventTypes, hiringByDepartments, and hiringByLocations sub-filters that are not available on the single-company GET /v2/company endpoint. Use this endpoint when you need filtered signal results.

Request body fields

companies array (required)

string
required
Your own unique sequential ID for this company. Used to match each result in the response back to your input. Example: "1"
string
The domain name associated with the company. Example: lusha.com
string
The name of the company. Example: Lusha
string
The Lusha company identifier. Note: values may be removed or merged over time. Example: "1234567890"
string
The fully qualified domain name of the company. Example: www.lusha.com

Top-level fields

array
Signal types to retrieve for all companies in the request.Allowed values: allSignals, websiteTrafficIncrease, websiteTrafficDecrease, itSpendIncrease, itSpendDecrease, headcountIncrease1m, headcountDecrease1m, headcountIncrease3m, headcountDecrease3m, headcountIncrease6m, headcountDecrease6m, headcountIncrease12m, headcountDecrease12m, surgeInHiring, surgeInHiringByDepartment, surgeInHiringByLocation, riskNews, commercialActivityNews, corporateStrategyNews, financialEventsNews, peopleNews, marketIntelligenceNews, productActivityNews
string
Start date for signal retrieval in YYYY-MM-DD format. Defaults to 6 months ago if not specified. Example: "2025-03-01"
object
Optional filters to narrow signal results within the requested signal types. Filter logic:
  • Multi-value filters use OR logic.
  • Filter values are not case-sensitive.
  • Unrecognized values are silently ignored.
  • Providing state without country in hiringByLocations returns an HTTP 400 error.
array
Filter news signals by specific event type. Example values: "Funding Round", "Partnership", "Product Launch", "Executive Hire", "M&A", "IPO".Full list of allowed values: Asset Investment, Asset Sale, Competitor Activity, Event Participation, Executive Departure, Executive Hire, Executive Promotion, Facilities Expansion, Facility Closure, Funding Round, Headcount Decrease, Headcount Increase, IPO, Lawsuit Faced, Lawsuit Filed, M&A, New Customer, New Location, New Vendor, Partnership, Product Development, Product Integration, Product Launch, Recognition, Security Issue, Strategic Investment
array
Filter surgeInHiringByDepartment signals by department. Example values: "Engineering & Technical", "Sales", "Marketing".Allowed values: Business Development, Consulting, Customer Service, Engineering & Technical, Finance, General Management, Health Care & Medical, Human Resources, Information Technology, Legal, Marketing, Operations, Other, Product, Research & Analytics, Sales
array
Filter surgeInHiringByLocation signals by country and optional state. Each entry requires country (string, required) and optionally state (string).Example: [{"country": "United States", "state": "California"}, {"country": "Germany"}]
boolean
Set to true to expand coverage by including partial company profiles when a full match is not available.

Response fields

A successful 200 response is an object keyed by the id you provided for each company. Unlike GET /v2/company, each entry here is flat - firmographic and signal fields sit directly on the object rather than under a nested data key, and location is returned as flat city, state, country, countryIso2, continent, and rawLocation fields instead of a nested location object. Signal fields such as surgeInHiring, surgeInHiringByDepartment, and financialEventsNews are included when the corresponding signal type is requested via signals.

Example request

Example response