> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lusha.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search prospecting companies by firmographic filters

> Query Lusha's company database using firmographic filters - industry, size, revenue, location, technologies, and more - to get matching company IDs.

`POST https://api.lusha.com/prospecting/company/search` is step 2 of the 3-step company prospecting flow. You pass firmographic filters that describe your target account profile and receive back a paginated list of matching companies, each with an `id`. No credits are consumed at this step - credits are charged when you enrich the results in [step 3](/v2/prospecting/enrich-companies).

Before building your request, use the [Company Filters](/v2/filters/company-filters) endpoints to look up valid values for each field.

## Request body

Send a JSON body with a `filters.companies` object. All filter fields are optional - include only the ones relevant to your target accounts.

```json theme={null}
{
  "filters": {
    "companies": {
      "include": {
        "mainIndustriesIds": [4, 5],
        "sizes": [{ "min": 51, "max": 500 }],
        "revenues": [{ "min": 10000000, "max": 50000000 }],
        "locations": [
          { "country": "United States", "state": "New York" }
        ],
        "technologies": [{ "name": "Salesforce" }, { "name": "HubSpot" }]
      }
    }
  },
  "pages": { "page": 0, "size": 25 }
}
```

### Common filter fields

| Field                                                              | Type      | Description                                                                                                                                      |
| ------------------------------------------------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `filters.companies.include.names`                                  | string\[] | Company names to include - use [POST /prospecting/filters/companies/names](/v2/filters/company-filters)                                          |
| `filters.companies.include.mainIndustriesIds` / `subIndustriesIds` | number\[] | Industry IDs - use [GET /prospecting/filters/companies/industries\_labels](/v2/filters/company-filters)                                          |
| `filters.companies.include.sizes`                                  | object\[] | Employee count ranges as `{ "min": ..., "max": ... }` - use [GET /prospecting/filters/companies/sizes](/v2/filters/company-filters)              |
| `filters.companies.include.revenues`                               | object\[] | Revenue ranges as `{ "min": ..., "max": ... }` - use [GET /prospecting/filters/companies/revenues](/v2/filters/company-filters)                  |
| `filters.companies.include.locations`                              | object\[] | HQ location filters - use [POST /prospecting/filters/companies/locations](/v2/filters/company-filters)                                           |
| `filters.companies.include.companyLocations`                       | object\[] | Office location filters based on all known company locations, not just HQ                                                                        |
| `filters.companies.include.sicCodes`                               | string\[] | SIC industry classification codes - use [GET /prospecting/filters/companies/sics](/v2/filters/company-filters)                                   |
| `filters.companies.include.naicsCodes`                             | string\[] | NAICS industry classification codes - use [GET /prospecting/filters/companies/naics](/v2/filters/company-filters)                                |
| `filters.companies.include.technologies`                           | object\[] | Technologies the company uses, each as `{ "name": "..." }` - use [POST /prospecting/filters/companies/technologies](/v2/filters/company-filters) |
| `filters.companies.include.intentTopics`                           | string\[] | Buyer intent topics - use [GET /prospecting/filters/companies/intent\_topics](/v2/filters/company-filters)                                       |
| `pages.page` / `pages.size`                                        | number    | Pagination - `page` ranges `0–1000`, `size` ranges `10–50`                                                                                       |

## Signal filtering (premium feature)

You can narrow results to companies that have recently undergone a specific business event by filtering on signal types.

<Note>
  Signal filtering is a premium feature. Credits are charged for each signal type that returns results.
</Note>

Add a `signal` object under `filters.companies.include` to match companies with recent activity:

```json theme={null}
{
  "filters": {
    "companies": {
      "include": {
        "mainIndustriesIds": [4, 5],
        "sizes": [{ "min": 500, "max": 5000 }],
        "signal": {
          "names": ["surgeInHiring", "financialEventsNews"],
          "startDate": "2025-01-01"
        }
      }
    }
  },
  "pages": { "page": 0, "size": 25 }
}
```

Company signal names use the same values as the [Signals API](/v2/signals/overview) - for example `surgeInHiring`, `headcountIncrease6m`, `websiteTrafficIncrease`, and `financialEventsNews`. See [GET /api/signals/filters/company](/v2/api-reference/signals/get-signal-options) for the complete list.

## Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.lusha.com/prospecting/company/search \
    --header 'api_key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "filters": {
        "companies": {
          "include": {
            "mainIndustriesIds": [4, 5],
            "sizes": [{ "min": 201, "max": 1000 }],
            "locations": [{ "country": "United States" }],
            "technologies": [{ "name": "Salesforce" }]
          }
        }
      },
      "pages": { "page": 0, "size": 25 }
    }'
  ```

  ```json Request body theme={null}
  {
    "filters": {
      "companies": {
        "include": {
          "mainIndustriesIds": [4, 5],
          "sizes": [{ "min": 201, "max": 1000 }],
          "locations": [{ "country": "United States" }],
          "technologies": [{ "name": "Salesforce" }]
        }
      }
    },
    "pages": { "page": 0, "size": 25 }
  }
  ```
</CodeGroup>

## Example response

```json theme={null}
{
  "requestId": "5ad275c8-7dd4-462a-bd45-6bc1970da64e",
  "currentPage": 0,
  "pageLength": 2,
  "totalResults": 874,
  "companies": [
    {
      "id": "33222678",
      "name": "Lusha",
      "fqdn": "lusha.com",
      "description": "Lusha is the sales intelligence platform designed to help businesses get their next customers.",
      "logoUrl": "https://logo.lusha.co/logo.jpg",
      "hasCompanyEmployeesCount": true,
      "hasCompanyRevenue": true,
      "hasCompanyMainIndustry": true,
      "hasCompanyTechnologies": true
    }
  ]
}
```

The `requestId` and each company's `id` are what you pass to the [Enrich Companies](/v2/prospecting/enrich-companies) endpoint to retrieve full records. See the [full API reference](/v2/api-reference/prospecting/search-companies) for the complete response schema, including all `has*` availability flags.

<Tip>
  Use the [Company Filters](/v2/filters/company-filters) endpoints to fetch valid values for `mainIndustriesIds`, `sizes`, `revenues`, `sicCodes`, `naicsCodes`, `intentTopics`, and `technologies` before building your search request.
</Tip>
