---
title: "Search LinkedIn companies (Sales Navigator 1-25; Classic fixed 10; limit 300/day). Results are cached locally. SN-only f"
method: GET
path: "/api/v1/search/companies"
tags: ["search"]
---

# Search LinkedIn companies (Sales Navigator 1-25; Classic fixed 10; limit 300/day). Results are cached locally. SN-only f

`GET /api/v1/search/companies`

## Request

- Base URL: `https://crispy.sh`
- URL: `https://crispy.sh/api/v1/search/companies`
- Auth: HTTP bearer

## Query parameters

- `keyword` string: Search keyword (company name, etc.)
- `keywords` string: Search keywords.
- `industry` union: Industry: a name (resolved to an ID), an ID, comma-separated IDs, or {include, exclude} of IDs. exclude requires Sales Navigator.
  - string
  - object
    - `include` string[]
    - `exclude` string[]
- `location` union: Headquarters location: a name (resolved to an ID), an ID, comma-separated IDs, or {include, exclude} of IDs. exclude requires Sales Navigator.
  - string
  - object
    - `include` string[]
    - `exclude` string[]
- `has_job_offers` boolean: Only companies hiring on LinkedIn. Send true; false is refused because its meaning is not documented.
- `headcount` union: Employee headcount: a band ("1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10001+") or [{min, max}]. 10001+ is {min: 10001} with no max.
  - '1-10' | '11-50' | '51-200' | '201-500' | '501-1000' | '1001-5000' | '5001-10000' | '10001+'
  - object[]
    - `min` 1 | 11 | 51 | 201 | 501 | 1001 | 5001 | 10001
    - `max` 1 | 10 | 50 | 200 | 500 | 1000 | 5000 | 10000
- `network_distance` number[]: Connection degrees: 1, 2 or 3.
- `location_by_postal_code` object: Sales Navigator only. Postal-code IDs from get_search_parameters type postal_code, as {include, exclude}, with within_area as the radius in miles. within_area alone is refused.
  - `include` string[]
  - `exclude` string[]
  - `within_area` number
- `headcount_growth` object: Sales Navigator only. Company headcount growth as {min, max}. The unit is not documented.
  - `min` number
  - `max` number
- `department_headcount` object: Sales Navigator only. Department headcount as {department, min, max}. department is required: IDs from get_search_parameters type department.
  - `department` string[], required
  - `min` number
  - `max` number
- `department_headcount_growth` object: Sales Navigator only. Department headcount growth as {department, min, max}. department is required: IDs from get_search_parameters type department.
  - `department` string[], required
  - `min` number
  - `max` number
- `annual_revenue` object: Sales Navigator only. Annual revenue as {currency, min, max}, all required. currency is an uppercase ISO 4217 code such as USD. min and max are one of 0, 0.2, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000, 1001; max 1001 means 1000+.
  - `currency` string, required
  - `min` 0 | 0.2 | 1 | 2.5 | 5 | 10 | 20 | 50 | 100 | 500 | 1000 | 1001, required
  - `max` 0 | 0.2 | 1 | 2.5 | 5 | 10 | 20 | 50 | 100 | 500 | 1000 | 1001, required
- `followers_count` object[]: Sales Navigator only. Follower bands as [{min, max}]: min 1, 51, 101, 1001 or 5001; max 50, 100, 1000 or 5000.
  - `min` 1 | 51 | 101 | 1001 | 5001
  - `max` 50 | 100 | 1000 | 5000
- `fortune` object[]: Sales Navigator only. Fortune rank bands as [{min, max}]: min 0, 51, 101 or 251; max 50, 100, 250 or 500.
  - `min` 0 | 51 | 101 | 251
  - `max` 50 | 100 | 250 | 500
- `technologies` string[]: Sales Navigator only. Technology IDs from get_search_parameters type technologies.
- `recent_activities` string[]: Sales Navigator only. Recent company activity: FUNDING_EVENTS and/or SENIOR_LEADERSHIP_CHANGES.
- `saved_accounts` string[]: Sales Navigator only. Saved-account IDs. Narrows results to LinkedIn's Saved accounts filter; it saves nothing.
- `account_lists` object: Sales Navigator only. Account-list IDs or ALL, as {include, exclude}. IDs from get_search_parameters type account_lists.
  - `include` string[]
  - `exclude` string[]
- `limit` number: Maximum results (Sales Navigator 1-25; LinkedIn Classic returns a fixed page of 10; default 10)
- `cursor` string: Pagination cursor
- `linkedin_api` 'classic' | 'sales_navigator': Company-search API. When omitted, Sales Navigator is used if the account has a seat and the search carries headcount, industry or a Sales Navigator-only filter; otherwise Classic. Classic with a Sales Navigator-only filter returns an error and zero results.
- `refresh` boolean: If true, bypass cache and always run a live search. Default false.
- `url` string: Run a pasted LinkedIn or Sales Navigator company search/saved-search URL directly (linkedin.com/search/results/companies/... or linkedin.com/sales/search/company...). When set, all other filters are ignored.

## Response `200`

Success

## Other responses

- `401`: Missing or expired API key
- `403`: Insufficient key scope or permission denied
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crispy/apis/crispy-rest-api.md) · [All operations](https://skmtc.dev/crispy/apis/crispy-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crispy/apis/crispy-rest-api/revisions/6bed0974d9ce?raw)
