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

# Search companies and people

> The filters that companies/search and people/search accept, how an industry is matched, and how to read the count, the applied filters and a 400.

[Try in Playground](https://tako.com/console/playground/enrich/company-search)

[`POST /v1/companies/search`](https://docs.tako.com/api-reference/companies-search) and [`POST /v1/people/search`](https://docs.tako.com/api-reference/people-search) screen Tako's company and people data with the filters you send. Every filter is optional, and filters combine with AND. A request with no filter returns `400 no_filters`.

## Company filters

Company search covers active companies.

| Filter | What it takes |
| - | - |
| `industry` | An industry in words, such as `"fintech"` or `"aerospace and defense"`. See [Industries](#industries). |
| `country` | An ISO 3166-1 alpha-2 code or an English name. |
| `region` | A state or province, as a name or an ISO 3166-2 code such as `US-NY`. |
| `town` | The town of the headquarters. Needs `country` or `region` beside it. |
| `min_employees`, `max_employees` | A range over the estimated employee count. |
| `founded_after`, `founded_before` | A range of founding years. |
| `funding_stages` | A list of latest funding stages, such as `["series_a", "series_b"]`. The API reference lists every value. |
| `ownership` | `public` or `private`. |
| `startups` | `true` keeps private companies founded in the last ten years, unless `founded_after` or `founded_before` names other years. |
| `order_by` | `employees` or `founded`. A leading minus sorts in descending order, as in `-employees`. |

Company search can't filter or sort by revenue. `estimated_revenue` is a premium field of the rows, not a filter.

## People filters

People search covers employees: people with an employer on record.

| Filter | What it takes |
| - | - |
| `role` | Up to 20 title, seniority or function phrases, such as `["head of sales", "vp sales"]`. |
| `company_domains` | Up to 100 employer websites. |
| `person_country`, `person_region`, `person_metro` | Where the person is. |
| `person_town` | Needs `person_country` or `person_region` beside it. |
| `company_industry` | The employer's industry, in words, as company search takes it. |
| `company_min_employees`, `company_max_employees` | A range over the employer's estimated employee count. |
| `company_funding_stages` | The employer's latest funding stages. |
| `company_startups` | `true` keeps people whose employer is a startup, as company search defines one. |
| `linkedin_urls`, `emails`, `phones` | Contact values you already have. Up to 50 in all, and only beside at least one other filter: they narrow a search to the people they name. |

To find the people at companies from a company search, export that card's rows and send their `website` values as `company_domains`. To look up people from contact values alone, use [`POST /v1/people/enrich`](https://docs.tako.com/documentation/integrating-tako/enrichment/enrich).

## Industries

`industry` and `company_industry` take an industry's id or words that Tako matches to its own industries:

* An industry's id, such as `"enterprise_saas"`. `applied` and `suggestions` return ids.
* An industry's name, such as `"enterprise saas"` or `"electric vehicle charging infrastructure"`.
* A broad group, such as `"software"`, which covers the industries in it.

`applied` in the response names the industries the search ran on, so check it when a list looks too broad or too narrow.

Tako matches words, not meaning. A phrase it doesn't recognize returns `400 unknown_industry` with the closest industries as `suggestions`, and you can send any of them back as it is:

```json theme={null}
{
  "error_message": "No Tako industry matches 'ev charging'. Give an industry's name or id.",
  "error_type": "BAD_REQUEST",
  "code": "unknown_industry",
  "field": "industry",
  "suggestions": ["electric_vehicle_charging_infrastructure", "electric_vehicle"]
}
```

## Read the response

| Field | What it holds |
| - | - |
| `card` | The list as a card. `null` when nothing matched. |
| `total` | The number of matches, up to 500. |
| `total_is_lower_bound` | `true` when `total` is the cap of 500, not an exact count. Contents reads past it. |
| `applied` | The filters the search ran, with the values Tako resolved them to, such as `industry=enterprise_saas`. |
| `notes` | Anything Tako changed or couldn't apply. |
| `unresolved` | People search only. Inputs that named nothing, as `field=value`. |
| `failed` | People search only. Inputs whose lookup failed or timed out. Retry these; they aren't misses. |

A search that matches nothing returns `200` with `total: 0` and a `null` card. It's an answer, and it's billed.

A `400` names the request field to fix in `field`, with a `code` and, where Tako has them, `suggestions`.

See [Get the rows and reveal premium fields](https://docs.tako.com/documentation/integrating-tako/enrichment/overview.md#get-the-rows-and-reveal-premium-fields) for the rows, and [What a list holds](https://docs.tako.com/documentation/integrating-tako/enrichment/overview.md#what-a-list-holds) for the fields.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.