LinkedIn hub

LinkedIn Post Search API

Search public LinkedIn posts by keyword and get structured JSON rows — text, author, reactions, comments — with cursor pagination.

GET /v1/linkedin/posts/search

1 credit per successful request.

About this endpoint

Brand monitoring and content research rarely start with a permalink. You have a phrase ("AI agents," a product name, a competitor) and need matching public LinkedIn posts on a schedule. Scraping LinkedIn search yourself means login walls, checkpoint loops, and HTML that shifts without a changelog.

`GET /v1/linkedin/posts/search` takes a required `query` string (1–512 characters after trim). Optional `datePosted` narrows recency: `last-hour`, `last-day`, `last-week`, `last-month`, or `last-year`. The response echoes `data.query`, returns matching rows in `data.posts`, and paginates with `data.page.hasMore` / `data.page.nextCursor`. When `hasMore` is true, pass `nextCursor` as `cursor` on the next call with the same `query` and `datePosted`. Each post can include `url`, `text`, `publishedAt`, media and image URLs, `author` (name, profileUrl, avatarUrl, followers), and `metrics` (reactions, comments) when LinkedIn exposes them.

An empty `posts` array means no matching public posts for that query and page. It is not an error. This route is keyword discovery. For a known permalink, use `GET /v1/linkedin/posts`. For spoken audio from a post, use `GET /v1/linkedin/posts/transcript`. Company feed pagination stays on `GET /v1/linkedin/companies/posts`. Pricing is 1 credit per successful request; trust `meta.creditsCharged`.

LinkedIn Post Search API FAQ

How do I search LinkedIn posts by keyword via API?

Call `GET /v1/linkedin/posts/search` with your Social Fetch API key (`x-api-key`) and a required `query` param. Optionally add `datePosted` and `cursor`. Read `data.posts` and `data.page` in the JSON response. Full parameters are in the API docs.

How much does LinkedIn post search cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

What does datePosted accept?

Optional enum: `last-hour`, `last-day`, `last-week`, `last-month`, or `last-year`. Omit it when you want the default (unfiltered) recency window for that search.

How does pagination work on LinkedIn post search?

When `data.page.hasMore` is true, pass `data.page.nextCursor` as the `cursor` query param on the next request. Keep the same `query` and `datePosted` across pages. Do not invent scroll tokens.

What fields does each LinkedIn post search result include?

Each row can include `url`, `text`, `publishedAt`, `mediaUrl`, `imageUrl`, `imageUrls`, `author` (name, profileUrl, avatarUrl, followers), and `metrics` (reactions, comments). Coverage follows what LinkedIn shows on public search for that hit.

LinkedIn post search vs single-post GET?

Use `GET /v1/linkedin/posts/search` when you have a keyword and need candidate permalinks. Use `GET /v1/linkedin/posts` when you already have a post or article URL and want the fuller single-item card (including optional comments and related articles).

What happens when no posts match the query?

The call returns HTTP 200 with an empty `data.posts` array. That is a valid empty page, not a failure. Keep `meta.requestId` if you need to retry or escalate.

Do I need LinkedIn partner API access for post search?

No. Social Fetch returns public LinkedIn post search results. LinkedIn's official partner APIs are separate and require LinkedIn's access programs and member authorization.