---
title: "Search company"
method: POST
path: "/company/search"
---

# Search company

`POST /company/search`

Search for companies based on various filters. Multiple filters within the same field are combined with AND logic.

## Request body

- SearchCompanyRequest
  - `offset` integer — Number of companies to skip (use this for pagination). Maximum value is 10,000. To paginate beyond 10,000 results, use search_after instead.
  - `limit` integer — Number of companies to return (default: 10, max: 100)
  - `search_after` string — Cursor-based pagination. Pass the search_after value from the previous response to get the next page. Works at any point in the result set, but is required to access results beyond the 10,000 offset limit. The search_after token does not have any expiration date. However, when the database is updated (every month), if the position of a company changes, the same search_after token might display different results.
  - `names` object[] — Filter by company names. Use exact_match for precise company name matching.
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `domains` object[] — Filter by company domains (e.g., 'google.com', 'microsoft.com'). Exact match recommended.
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `professional_network_ids` object[] — Filter by professional network IDs.
    - `value` integer — The integer value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the exact term must appear within the value, but can still be part of a longer string. When false (default), matching is flexible and tolerates slight variations such as missing or extra words. Matching is never case-sensitive.
  - `professional_network_urls` object[] — Filter by professional network URLs.
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `keywords` object[] — Filter by description of company
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `specialties` object[] — Filter by specialties of company
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `industries` object[] — Filter by company industries (e.g., 'Software Development', 'Computer Hardware Manufacturing', 'Housing and Community Development', 'Warehousing', 'Financial Services'). See [Industries](/api/v2/general/enums#company-industry) for the full list.
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `types` object[] — Filter by company types (e.g., 'Public Company', 'Privately Held', 'Nonprofit', 'Self-Employed', 'Partnership', 'Educational', 'Government Agency'). See [Company Types](/api/v2/general/enums#company-type) for the full list.
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `headquarters_locations` object[] — Filter by headquarters locations (city names, regions, or countries)
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
  - `founded_years` object[] — Filter by founding years. Useful for targeting startups (recent years) or established companies.
    - `min` integer — Minimum founding year (inclusive)
    - `max` integer — Maximum founding year (inclusive)
    - `exclude` boolean — If true, excludes companies founded in this range
  - `headcounts` object[] — Filter by company headcounts (number of employees). Use ranges to target specific company sizes (e.g., startups: 1-50, mid-size: 50-500, enterprise: 1000+).
    - `min` integer — Minimum number of employees (inclusive)
    - `max` integer — Maximum number of employees (inclusive)
    - `exclude` boolean — If true, excludes companies in this range
  - `company_ids` object[] — Filter by specific company IDs
    - `value` string — The string value to filter by
    - `exclude` boolean — If true, excludes results matching this value. If false or omitted (default), includes only matching results.
    - `exact_match` boolean — When true, the value must match exactly as stored (case-insensitive), with no tolerance for variations. When false (default), the API tolerates minor differences such as missing words, extra words, or slight reordering. Matching is never case-sensitive.

## Response `200`

OK

- object
  - `companies` Company[] — Array of companies matching the search criteria. Returns empty array if no results found.
    - `id` string — Unique company identifier
    - `name` string — Company name
    - `domain` string — Company domain
    - `description` string — Company description
    - `year_founded` integer — Year the company was founded. Returns 0 when unknown.
    - `headcount` integer — Exact number of employees. May return 0 even when headcount_range is available.
    - `headcount_range` string — Employee count range (e.g., '1-10', '11-50', '51-200', '201-500', '501-1000', '1001-5000', '5001-10000', '10001+')
    - `company_type` string — Type of company (e.g., 'Public Company', 'Privately Held', 'Nonprofit', 'Self-Employed', 'Partnership', 'Educational', 'Government Agency')
    - `locations` object — Company location information
      - `headquarters` CompanyAddress — Structured headquarters address with parsed location fields
        - `line1` string — Address line 1 (street address)
        - `line2` string — Address line 2 (full location string including city, region, postal code, and country code)
        - `city` string — City name
        - `region` string — State or region
        - `country` string — Country name
        - `country_code` string — ISO country code
      - `offices` OfficeAddress[], nullable — Additional office locations. Only contains raw address lines (line1, line2) without structured city/region/country fields. Can be null or an empty array.
        - `line1` string — Street address
        - `line2` string — Full location string (city, region, postal code, country code)
    - `social_profiles` CompanySocialProfile
      - `professional_network` object — Professional network profile information
        - `id` integer — Professional network profile ID
        - `url` string — Full professional network profile URL
        - `handle` string — Professional network profile handle/username
        - `connection_count` integer — Number of professional network followers
    - `specialties` string[] — Specialties associated with the company
    - `industry` object — Company industry information
      - `main_industry` string — Primary industry category (e.g., 'Software Development', 'Computer Hardware Manufacturing', 'Financial Services', 'Healthcare', 'Retail')
  - `metadata` object
    - `total` integer — Total number of results matching the search criteria
    - `credits` number, double — Total number of credits consumed
    - `offset` integer — Number of results skipped (for pagination)
    - `search_after` string — The cursor value returned by the previous page. Use this to paginate through the results.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `429` — Too Many Requests

---

[API](https://skmtc.dev/fullenrich/apis/fullenrich-api-documentation.md) · [All operations](https://skmtc.dev/fullenrich/apis/fullenrich-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fullenrich/fullenrich-api-documentation/revisions/b6357fb61fc7/schema)
