# LinkedIn engagement

People reacting to a competitor's posts.

In the API these are the signal types `linkedin_engagement` and `own_engagement`. You run them with the same route as every signal: a search.

## What it finds

**`linkedin_engagement`** · LinkedIn engagement

People who react to or comment on a company's LinkedIn posts (yours or a company you name), and/or people who write their own post that tags that company. Each row is a person as LinkedIn shows them, without any AI: name, headline, profile URL, and what they did on which post. You judge who fits. Staff of that company (by headline), students, interns and people open to work are never returned.

**`own_engagement`** · Engagement with your own posts

People who react to or comment on your own LinkedIn posts: the posts of your company page (signal.company) and/or of your own profile and your colleagues’ (signal.people). Without any AI: each row is a person as LinkedIn shows them (name, headline, profile URL) with what they did on which of your posts. Every post in the window (lookback_days) is read, the newest first, with its reactions and comments. You judge who fits. The people in signal.people, the staff of your company page and of exclude_companies (by headline), company pages, students, interns and people open to work are never returned.

## Rows and price

**`linkedin_engagement`** · LinkedIn engagement

- One row per person, as the source shows it, with no AI judging it: you decide which rows fit.
- At most 100 rows per search, 25 unless you send `limit`; more with `cursor`. **1 credit** per row.
- A search that delivers nothing is free.

**`own_engagement`** · Engagement with your own posts

- One row per person, as the source shows it, with no AI judging it: you decide which rows fit.
- At most 100 rows per search, 25 unless you send `limit`; more with `cursor`. **1 credit** per row.
- A search that delivers nothing is free.

## The signal object

Send it as `signal` in the body of POST /searches. The other fields of the body are on [Start a search](/docs/api-reference/start-search).

**`linkedin_engagement`** · LinkedIn engagement

- **`type`** `string` · **required** — Always `linkedin_engagement`.
- **`company`** `object` · **required** — An object with the fields below.
- **`company.linkedin_url`** `string` · **required** — The LinkedIn page of the company. Look a name up with GET /companies/lookup?q=….
- **`people`** `object[]` — Up to 2 people at that company whose own posts are read too (only for leads_from reactors or both).
- **`people[].linkedin_url`** `string` · **required** — The LinkedIn URL.
- **`follow_page`** `boolean` — false = read only the named people (needs at least one). Defaults to `true`.
- **`leads_from`** `string` — reactors = people who react to or comment on the company's posts; authors = people who tag the company in their own post; both = merged and deduplicated. Defaults to `reactors`. One of: `reactors`, `authors`, `both`.
- **`engagement_kinds`** `string[]` — Defaults to `["reaction","comment"]`. One of: `reaction`, `comment`.
- **`lookback_days`** `integer` — How old a post may be. From 7 to 30. Defaults to `30`.

**`own_engagement`** · Engagement with your own posts

- **`type`** `string` · **required** — Always `own_engagement`.
- **`company`** `object` — Your company page: its posts are read, and its staff are left out by their headline. Send company, people or both.
- **`company.linkedin_url`** `string` · **required** — The LinkedIn page of the company. Look a name up with GET /companies/lookup?q=….
- **`people`** `object[]` — Up to 5 LinkedIn profiles whose own posts are read: yours and your colleagues’. They are never returned themselves. Send company, people or both.
- **`people[].linkedin_url`** `string` · **required** — The LinkedIn URL.
- **`engagement_kinds`** `string[]` — Defaults to `["reaction","comment"]`. One of: `reaction`, `comment`.
- **`lookback_days`** `integer` — How old a post may be, in days. From 1 to 30. Defaults to `30`.

## Limits

**`linkedin_engagement`** · LinkedIn engagement

- Public company-page posts only: page followers cannot be listed.
- Reactions and comments are read on the busiest recent posts, not on every post.
- No profile is read: title, employer and location are only what the headline says, and the source does not date a reaction (occurred_at is null).

**`own_engagement`** · Engagement with your own posts

- Up to 15 posts in the window are read, the newest first, with up to about 200 reactions and 200 comments per post.
- No profile is read: title, employer and location are only what the headline says, and the source does not date a reaction (occurred_at is null).
- Colleagues are left out by their headline only: send your company page in signal.company, or list it in exclude_companies.
- To follow your posts, run the search again, for example every week with lookback_days 7.

## Run it

- **Once**: [Start a search](/docs/api-reference/start-search) (`POST /searches`). [Preview a search](/docs/api-reference/preview-search) shows the most it can cost first. The rows are in [List search results](/docs/api-reference/search-results).
- **To follow it**: run the search again, for example every week. There are no watches.
- **From your assistant**: `search_signals` runs it ([MCP](/docs/api-reference/mcp)), on the mySDR connection the assistant signed in to, or on the Signals MCP server with a key.

## Example

**`linkedin_engagement`** · LinkedIn engagement

A search, `POST /searches`:

```json
{
  "signal": {
    "type": "linkedin_engagement",
    "company": {
      "linkedin_url": "https://www.linkedin.com/company/acme-analytics"
    },
    "leads_from": "reactors"
  },
  "limit": 25
}
```

**`own_engagement`** · Engagement with your own posts

A search, `POST /searches`:

```json
{
  "signal": {
    "type": "own_engagement",
    "company": {
      "linkedin_url": "https://www.linkedin.com/company/your-company"
    },
    "lookback_days": 7
  },
  "limit": 25
}
```
