---
title: "List companies"
method: GET
path: "/companies"
tags: ["Companies"]
---

# List companies

`GET /companies`

## Request

- Base URL: `https://api.pipelinecrm.com/api/v3`
- URL: `https://api.pipelinecrm.com/api/v3/companies`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer and API key in header `app-key`
  - API key in query parameter `api_key` and API key in query parameter `app_key`

**Filtered request example** — Companies named Acme…, owned by user 13, created in the last 30 days:

```
curl -g -H "Authorization: Bearer pcrm_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  "https://api.pipelinecrm.com/api/v3/companies.json?conditions[company_name]=Acme&conditions[company_owner][]=13&conditions[company_created][selection]=last_30&sort=-company_name&per_page=50"
```

## Query parameters

- `conditions` CompanyConditions
  - `company_address` string: Return records that have an address that exactly matches or starts with the provided string
  - `company_address2` string: Return records that have a secondary address that exactly matches or starts with the provided string
  - `company_city` string: Return records that have a city that exactly matches or starts with the provided string
  - `company_country` string: Country starts with this text (case-insensitive).
  - `company_created` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_created_at` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_created_by_user` integer: Return records that were created by the given user
  - `company_description` string: Return records that have a description that exactly matches or starts with the provided string
  - `company_email` string: Return records that have an email that exactly matches or starts with the provided string
  - `company_fax` string: Return records that have a fax number that exactly matches or starts with the provided string
  - `company_id` integer: The company with given company_id. Note: you can specify a comma-separated list of ids to retrieve more companies at once
  - `company_id_not` union: One id, several ids as repeated `[]=` parameters, or a comma-separated list.
    - integer
    - string
    - integer[]
  - `company_import_name` string: Return records that have an import name that exactly matches or starts with the provided string
  - `company_imported_at` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_is_customer` 'Yes' | 'No': Return records that are customers
  - `company_linked_in_url` string: LinkedIn URL contains this text.
  - `company_modified` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_name` string: Return records that have a name that exactly matches or starts with the provided string
  - `company_name_eq` string: Return records that have a name that exactly matches the provided string
  - `company_owner` integer: Return records that have an owner with the given ID
  - `company_owner_team` integer: Return records that have an owner in the given team
  - `company_phone` string: Return records that have a phone number that exactly matches or starts with the provided string
  - `company_phone2` string: Second phone number contains these digits; formatting characters are ignored.
  - `company_phone3` string: Third phone number contains these digits; formatting characters are ignored.
  - `company_phone4` string: Fourth phone number contains these digits; formatting characters are ignored.
  - `company_phones_contains` string: Any of the company's phone numbers contains these digits; formatting characters are ignored.
  - `company_shared_with` integer[]: Return records that have been shared with the given users
  - `company_state` string: Return records that have a state that exactly matches or starts with the provided string
  - `company_tags` integer[]: Return records that have the given tag IDs
  - `company_total_pipeline` union: A numeric range filter: `[from]=1000&[to]=5000` (either bound may be omitted on most fields). Where noted, the literal strings `__NONE__` (field is empty) and `__HAS_VALUE__` (field is set) are also accepted.
    - object
      - `from` number
      - `to` number
    - '__NONE__' | '__HAS_VALUE__'
  - `company_updated` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_updated_at` union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
    - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
    - object: An explicit range. Either bound may be omitted.
      - `from_date` string, date
      - `to_date` string, date
    - object: A relative period counted in whole units.
      - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
      - `duration` integer, required
  - `company_web` string: Return records that have a website that exactly matches or starts with the provided string
  - `company_won_value` union: A numeric range filter: `[from]=1000&[to]=5000` (either bound may be omitted on most fields). Where noted, the literal strings `__NONE__` (field is empty) and `__HAS_VALUE__` (field is set) are also accepted.
    - object
      - `from` number
      - `to` number
    - '__NONE__' | '__HAS_VALUE__'
  - `company_worked_on_by` integer: Return records that have been worked on by the given user
  - `company_zip` string: Return records that have a postal code that exactly matches or starts with the provided string
  - `customer_days_in_health` union: A numeric range filter: `[from]=1000&[to]=5000` (either bound may be omitted on most fields). Where noted, the literal strings `__NONE__` (field is empty) and `__HAS_VALUE__` (field is set) are also accepted.
    - object
      - `from` number
      - `to` number
    - '__NONE__' | '__HAS_VALUE__'
  - `customer_health_score` integer: Return records that have a customer health score that exactly matches the provided integer
  - `next_milestone_due` union: A filter on a calendar date (no time of day). Takes every form a date range filter takes: a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`. It also takes `[selection]=upcoming_anniversary&[duration]=30`, which matches dates whose month and day fall in the next 30 days of any year, such as birthdays.
    - union: A date or datetime filter. Send ONE of the forms below (see the Filtering guide): a single day `2026-01-15`; a bounded range `[from_date]=2026-01-01&[to_date]=2026-03-31` (either side optional); a relative period `[selection]=last_30` or `[selection]=this_quarter`; or a relative count `[selection]=last_x_days&[duration]=14`.
      - string: A single day (`YYYY-MM-DD`) or a relative period keyword such as `today`, `yesterday`, `this_week`, `last_week`, `next_week`, `this_month`, `last_month`, `next_month`, `this_quarter`, `last_quarter`, `next_quarter`, `this_year`, `last_year`, `year_to_date`, `last_7`, `last_30`, `last_60`, `last_90`, `next_7`, `next_30`, `next_60`, `next_90`, `last_3_months`, `next_3_months`, `last_6_months`, `next_6_months`, `last_12_months`, `next_12_months`, `past_due`, `future`.
      - object: An explicit range. Either bound may be omitted.
        - `from_date` string, date
        - `to_date` string, date
      - object: A relative period counted in whole units.
        - `selection` 'last_x_days' | 'next_x_days' | 'last_x_weeks' | 'next_x_weeks' | 'last_x_months' | 'next_x_months' | 'last_x_quarters' | 'next_x_quarters' | 'last_x_years' | 'next_x_years' | 'older_than', required
        - `duration` integer, required
    - object: Month and day within the next `duration` days, in any year (birthdays, anniversaries). `duration` 0 means today; values above 365 are treated as 365.
      - `selection` 'upcoming_anniversary', required
      - `duration` integer, required
  - `next_milestone_name` string: The customer's next milestone name contains this text.
  - `next_milestone_status` string: The customer's next milestone has this status: `not_started`, `in_progress`, `blocked` or `complete`, or the number it is stored as (0 to 3). The next milestone is the earliest one not yet complete, so `complete` normally matches nothing. `none` or `__NONE__` matches customers with no next milestone, `__HAS_VALUE__` those with one; any other value matches nothing.

## Response `200`

Successful Response

- object
  - `entries` CompanyAll[], required
    - `id` integer: Unique identifier
    - `image_mobile_url` string: The uploaded mobile avatar of the company. Mobile avatar is scaled to maximum of 100x100 pixels.
    - `possible_notify_user_ids` integer[]: The list of [User](#tag/users) IDs that can be added to `notify_user_ids` on associated [notes](#tag/activities-notes).
    - `owner` object: A convenience object to get the full name of the company [owner](#tag/users)
      - `id` integer
      - `full_name` string
    - `next_task_name` string: Name of the next calendar entry due associated with the company
    - `next_task_id` integer: The ID of the next calendar entry due associated with the company
    - `next_task_due` string: Due date of the next calendar entry due associated with the company
    - `next_task_all_day` boolean: Is the next calendar entry due associated with the company an all day event?
    - `tags` object[]: A convenience object for this company record's [tags](#tag/predefined-contacts-tags)
      - `id` integer
      - `name` string
    - `created_at` string: Timestamp when the record was created (time zone in user's time zone).
    - `updated_at` string: Timestamp when the record was last touched (time zone in user's time zone).
    - `name` string: The name of the company
    - `description` string, nullable
    - `email` string, nullable: The email of the company
    - `web` string, nullable: The company's website
    - `fax` string, nullable
    - `custom_fields` object: Custom fields for the company. See [custom fields](#tag/custom-fields) section for more info.
    - `image_thumb_url` string: The uploaded avatar of the company. Avatar is scaled to maximum of 50x50 pixels.
    - `address_1` string, nullable: First line of business address.
    - `address_2` string, nullable: Second line of business address.
    - `city` string, nullable: Business address city.
    - `state` string, nullable: Business address state.
    - `postal_code` string, nullable: Business address postal code.
    - `country` string, nullable: Business address country.
    - `company_country` string: Return records that have a country that exactly matches or starts with the provided string
    - `facebook_url` string, nullable: URL to company's facebook profile
    - `linked_in_url` string, nullable: URL to company's LinkedIn profile
    - `twitter` string, nullable: Company's twitter username
    - `instant_message` string, nullable: Company's IM username
    - `phone1` string, nullable: Primary business number
    - `phone2` string, nullable: Secondary business number
    - `phone3` string, nullable: Extra business number
    - `phone4` string, nullable: Extra business number
    - `phone1_desc` string, nullable: Description for the primary business number
    - `phone2_desc` string, nullable: Description for the secondary business number
    - `phone3_desc` string, nullable: Description for an extra business number
    - `phone4_desc` string, nullable: Description for an extra business number
    - `owner_id` integer, nullable: The ID of the [owner](#tag/users) of the company
    - `shared_user_ids` integer[]: The array of [User](#tag/users) IDs with whom this company's been shared (also known as Collaborators)
    - `tag_ids` integer[]: IDs of the [tags](#tag/predefined-contacts-tags) to set on this company
  - `pagination` Pagination, required: Paging details returned alongside `entries` on every paginated list.
    - `page` integer: The page returned. Request another with `?page=N`.
    - `per_page` integer: Page size. `?per_page=N`, capped at 200.
    - `total` integer: Total number of records matching the request across all pages.
    - `pages` integer: Number of pages at this `per_page`.
    - `total_in_account` integer, nullable: Total number of records of this type visible to you before filters were applied. Null when not computed for the endpoint.
    - `page_var` string: Name of the query parameter that selects the page. Always `page`.
    - `url` string, nullable: Path of the request, when the endpoint reports it.

## Other responses

- `422`: The request was understood but a value is missing, invalid or too long.

---

[API](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api.md) · [All operations](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/revisions/53ebfcc83597?raw)
