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

# Company Search

# Company Search

> Find companies matching precise ICP criteria. Build ABM lists and power dynamic prospecting workflows.

<div style={{position:'absolute',width:'1px',height:'1px',padding:0,margin:'-1px',overflow:'hidden',clipPath:'inset(50%)',whiteSpace:'nowrap',border:0}}>
  > **Agents & LLMs**: a Markdown version of this page is available by appending `.md` to the URL, and the full documentation index is at [llms.txt](https://docs.blitz-api.ai/llms.txt).
</div>

<Info>
  **API Reference**: [`Company Search` endpoint](/api-reference/company-search/company-search) — full request/response schema and try-it console.
</Info>

The **Company Search** endpoint (`POST /v2/search/companies`) lets you find companies matching precise criteria.

Use it to:

* Build ABM target lists from scratch
* Identify ICP-matching accounts by industry, size, and geography
* Power dynamic prospecting workflows without static lists

**Paid plans**: Unlimited — included in your flat monthly subscription.

<Tip>
  **Need the people, not just the companies?** [Find People](/guide/concepts/find-people) accepts the **exact same `company` filter object** as Company Search and returns matching decision-makers in one call — no need to chain Company Search → Employee Finder.
</Tip>

***

## How It Works

You send a `POST` request with a `company` object containing your filters. All filters are **optional** and combined with **AND** logic. Within each filter, multiple values use **OR** logic.

The API returns a paginated list of company profiles matching your criteria.

***

## Request Parameters

| Parameter     | Type      | Required | Description                                                                                             |
| :------------ | :-------- | :------- | :------------------------------------------------------------------------------------------------------ |
| `company`     | `object`  | Yes      | Filter object. All nested fields are optional and combined with AND logic.                              |
| `max_results` | `integer` | No       | Number of companies to return. Default: `10`. Max: `25`.                                                |
| `cursor`      | `string`  | No       | Pagination cursor from a previous response. Pass to get the next page. (Hard limit on the 1,000th page) |

### Company Filter Fields

| Field              | Type    | Description                                                                              | Example                    |
| :----------------- | :------ | :--------------------------------------------------------------------------------------- | :------------------------- |
| `keywords.include` | `array` | Keywords that must appear in the company profile                                         | `["SaaS", "B2B"]`          |
| `keywords.exclude` | `array` | Keywords to exclude                                                                      | `["agency", "consulting"]` |
| `industry.include` | `array` | Industry names (must use [normalized values](/guide/reference/normalization/industries)) | `["Software Development"]` |
| `hq.country_code`  | `array` | HQ country codes (2-letter ISO, e.g., `"US"`)                                            | `["FR", "DE"]`             |
| `employee_range`   | `array` | Employee count ranges                                                                    | `["51-200", "201-500"]`    |

<Warning>
  Industry values are **case-sensitive and normalized**. Passing `"Tech"` instead of `"Computer Software"` or `"SaaS"` instead of `"Software Development"` will return 0 results. See the [Field Normalization reference](/guide/reference/normalization) for accepted values.
</Warning>

***

## Example Request

Find SaaS companies with 51-500 employees headquartered in France or Germany:

<CodeGroup>
  ```javascript Node.js theme={null}
  const companies = await client.search.companies({
    company: {
      keywords: { include: ["SaaS"] },
      industry: { include: ["Software Development"] },
      hq: { country_code: ["FR", "DE"] },
      employee_range: ["51-200", "201-500"],
    },
    max_results: 25,
  });

  for (const company of companies.data) {
    console.log(`${company.name} — ${company.industry}`);
    console.log(`  LinkedIn: ${company.linkedin_url}`);
    console.log(`  Employees: ${company.employees_on_linkedin}`);
  }
  ```

  ```python Python theme={null}
  companies = client.search.companies(
      company={
          "keywords": {"include": ["SaaS"]},
          "industry": {"include": ["Software Development"]},
          "hq": {"country_code": ["FR", "DE"]},
          "employee_range": ["51-200", "201-500"],
      },
      max_results=25,
  )

  for company in companies.results:
      print(f"{company.name} — {company.industry}")
      print(f"  LinkedIn: {company.linkedin_url}")
      print(f"  Employees: {company.employees_on_linkedin}")
  ```

  ```bash cURL theme={null}
  curl -X POST "https://api.blitz-api.ai/v2/search/companies" \
    -H "Content-Type: application/json" \
    -H "x-api-key: YOUR_API_KEY" \
    -d '{
      "company": {
        "keywords": { "include": ["SaaS"] },
        "industry": { "include": ["Software Development"] },
        "hq": { "country_code": ["FR", "DE"] },
        "employee_range": ["51-200", "201-500"]
      },
      "max_results": 25
    }'
  ```
</CodeGroup>

***

## Response Schema

The JSON below is the **raw HTTP response**. The SDKs wrap this page and expose its items under a language-specific property — in the examples above, `companies.data` (TypeScript/Node.js) and `companies.results` (Python) refer to the same `results[]` array shown here. See [Page object shape](/sdks/pagination#page-object-shape) for the full mapping.

```json theme={null}
{
  "results_length": 25,
  "cursor": "eyJwYWdlIjoy...",
  "results": [
    {
      "name": "Acme Corp",
      "linkedin_url": "https://www.linkedin.com/company/acme-corp",
      "website": "acme.com",
      "industry": "Software Development",
      "employees_on_linkedin": 120,
      "hq": {
        "city": "Paris",
        "country": "France",
        "country_code": "FR"
      }
    }
  ]
}
```

| Field                             | Type      | Description                                                                                                   |
| :-------------------------------- | :-------- | :------------------------------------------------------------------------------------------------------------ |
| `results_length`                  | `integer` | Number of results in this page.                                                                               |
| `cursor`                          | `string`  | Pass this value in the next request to get the following page. `null` if no more results.                     |
| `results[].name`                  | `string`  | Company name.                                                                                                 |
| `results[].linkedin_url`          | `string`  | Company LinkedIn URL. Use this as input for Waterfall ICP, Employee Finder, and Company Enrichment endpoints. |
| `results[].website`               | `string`  | Company website domain.                                                                                       |
| `results[].industry`              | `string`  | Normalized industry name.                                                                                     |
| `results[].employees_on_linkedin` | `integer` | Approximate employee count on LinkedIn.                                                                       |
| `results[].hq`                    | `object`  | Headquarters location (city, country, country\_code).                                                         |

***

## Pagination

The API supports cursor-based pagination. Each response includes a `cursor` field. Pass it in the next request to get the following page.

```json theme={null}
// First request
{ "company": { ... }, "max_results": 25 }

// Response includes: "cursor": "eyJwYWdl..."

// Next page request
{ "company": { ... }, "cursor": "eyJwYWdl...", "max_results": 25 }
```

When `cursor` is `null` in the response, you've reached the last page.

<Note>
  Pagination is limited to 1k pages.
</Note>

***

## Recommended Workflow

Use Company Search as the first step in your ABM pipeline:

<Steps>
  <Step title="Find ICP-matching companies">
    Use Company Search to build a list of target accounts matching your ICP filters.
  </Step>

  <Step title="Extract LinkedIn URLs">
    The `linkedin_url` field in the response is your key for all downstream enrichment.
  </Step>

  <Step title="Find decision-makers">
    Pass each `linkedin_url` to the [Waterfall ICP Search](/guide/concepts/waterfall-logic) to find the right contacts.
  </Step>

  <Step title="Enrich and sync">
    Enrich contacts with verified emails and sync to your CRM or outreach tool.
  </Step>
</Steps>
