Skip to main content
GET
/
companies
Get Many Companies
curl --request GET \
  --url https://api.lemlist.com/api/companies \
  --header 'Authorization: Basic <encoded-value>'
{
  "data": [
    {
      "_id": "cpn_gG7PsmZFpEAnpMCHO",
      "createdAt": "2025-10-26T11:54:27.387Z",
      "createdBy": "usr_iGBmhLaxZmL0s7k1G",
      "domain": "persana.ai",
      "fields": {
        "name": "Persana AI",
        "picture": "https://example.com/logos/company-1.png"
      },
      "ownerId": "usr_iGBmhLaxZmL0s7k1G"
    },
    {
      "_id": "cpn_FEWCjzMWXo5StjpDa",
      "createdAt": "2025-10-26T11:45:18.773Z",
      "createdBy": "usr_iGBmhLaxZmL0s7k1G",
      "domain": "duno.ai",
      "fields": {
        "industry": "IT Services and IT Consulting",
        "name": "Duno.ai",
        "picture": "https://example.com/logos/company-2.png"
      },
      "ownerId": "usr_iGBmhLaxZmL0s7k1G"
    },
    {
      "_id": "cpn_2STz8x5Bexmd0nvIz",
      "createdAt": "2025-10-25T21:37:45.741Z",
      "createdBy": "usr_iGBmhLaxZmL0s7k1G",
      "domain": "tally.so",
      "fields": {
        "industry": "Computer Software",
        "name": "lemlist family",
        "picture": "https://example.com/logos/lemlist.png"
      },
      "ownerId": "usr_iGBmhLaxZmL0s7k1G"
    },
    {
      "_id": "cpn_Qf4CJuUrNUNmHm6uZ",
      "createdAt": "2025-10-24T07:26:34.956Z",
      "createdBy": "usr_ahfFktBBHUIxbVG5P",
      "domain": "example.com",
      "fields": {
        "name": "Growth & GTM Engineering"
      },
      "ownerId": "usr_ahfFktBBHUIxbVG5P"
    },
    {
      "_id": "cpn_A1B2C3D4E5F6G7H8I",
      "createdAt": "2025-11-02T09:14:08.512Z",
      "createdBy": "usr_A1B2C3D4E5F6G7H8I",
      "domain": "acme.com",
      "fields": {
        "name": "Acme Inc"
      },
      "ownerId": "usr_A1B2C3D4E5F6G7H8I",
      "crmSync": {
        "provider": "hubspot",
        "crmRecordId": null,
        "syncDisabled": false,
        "errors": [
          {
            "type": "CONNECT_FAILED",
            "reason": "UNIQUE_INDEX_ERROR_COMPANY",
            "raisedAt": "2025-11-02T09:14:12.034Z",
            "metadata": {
              "alreadyExistingCompanyId": "cpn_J1K2L3M4N5O6P7Q8R"
            }
          }
        ]
      }
    }
  ],
  "total": 59310,
  "limit": 100,
  "offset": 0
}
This endpoint uses the Company object.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Query Parameters

idsOrDomains
string

Comma-separated list of company IDs or domains to fetch. When provided, returns only matching companies (no pagination). Each value is classified as a company ID (e.g. cpn_xxx) or a domain (e.g. example.com). URLs are normalized automatically (e.g. https://example.com/pathexample.com). Invalid values are silently skipped. Maximum 100 values.

offset
integer
default:0

Number of companies to skip for pagination. Defaults to 0. Ignored when idsOrDomains is provided.

Required range: x >= 0
sortBy
enum<string>

The field by which to sort. Currently, only 'createdAt' is supported.

Available options:
createdAt
sortOrder
enum<string>

The sort direction. Use 'desc' for descending order; any other value (or omission) will sort in ascending order.

Available options:
asc,
desc

Search by company name (case insensitive)

fields
string

Returns selected fields. Returns all fields if empty. Each field is separated by a comma (e.g., '_id,fields.name,domain')

limit
integer
default:100

Number of companies to retrieve. Default: 100. Maximum: 500

Required range: 1 <= x <= 500
crmSyncStatus
enum<string>

Filter companies by their CRM sync state against the team's active CRM provider. Requires a CRM (Hubspot, Salesforce, or Pipedrive) to be connected — otherwise the request returns 400 NO_CRM_CONNECTED. Common values:

  • synced — the company has a CRM record and no sync errors.
  • not_synced — the company has no CRM record yet.
  • error — at least one sync error is currently raised.
  • A specific error reason (lowercase form), to filter by root cause: unique_index_error_company, property_doesnt_exist, required_field_missing, company_already_exists_with_name, company_already_exists_with_linkedin_url.

For each returned company, see crmSync.errors[].metadata.alreadyExistingCompanyId to identify the lemlist company that already occupies the conflicting CRM record (useful to remap contacts before deleting the duplicate).

Available options:
synced,
not_synced,
error,
unique_index_error_company,
property_doesnt_exist,
required_field_missing,
company_already_exists_with_name,
company_already_exists_with_linkedin_url

Response

Success

data
object[]
required
total
integer
required
limit
integer
required
offset
integer
required