---
title: "Sales Navigator Company/Account Search"
method: POST
path: "/search/linkedin/sales-nav/companies"
tags: ["salesNav"]
---

# Sales Navigator Company/Account Search

`POST /search/linkedin/sales-nav/companies`

# Sales Navigator Company Search

Search for accounts in LinkedIn Sales Navigator.

## Available filters
| Filter | Type | Description |
|--------|------|-------------|
| `keywords` | string | Search terms |
| `industry` | {include?, exclude?} | Industry IDs with include/exclude |
| `location` | string[] | Geography IDs |
| `companyHeadcount` | string[] | Employee count ranges |
| `companyType` | string[] | Company types |

## Credits

## Request body

- object
  - `category` 'people' | 'companies' — Type of Sales Navigator search: 'people' (leads) or 'companies' (accounts). Required unless url is provided.
  - `url` string — Sales Navigator search URL — paste directly from your browser. Category and filters are extracted automatically. Explicit params override URL-derived values. Example: https://www.linkedin.com/sales/search/people?query=...
  - `keywords` string — Search keywords. Supports LinkedIn Boolean syntax: use double quotes for exact phrases, AND/OR/NOT operators (UPPERCASE), and parentheses for grouping.
  - `industry` object — Industry filter. Accepts industry names ('Software Development', 'Hospitals and Health Care') OR LinkedIn numeric ids. Server resolves.
    - `include` string[] — Labels OR numeric IDs to include. Labels are resolved server-side (no need to call /parameters first).
    - `exclude` string[] — Labels OR numeric IDs to exclude. Labels are resolved server-side (no need to call /parameters first).
  - `location` string[] — Geography filter (people & companies). Accepts location names ('France', 'San Francisco Bay Area', 'EMEA') OR LinkedIn geo ids. Server resolves via typeahead.
  - `locationExclude` string[] — Geography filter to EXCLUDE. Same accepted shapes as `location`. Useful for 'all of Europe except Switzerland' patterns.
  - `persona` string[] — Buyer Persona IDs the user has configured on sales.linkedin.com home (combos of function+seniority+title+geo). Match the IDs from the URL filter ((type:PERSONA,values:List((id:<id>,…)))).
  - `recentlyChangedJobs` boolean — Filter to leads who changed jobs in the last 90 days (LinkedIn buying-intent flag). True = include only job-changers; omit/false = no constraint.
  - `postedOnLinkedin` boolean — Filter to leads who recently posted on LinkedIn (engagement signal — active posters reply more often). True = include only recent posters; omit/false = no constraint.
  - `sharedExperiences` boolean — Filter to leads with shared experience with the searcher (same school / past employer / group). True = include only shared-experience matches; omit/false = no constraint.
  - `viewedYourProfile` boolean — Filter to leads who recently viewed YOUR profile (LinkedIn flag VYP). Highest-intent engagement signal — they already showed interest. Requires Sales Nav seat that captures profile views.
  - `followsYourCompany` boolean — Filter to leads who follow YOUR company page (LinkedIn flag CF). Warm-touch signal — they opted into your brand.
  - `connectionOf` string[] — Filter to leads connected to a specific person. Values are LinkedIn ENCRYPTED member URN ids (e.g. 'ACwAAAim9ZcB…'), not numeric ids. Useful for 'find people connected to my champion at X' warm-intro patterns.
  - `pastCompany` object — Past-employer filter (people only). Accepts company names ('Stripe') OR LinkedIn numeric ids. The server wraps numeric ids as 'urn:li:organization:<id>' (the wire shape Sales Nav requires) — callers can pass the bare id or the URN.
    - `include` string[] — Labels OR numeric IDs to include. Labels are resolved server-side (no need to call /parameters first).
    - `exclude` string[] — Labels OR numeric IDs to exclude. Labels are resolved server-side (no need to call /parameters first).
  - `companyHeadquarters` object — Where the lead's CURRENT employer is HQ'd (people only). Accepts location names ('France', 'United States') OR LinkedIn geo ids. Distinct from `location` which is the lead's own location — useful for 'sell to UK-headquartered companies regardless of where the buyer lives'.
    - `include` string[] — Labels OR numeric IDs to include. Labels are resolved server-side (no need to call /parameters first).
    - `exclude` string[] — Labels OR numeric IDs to exclude. Labels are resolved server-side (no need to call /parameters first).
  - `yearsInCurrentPosition` string[] — Years in current ROLE/POSITION (people only). Same accepted labels as `yearsOfExperience` ('Less than 1 year', '1 to 2 years', etc.). Distinct from `tenure` which counts years at current COMPANY.
  - `pastTitle` string — Past job title keywords (people only). Free-text, supports Boolean OR. Finds leads who previously held a matching title.
  - `firstName` string — First name (people only). Exact name filter.
  - `lastName` string — Last name (people only). Exact name filter.
  - `groups` string[] — LinkedIn Groups membership (people only). Accepts group names ('Digital Marketing') OR numeric group ids. Server resolves names via typeahead.
  - `pastColleague` boolean — Filter to leads who are past colleagues of the searcher (worked at the same company, overlapping dates). True = include only past colleagues; omit/false = no constraint. Warm-intro signal.
  - `leadInteractions` string[] — Filter by your past interaction with the lead (people only). Accepts labels ('Messaged') OR LinkedIn codes.
  - `savedLeadsAndAccounts` string[] — Filter to your saved leads / accounts (people only). Accepts 'All my saved leads' / 'All my saved accounts' OR codes SL/SA.
  - `companyHeadcount` string[] — Employee count (companies only). Accepts labels ('1-10', '11-50', '51-200', '201-500', '501-1,000', '1,001-5,000', '5,001-10,000', '10,001+', 'Self-employed') OR LinkedIn letter codes A-I.
  - `companyType` string[] — Company type (companies only). Accepts labels ('Public Company', 'Privately Held', 'Non Profit', 'Educational Institution', 'Government Agency', 'Self-Employed', 'Self-Owned', 'Partnership') OR LinkedIn letter codes.
  - `numOfFollowers` string[] — Company follower-count buckets (companies only). Accepts labels ('1-50', '51-100', '101-1,000', '1,001-5,000', '5,001+') OR ids 1-5.
  - `fortune` string[] — Fortune-list membership (companies only). Accepts 'Fortune 50' / 'Fortune 100' / 'Fortune 250' / 'Fortune 500' OR codes FORTUNE_50/100/250/500.
  - `accountActivities` string[] — Account buying-intent signals (companies only). Accepts labels ('Senior leadership changes in last 3 months', 'Funding events in past 12 months') OR codes SLC/RFE.
  - `jobOpportunities` string[] — Account hiring signals (companies only). Accepts the LinkedIn hiring-signal labels OR codes.
  - `start` integer — Pagination offset (default 0).
  - `count` integer — Results per page (default 25, max 25).
  - `campaignSlug` string — Campaign ID. Auto-adds discovered contacts to this campaign in background. Mandatory whenever a campaign is active.

## Response `200`

Sales Navigator company search results

- object
  - `success` true, required
  - `category` 'companies', required
  - `items` object[], required
    - `type` 'COMPANY', required
    - `name` string, required
    - `profileUrl` string, nullable, required
    - `summary` string, nullable, required
    - `industry` string, nullable, required
    - `location` string, nullable, required
    - `logoUrl` string, nullable — Company logo URL when LinkedIn surfaces it on the result entity. Display this in the company card.
    - `id` string, required — Sales Navigator company ID
    - `headcount` string, nullable, required — Employee count or range
  - `paging` object, required
    - `start` integer, required
    - `count` integer, required
    - `total` integer, required
  - `hasMore` boolean, required
  - `warnings` object[] — Caveats about this result set. Absent or empty means the search ran exactly as asked.
    - `field` string, required — Which part of the request this is about, or `search` when it is about the whole result set.
    - `value` string, required — The value involved: what was dropped, or a code naming the condition.
    - `type` string, required — What kind of caveat this is. SEARCH_QUOTA: LinkedIn capped this account for the month, so the set is TRUNCATED and not the whole market. PARSE_EMPTY: the page answered and no rows could be read, and LinkedIn did not say the market is empty, so treat it as unread rather than as nobody matching. URL_FACET: a pasted search URL carried a filter this search cannot apply, so it ran wider than the one on screen. ENUM: a value was not recognised and that filter was dropped. LANE_FALLBACK: some or all rows came from the public lane, which fills fewer fields. AND_BLOB / OR_OVERFLOW: the keyword shape over-constrained and was retried or flagged. SEARCH_PLAN: the ask was spread across a search budget rather than paged.
    - `hint` string — One sentence a caller can show a person.
  - `creditsUsed` integer, required — Credits consumed by this call. 0 for free endpoints, cached results, duplicates, and for every query that does not touch LinkedIn.
  - `retryAfter` integer, required — Seconds to wait before another call of the same type. 0 means no wait is needed.
  - `_meta` object — Credit balance carried on every response so a caller never has to ask for it separately. Absent when the caller has no connected account.
    - `credits` object, required
      - `current` number, required — Credits spent this period.
      - `limit` number, nullable, required — Period allowance, or null when unlimited.
      - `remaining` number, nullable, required — Allowance left, or null when unlimited.
      - `percentage` number, required — Share of the allowance spent, 0 to 100.
      - `isUnlimited` boolean, required
      - `accountPlan` string, required — The credential's plan.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" when the caller IS authenticated but has no connected LinkedIn account — connect LinkedIn (not re-authenticate) to continue.
- `403` — The client does not have access rights to the content.
- `404` — The server cannot find the requested resource.
- `409` — The request conflicts with the current state of the server.
- `410` — The requested content has been permanently deleted from the server.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — Rate limit exceeded. Read error.retryAfter for the wait time in seconds.
- `500` — The server encountered a situation it does not know how to handle.
- `502` — LinkedIn returned a server error or the proxy connection failed. Retry after a few seconds.
- `503` — Proxy capacity temporarily exceeded. Retry after a few seconds.

---

[API](https://skmtc.net/berea/apis/bereach-api.md) · [All operations](https://skmtc.net/berea/apis/bereach-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/berea/bereach-api/revisions/32391e7c6322/schema)
