---
title: "Search Companies"
method: POST
path: "/v1/companies/search"
tags: ["Companies", "v1"]
---

# Search Companies

`POST /v1/companies/search`

Perform search queries using criteria like name, location, industry, size or filters like `has_phone`.
Returns matching company IDs and basic company information.
Credit Note: Searches do not consume credits. Credits are only used if you subsequently retrieve deep data for a company not accessed within the last 12 months.

:::info
Requires the `companies:read` OAuth2 scope.
:::

## Query parameters

- `account_id` string, required
- `page[cursor]` string
- `page[size]` integer

## Request body

- object
  - `search_terms` string[] — List of strings to match against company name, alternative names, trade name and domain(s).
  - `locations` object[] — Search in the company address. Multiple locations can be passed which will be combined as an OR query.
    - `street` string — The full street address line, including the street name and house number.
    - `postal_code` string, nullable — The postal code related to the company's physical location. The format varies by country.
    - `city` string, nullable — The city name.
    - `country_code` string, nullable — This field indicates the country supported for Leadfeeder operations and requires a two letter country code according to ISO 3166 Alpha-2 (see [https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)).
    - `region_code` string, nullable — The code for the region. For European companies the NUTS1-3 schema is used. For companies outside of Europe values that comply with ISO 3166-2 with underscores are returned.
    - `geo` object
      - `latitude` number, nullable — The latitude of the geographical point.
      - `longitude` number, nullable — The longitude of the geographical point.
      - `distance` number — Maximum distance in kilometers from the geographical point described with latitude and longitude. The maximum value that can be used is 500 km.
  - `industries` object — Object specifying industry classification filters. Use the `internal` classification by default; `nace` and `wz` are available when the user explicitly requests them.
    - `classification` 'internal' | 'wz' | 'nace' — The industry classification system the `codes` belong to. Defaults to `internal` (Leadfeeder's own classification), which should be used unless the user explicitly asks for `nace` or `wz`.
    - `codes` string[] — List of codes from the chosen classification table. Look the codes up from the published reference for the selected classification: - internal: https://docs.leadfeeder.com/api/public/list-of-industries-370501m0 - nace / wz: https://docs.leadfeeder.com/api/public/list-of-nace-wz-codes-354668m0
  - `employee_ranges` string[] — List of employee count ranges (e.g. 1-10, 51-200) to filter companies by size.
  - `revenue` object — Defines a revenue range filter for companies. Specify at least one of min or max to set the lower or upper revenue boundary. Negative integer values are not supported. Revenue values are expressed in **EUR**.
    - `min` integer
    - `max` integer
  - `icp_ids` string[] — List of Ideal Customer Profile (ICP) IDs to use as a filter. The search will return companies that match the criteria of at least one of the referenced ICPs (multiple ICPs are combined using OR). ICP IDs can be retrieved from the **Retrieve Ideal Customer Profiles** endpoint. Unknown or invalid IDs are ignored; if none of the supplied IDs exist or have valid filters, the search returns no results.
  - `filters` object — Object containing additional boolean filters to refine the search results. All filters are combined using AND.
    - `has_phone` boolean — If true, only return companies that have at least one phone number.
    - `has_email` boolean — If true, only return companies that have at least one known email address.
    - `has_social_media_profiles` boolean — If true, filter for companies with at least one social media profile (LinkedIn, Facebook, etc.).
    - `do_not_contact` boolean — If true, only return companies that are marked as not to be contacted. This is typically used for compliance or CRM rules.
    - `has_financials_revenue` boolean — If true, only return companies with known revenue data.
    - `has_financials_earnings` boolean — If true, only return companies with known earnings data.
    - `has_financials_net_worth` boolean — If true, only return companies with known net worth data.
    - `has_ip_addresses` boolean — If true, only return companies with ip data.

## Response `200`

Success

- object
  - `data` union, required — Accounts with an active platform subscription receive `CompanySummaryV1` objects, while those without receive `MaskedCompanySummaryV1` objects.
    - CompanySummaryV1[]
      - `type` 'company_summary', required — The type of the object
      - `id` string, required — The Leadfeeder company ID.
      - `attributes` object, required
        - `name` string, required — The legal name of the company
        - `url` string, nullable, required — The URL of the company website.
        - `logo_url` string, uri, nullable, required — The URL of the company's logo.
        - `address` object, required — Where the company is located.
          - `city` string, nullable, required — The city name.
          - `country` string, nullable, required — The country name.
          - `country_code` string, nullable, required — This field indicates the country supported for Leadfeeder operations and requires a two letter country code according to ISO 3166 Alpha-2 (see [https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)).
        - `industries` object, required — A list of the company's industries.
          - `industry` object[], required — A list of the company's internal industry classifications, each with a human-readable `name` and an internal `code` identifier.
            - `name` string, required — The name of the industry.
            - `code` string, required — The unique identifier for the industry.
        - `employee_range` '1-10' | '11-100' | '101-500' | '501-1.000' | '1.001-5.000' | '5.001-10.000' | '10.000+' | 'null', nullable, required — A range indicator of the approximate headcount for this company.
        - `revenue` object, nullable, required
          - `currency` string, nullable, required — Currency of the financial value.
          - `year` number, nullable, required — Year when the financial values was reported (or estimated).
          - `value` number, nullable, required — The amount of the financial value.
          - `value_eur` number, nullable, required — The amount of the financial value, converted to EUR.
          - `estimated` boolean, required — Whether the financial value was actually reported or is just an estimation.
        - `role` 'single_entity' | 'group' | 'group_member' | 'null', nullable, required — This field indicates the role of the company within its group structure.
        - `register` object, required
          - `status` 'active' | 'in_liquidation' | 'out_of_business' | 'non_company' | 'legacy' | 'null', nullable — The company's status in the commercial register.
        - `meta` object, required
          - `do_not_contact` boolean, required — This field is set to true when the company does not want to be contacted for advertisement.
          - `has_updated_id` boolean, required — This field will be true if the ID of that company has changed internally. This can happen for example if two companies are merged together. If you've stored a reference to the company ID in your system you should update it with the most current ID that's sent back in the `id` field.
          - `has_phones` boolean, required — Indicates if you will get back a landline or mobile phone number with the full company object.
          - `has_fax` boolean, required — Indicates if you will get back a fax number with the full company object.
          - `has_mail` boolean, required — Indicates if you will get back an email address with the full company object.
          - `has_contacts` boolean, required — Indicates if contacts are available for the company.
          - `has_social_accounts` boolean, required — Indicates if you will get back one or more social accounts with the full company object.
          - `has_register_id` boolean, required — Indicates if you will get back a register id with the full company object.
          - `has_vat_id` boolean, required — Indicates if you will get back a vat id with the full company object.
          - `has_financials_revenue` boolean, required — Indicates if you will get back the revenue with the full company object.
          - `has_financials_earnings` boolean, required — Indicates if you will get back the earnings value with the full company object.
          - `has_financials_net_worth` boolean, required — Indicates if you will get back the net worth value with the full company object.
          - `has_ip_addresses` boolean, required — Indicates if the company has IP data available.
      - `relationships` object, required
        - `group_company` object, nullable, required — The group company head. The field may be null if the company is a single entity.
          - `id` string, required — The Leadfeeder company ID.
          - `type` 'company', required
    - MaskedCompanySummaryV1[]
      - `type` 'masked_company_summary', required — The type of the object
      - `id` string, required — The Leadfeeder company ID.
      - `attributes` object, required
        - `name` string, required — The masked legal name of the company
        - `role` 'single_entity' | 'group' | 'group_member' | 'null', nullable, required — This field indicates the role of the company within its group structure.
        - `register` object, required
          - `status` 'active' | 'in_liquidation' | 'out_of_business' | 'non_company' | 'legacy' | 'null', nullable — The company's status in the commercial register.
        - `meta` object, required
          - `do_not_contact` boolean, required — This field is set to true when the company does not want to be contacted for advertisement.
          - `has_updated_id` boolean, required — This field will be true if the ID of that company has changed internally. This can happen for example if two companies are merged together. If you've stored a reference to the company ID in your system you should update it with the most current ID that's sent back in the `id` field.
          - `has_phones` boolean, required — Indicates if you will get back a landline or mobile phone number with the full company object.
          - `has_fax` boolean, required — Indicates if you will get back a fax number with the full company object.
          - `has_mail` boolean, required — Indicates if you will get back an email address with the full company object.
          - `has_contacts` boolean, required — Indicates if contacts are available for the company.
          - `has_social_accounts` boolean, required — Indicates if you will get back one or more social accounts with the full company object.
          - `has_register_id` boolean, required — Indicates if you will get back a register id with the full company object.
          - `has_vat_id` boolean, required — Indicates if you will get back a vat id with the full company object.
          - `has_financials_revenue` boolean, required — Indicates if you will get back the revenue with the full company object.
          - `has_financials_earnings` boolean, required — Indicates if you will get back the earnings value with the full company object.
          - `has_financials_net_worth` boolean, required — Indicates if you will get back the net worth value with the full company object.
          - `has_ip_addresses` boolean, required — Indicates if the company has IP data available.
      - `relationships` object, required
        - `group_company` object, nullable, required — The group company head. The field may be null if the company is a single entity.
          - `id` string, required — The Leadfeeder company ID.
          - `type` 'company', required
  - `meta` object, required
    - `credits` object, required
      - `charged` number, required — How many credits were consumed for this request.
    - `pagination` object, required
      - `next_cursor` string, nullable
      - `total_count` integer, required
    - `request_id` string, required — A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400` — Invalid mandatory fields
- `401` — Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403` — Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `429` — Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500` — Internal server error
- `504` — Server timeout

---

[API](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api.md) · [All operations](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/leadfeeder/leadfeeder-public-api/revisions/9e2e63ba2a4e/schema)
