> ## 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.

# Available company filters for prospecting searches

> Discover company filter types and retrieve their valid values with two generic endpoints, then use them in a Prospecting Companies search.

Before building a [Prospecting Companies](/api-reference/prospecting/prospecting-companies) request, use the Filters API to retrieve the exact values Lusha accepts. Passing values outside the API's taxonomy causes searches to return no results, so fetching valid options first ensures your queries work as expected.

<Info>
  **V3 change:** company filters are no longer one endpoint per filter type (names, sizes, revenues, SIC codes, and so on). V3 collapses discovery and lookup into two generic endpoints - the same two endpoints work for every filter type; the `filterType` you pass tells the API which dimension you want.
</Info>

## The two-step pattern

<Steps>
  <Step title="Discover filter types">
    Call [`GET /v3/companies/prospecting/filters`](/api-reference/filters/company-filter-types). It returns every company filter type and a `requiresQuery` flag telling you whether that type needs a search term.

    ```bash theme={null}
    curl --request GET \
      --url https://api.lusha.com/v3/companies/prospecting/filters \
      --header 'api_key: YOUR_API_KEY'
    ```

    ```json theme={null}
    {
      "availableFilters": [
        { "filterType": "names", "requiresQuery": true },
        { "filterType": "technologies", "requiresQuery": true },
        { "filterType": "locations", "requiresQuery": true },
        { "filterType": "industriesLabels", "requiresQuery": false },
        { "filterType": "sizes", "requiresQuery": false },
        { "filterType": "revenues", "requiresQuery": false },
        { "filterType": "sics", "requiresQuery": false },
        { "filterType": "naics", "requiresQuery": false },
        { "filterType": "intentTopics", "requiresQuery": false }
      ]
    }
    ```
  </Step>

  <Step title="Fetch values for the filter type you need">
    Call [`GET /v3/companies/prospecting/filters/{filterType}`](/api-reference/filters/company-filter-values) with the `filterType` from step 1. If `requiresQuery` was `true`, also pass a `query` string (2–256 characters).

    ```bash theme={null}
    curl --request GET \
      --url https://api.lusha.com/v3/companies/prospecting/filters/sizes \
      --header 'api_key: YOUR_API_KEY'
    ```

    ```json theme={null}
    {
      "values": [
        { "min": 1, "max": 10 },
        { "min": 11, "max": 50 },
        { "min": 51, "max": 200 }
      ]
    }
    ```
  </Step>

  <Step title="Pass the values into your search request">
    Nest the selected values under `filters.companies.include` in [`POST /v3/companies/prospecting`](/api-reference/prospecting/prospecting-companies):

    ```json theme={null}
    {
      "filters": {
        "companies": {
          "include": {
            "industriesLabels": ["Software", "SaaS"],
            "sizes": [{ "min": 51, "max": 200 }],
            "revenues": [{ "min": 1, "max": 1000000 }]
          }
        }
      }
    }
    ```
  </Step>
</Steps>

## Which filter types need a query

| Filter type        | Query required?                      | Search request field                         |
| ------------------ | ------------------------------------ | -------------------------------------------- |
| `sizes`            | No - returns the full list           | `filters.companies.include.sizes`            |
| `revenues`         | No - returns the full list           | `filters.companies.include.revenues`         |
| `sics`             | No - returns the full list           | `filters.companies.include.sicCodes`         |
| `naics`            | No - returns the full list           | `filters.companies.include.naicsCodes`       |
| `intentTopics`     | No - returns the full list           | `filters.companies.include.intentTopics`     |
| `industriesLabels` | No - returns the full list           | `filters.companies.include.industriesLabels` |
| `names`            | **Yes** - pass `query` (2–256 chars) | `filters.companies.include.names`            |
| `technologies`     | **Yes** - pass `query` (2–256 chars) | `filters.companies.include.technologies`     |
| `locations`        | **Yes** - pass `query` (2–256 chars) | `filters.companies.include.locations`        |

`sizes`, `revenues`, `sics`, `naics`, `intentTopics`, and `industriesLabels` return their entire value set in one call. `names`, `technologies`, and `locations` are too large to enumerate, so you search them with a free-text `query` (for example, `"Salesforce"` or `"Austin"`) and get back matching values.

<Note>
  `sics` and `naics` provide more granular industry targeting than `industriesLabels`. Use them when you need to narrow a search to a specific sub-sector that doesn't map cleanly to a label.
</Note>

<Tip>
  `sizes`, `revenues`, `sics`, `naics`, `intentTopics`, and `industriesLabels` rarely change. Cache their values instead of calling the discovery or values endpoints before every search.
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Company Filter Types" icon="list" href="/api-reference/filters/company-filter-types">
    Full reference for the discovery endpoint.
  </Card>

  <Card title="Company Filter Values" icon="magnifying-glass" href="/api-reference/filters/company-filter-values">
    Full reference for the values endpoint, including response shapes per filter type.
  </Card>
</CardGroup>
