linkedin

Search › Posts

Returns public LinkedIn posts and Pulse articles matching a keyword, with each result's text, author, media, like and comment counts, and date.

Use it for broad keyword monitoring; it reads public search results, so treat coverage as best effort rather than complete.

Metered: 10–480 credits. We reserve the ceiling when the call starts and charge what it actually used when it finishes.

Paginates by cursor: see Pagination.

get/v1/linkedin/search/posts

Request

  • Base URL: https://api.insightsocial.app
  • URL: https://api.insightsocial.app/v1/linkedin/search/posts
  • Auth: API key in header x-api-key

Query parameters

querystring
Example:ai agents

Keyword or phrase to search for. Optional when from_member or from_company is set: omit it to get that subject's posts unfiltered, and note that supplying a real content word narrows the results to posts matching it. Provide at least one of: query, from_member, from_company.

from_memberstring

Filter to posts from one member, by their LinkedIn member urn — the bare ACoAA… value published as author.ext.urn by /v1/linkedin/profile. A profile URL, a public slug (williamhgates) or a urn:li:fsd_profile:-prefixed value is rejected. Pass this on its own, with no query, to walk one member's back catalogue. Provide at least one of: query, from_member, from_company.

from_companystring

Filter to posts from a company, by numeric LinkedIn company id (for example 1035). A company slug or URL is rejected; read the id from author.id on /v1/linkedin/company. Provide at least one of: query, from_member, from_company.

pageinteger

1-based page number of Google results. Defaults to 1.

sort_by'date_posted' | 'relevance'

Result ordering: relevance (default) or date_posted. On a subject-only call (from_member or from_company with no query) the results are ordered by date and relevance is rejected, because there is no query for them to be relevant to.

date_posted'past_24h' | 'past_week' | 'past_month'
Example:past_week

Date filter based on Google-indexed results. One of past_24h, past_week, past_month (underscores, not hyphens). Note the JOB lanes use past_24_hours for the same concept; the two vocabularies are not interchangeable.

content_type'videos' | 'photos' | 'jobs' | 'live_videos' | 'documents' | 'collaborative_articles'

Narrow to one kind of post.

limitinteger

Return up to this many posts in one call, 1 to 200. Requires query. Cannot be combined with page or cursor: the result always starts at the top and pagination.next_cursor is null. pagination.has_more says whether more posts were available when the call stopped, and walk.stopped says why it stopped (limit, exhausted, deadline or sources_unavailable).

dry_run'1'

Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.

sincestring

Only rows published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Rows older than it are left off each page. This list is not in date order, so the walk does not stop at the date: keep following next_cursor, and each page costs what a page costs even when every row on it is filtered out. A row with no date is kept.

untilstring

Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept.

cursorstring

The pagination.next_cursor from the previous page, sent back unchanged. Omit it for the first page.

Response

Success.

successtrue required
platformstring required
endpointstring required
schema_version'2' required
unavailablestring[] required
credits_usedinteger required
credits_remaininginteger required
request_idstring required
cachedboolean required
idempotent_replayboolean required
charge_reasonstring required
free_callboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.