---
title: "New Company Finder search"
method: POST
path: "/company_finder/async"
---

# New Company Finder search

`POST /company_finder/async`

## Request

- Base URL: `https://app.bettercontact.rocks/api/v2`
- URL: `https://app.bettercontact.rocks/api/v2/company_finder/async`
- Auth: API key in header `X-API-Key`

Find companies from firmographic, funding and hiring criteria.

This endpoint is asynchronous: it answers immediately with a `request_id` and searches in the background. Retrieve the results with [`GET /company_finder/async/{request_id}`](/api-reference/endpoint/company_finder_get). Company Finder does not send webhooks.

Several filters only accept exact values from a fixed list. See [Taxonomies](/api-reference/taxonomies).

## Request body

- CompanyFinderRequest
  - `filters` CompanyFinderFilters, required: Company criteria. At least one filter must hold a real value. Unknown keys are ignored, and so is `exclude`: a request made only of those is refused with `400`.
    - `company` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_linkedin_url` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_industry` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_hq_location` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_technologies` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_keywords` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_description` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `company_headcount_min` integer: Minimum number of employees, inclusive. Mapped onto the size buckets of [Taxonomies - Company size ranges](/api-reference/taxonomies#company-size-ranges): every bucket that overlaps your range is kept, so `60` still returns companies from the `51-200` bucket.
    - `company_headcount_max` integer: Maximum number of employees, inclusive. Mapped onto size buckets the same way as `company_headcount_min`.
    - `is_b2b` boolean: `true` keeps companies that sell to businesses. Omit the field when you do not want to filter on it.
    - `is_b2c` boolean: `true` keeps companies that sell to consumers. Omit the field when you do not want to filter on it.
    - `is_public` boolean: `true` keeps publicly listed companies. Omit the field when you do not want to filter on it.
    - `revenue_ranges` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `last_funding_round_names` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `last_funding_date_range` RangeFilter: Inclusive range. Provide `gte`, `lte` or both.
      - `gte` unknown
      - `lte` unknown
    - `last_amount_raised_usd` RangeFilter: Inclusive range. Provide `gte`, `lte` or both.
      - `gte` unknown
      - `lte` unknown
    - `total_amount_raised_usd` RangeFilter: Inclusive range. Provide `gte`, `lte` or both.
      - `gte` unknown
      - `lte` unknown
    - `job_post_titles` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `job_posting_countries` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
    - `job_posting_locations` CompanyFinderIncludeFilter: Company Finder list filters only take `include`. There is no `exclude`.
      - `include` string[]: Values that must match.
  - `limit` integer: Number of companies to return for this page, between 1 and 200. Defaults to 100. A value above 200 is refused with `422`; `0`, a negative number or a non-numeric value falls back to the default.
  - `offset` integer: Zero-based number of matches to skip. A negative value is treated as `0`. To walk through results, keep `limit` constant and increase `offset` by `limit` on each call. The total number of matching companies is returned as `summary.companies_found`.

## Response `202`

Company Finder request accepted. Poll `GET /company_finder/async/{request_id}`.

- object
  - `success` boolean
  - `message` string
  - `request_id` string

## Other responses

- `400`: Bad request. The `filters` object is missing or empty, or every filter in it is blank.
- `401`: Unauthorized. The API key is missing, invalid or deactivated.
- `402`: Payment required. The account has no credits left.
- `422`: Unprocessable. The free search quota is exhausted, or `limit` is above 200.
- `429`: [Rate limit](/api-reference/api_rate_limits) exceeded. Back off and retry.
- `500`: Unexpected server error. Safe to retry with backoff, after checking that the first attempt did not create a request.

## Changes

- **2026-11-03** `cd9044a26697`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bettercontact/apis/bettercontact-api/changes/company_finder/async/post.md)

---

[API](https://skmtc.dev/bettercontact/apis/bettercontact-api.md) - [All operations](https://skmtc.dev/bettercontact/apis/bettercontact-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bettercontact/apis/bettercontact-api/revisions/cd9044a26697?raw)
