# Search Companies

Search for companies using various filters. This is step 2 of the prospecting process.

Endpoint: (POST)  https://api.lusha.com/prospecting/company/search
---

##### Signal Filtering (Premium Feature)
Filter companies by signal types to identify those with recent business events and changes.

  > Note: This is a premium feature. Credits are charged for each signal type that returns results.

Endpoint: POST /prospecting/company/search
Security: ApiKeyAuth

## Request fields (application/json):

  - `pages` (object)

  - `pages.page` (number)
    Page number (0-1000)

  - `pages.size` (number)
    Page size (10-50)

  - `filters` (object, required)

  - `filters.companies` (object)

  - `filters.companies.include` (object)

  - `filters.companies.include.names` (array)
    Example: ["Apple"]

  - `filters.companies.include.domains` (array)
    Example: ["lusha.com"]

  - `filters.companies.include.locations` (array)

  - `filters.companies.include.locations.country` (string)
    Example: "United States"

  - `filters.companies.include.technologies` (array)
    Example: [{"name":"Amazon"}]

  - `filters.companies.include.technologies.name` (string, required)
    Example: "salesforce"

  - `filters.companies.include.intentTopics` (array)
    Example: ["Digital Sales"]

  - `filters.companies.include.sizes` (array)

  - `filters.companies.include.sizes.min` (number)
    Example: 1

  - `filters.companies.include.sizes.max` (number)
    Example: 10

  - `filters.companies.include.revenues` (array)

  - `filters.companies.include.revenues.min` (number)
    Example: 1

  - `filters.companies.include.revenues.max` (number)
    Example: 1000000

  - `filters.companies.include.sicCodes` (array)
    Example: ["1011","1021"]

  - `filters.companies.include.naicsCodes` (array)
    Example: ["11","21"]

  - `filters.companies.include.mainIndustriesIds` (array)
    Example: [4,5]

  - `filters.companies.include.subIndustriesIds` (array)
    Example: [101]

  - `filters.companies.include.searchText` (string)
    Free-text search across company fields
    Example: "Finance Marketing in Germany DE"

  - `filters.companies.include.excludePartialCompanies` (boolean)

  - `filters.companies.include.companyLocations` (array)
    Filter by company site-level office locations as reported by LinkedIn.
This includes all physical office locations where the company has a presence.
    Example: [{"country":"United States","state":"California"},{"country":"Germany"}]

  - `filters.companies.include.companyLocations.country` (string, required)
    Example: "United States"

  - `filters.companies.include.companyLocations.state` (string)
    Example: "California"

  - `filters.companies.include.employeesInLinkedIn` (object)
    Filter companies by LinkedIn-reported employee count.
Both min and max are optional — provide either or both.

  - `filters.companies.include.employeesInLinkedIn.min` (integer)
    Minimum employee count (inclusive)
    Example: 100

  - `filters.companies.include.employeesInLinkedIn.max` (integer)
    Maximum employee count (inclusive)
    Example: 5000

  - `filters.companies.include.signal` (object)
    Filter companies by signal types (premium filter - charges apply per signal type).

  - `filters.companies.include.signal.names` (array)
    Signal types to filter by
    Enum: "allSignals", "websiteTrafficIncrease", "websiteTrafficDecrease", "itSpendIncrease", "itSpendDecrease", "headcountIncrease1m", "headcountDecrease1m", "headcountIncrease3m", "headcountDecrease3m", "headcountIncrease6m", "headcountDecrease6m", "headcountIncrease12m", "headcountDecrease12m", "surgeInHiring", "surgeInHiringByDepartment", "surgeInHiringByLocation", "riskNews", "commercialActivityNews", "corporateStrategyNews", "financialEventsNews", "peopleNews", "marketIntelligenceNews", "productActivityNews"

  - `filters.companies.include.signal.startDate` (string)
    Start date for signal detection (YYYY-MM-DD format)
    Example: "2025-11-01"

  - `filters.companies.exclude` (object)
    Same structure as include, for exclusion filters

## Response 200 fields (application/json):

  - `requestId` (string)
    The requestId that should be used in Prospecting Enrich request API params

  - `currentPage` (number)
    Current page of search results

  - `pageLength` (number)
    Page length

  - `totalResults` (number)
    Total search results

  - `companies` (array)

  - `companies.id` (string)
    A unique identifier for a Lusha company

  - `companies.name` (string)
    The name of the company

  - `companies.fqdn` (string)
    The fqdn of the company

  - `companies.description` (string)
    A description of the company

  - `companies.logoUrl` (string)
    The URL of the company's logo

  - `companies.hasCompanyEmployeesCount` (boolean)

  - `companies.hasCompanyRevenue` (boolean)

  - `companies.hasCompanyMainIndustry` (boolean)

  - `companies.hasCompanySubIndustry` (boolean)

  - `companies.hasCompanyFunding` (boolean)

  - `companies.hasCompanyIntent` (boolean)

  - `companies.hasCompanyTechnologies` (boolean)

  - `companies.hasCompanyCity` (boolean)

  - `companies.hasCompanyCountry` (boolean)

  - `companies.signalTypes` (array)
    Types of signals detected for this company

## Response 400 fields (application/json):

  - `statusCode` (integer, required)
    HTTP status code
    Example: 400

  - `message` (string, required)
    Error message
    Example: "Validation failed"

  - `errors` (array)
    Detailed error messages (optional, only for validation errors)
    Example: ["entityType must be one of: contact, company"]


