---
title: "Search LinkedIn with any filter"
method: POST
path: "/v1/actions/search_linkedin"
tags: ["Search"]
---

# Search LinkedIn with any filter

`POST /v1/actions/search_linkedin`

## Request

- Base URL: `https://api.heyreagent.com`
- URL: `https://api.heyreagent.com/v1/actions/search_linkedin`
- Auth: HTTP bearer

Run a search from a results link copied out of LinkedIn, Sales Navigator or Recruiter.

Use it for url. For filters use the typed actions (search_linkedin_people, …_companies, …_posts, …_jobs, …_sales_navigator_people, …_sales_navigator_companies, …_recruiter_people): this one takes them as a free-form object in LinkedIn's own snake_case names, unchecked.

Rows are of the kind searched; their fields are those of the typed action for that kind.

A limit above LinkedIn's page size for the kind searched is brought down to it: 10 for ordinary people and companies, 49 for posts, 50 for jobs, 100 on Sales Navigator and Recruiter. A pasted ordinary link does not say its kind and is held to 50.

Docs: https://heyreagent.com/docs/actions/search_linkedin

## Request body

- object
  - `kind` 'classic/people' | 'classic/companies' | 'classic/posts' | 'classic/jobs' | 'sales_navigator/people' | 'sales_navigator/companies' | 'recruiter/people': What to search. Required unless url is given.
  - `filters` object: The search filters for that kind, e.g. { keywords: "head of sales", network_distance: [2], location: ["106967730"] }.
  - `url` string, uri: A LinkedIn / Sales Navigator / Recruiter search URL to run instead of kind + filters.
  - `limit` number: How many to return (1–100, default 10).
  - `cursor` string: nextCursor from the previous call, to get the next page. Keep the other arguments the same.
  - `connectionId` string: Which of your LinkedIn accounts to act from (its id from list_linkedin_accounts). Omit to use your first live one.

## Response `200`

It worked. Inside result: returned, nextCursor, results[].type, results[].id, results[].publicIdentifier, results[].publicProfileUrl, results[].profileUrl, results[].profilePictureUrl, results[].profilePictureUrlLarge, results[].memberUrn, results[].name, results[].firstName, results[].lastName, results[].networkDistance, results[].location, results[].industry, results[].keywordsMatch, results[].headline, results[].connectionsCount, results[].followersCount, results[].pendingInvitation, results[].canSendInmail, results[].hiddenCandidate, results[].interestLikelihood, results[].recruiterCandidateId, results[].recruiterPipelineCategory, results[].premium, results[].verified, results[].sharedConnectionsCount, results[].recentPostsCount, results[].recentlyHired, results[].mentionedInTheNews, results[].interests, results[].summary, results[].jobOffersCount, results[].headcount, results[].socialId, results[].shareUrl, results[].title, results[].text, results[].date, results[].parsedDatetime, results[].reactionCounter, results[].commentCounter, results[].repostCounter, results[].impressionsCounter, results[].userReacted, results[].isRepost, results[].repostId, results[].repostParsedDatetime, results[].referenceId, results[].postedAt, results[].reposted, results[].url, results[].promoted, results[].benefits, results[].easyApply.

- Worked
  - `ok` true, required
  - `result` object, required: What was asked for. A field that does not apply is left out, or is null.

## Other responses

- `default`: It did not work. The message says why, in plain English.

---

[API](https://skmtc.dev/heyreagent/apis/heyreagent-api.md) · [All operations](https://skmtc.dev/heyreagent/apis/heyreagent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/heyreagent/apis/heyreagent-api/revisions/917360c5f841?raw)
