LinkedIn Posts Search API
Pricing
from $2.50 / 1,000 results
LinkedIn Posts Search API
Search and filter LinkedIn posts by keyword, country, hiring intent, links, engagement, and freshness. Built for job discovery, lead generation, market research, and content monitoring.
Pricing
from $2.50 / 1,000 results
Rating
5.0
(1)
Developer
Alex SandHive
Maintained by CommunityActor stats
3
Bookmarked
85
Total users
22
Monthly active users
5 days ago
Last modified
Categories
Share
LinkedIn Posts Parser
Apify Actor for searching a hosted LinkedIn posts dataset. The Actor calls the API, forwards the selected filters, and saves each returned post as one dataset item.
Use it to find hiring posts, monitor niche keywords with LinkedIn boolean search, export posts with links, discover fresh low-competition discussions, filter by parse time, or search inside parsed comments.
Core Use Cases
LinkedIn Boolean Search
Use AND / OR / NOT, quotes, and parentheses inside each query string (same idea as LinkedIn boolean search).
{"query": ["\"strategy and operations\" AND hiring AND (Chennai OR Kolkata OR Jaipur OR India)"],"sortBy": "newest","limit": 25}
Bulk OR Queries
Multiple query entries are OR'd. Each entry may itself use boolean syntax.
{"query": ["machine learning", "deep learning", "ai OR ml"],"sortBy": "newest"}
Hiring Post Discovery
Find posts that look like job openings or active hiring announcements.
{"query": ["software engineer"],"isHiring": "true","country": ["us", "gb", "de"],"sortBy": "newest"}
Fresh Low-Competition Posts
Find recent posts with few comments so you can engage early.
{"query": ["product strategy"],"maxComments": 5,"postedWithinHours": 24,"sortBy": "newest"}
Recently Parsed Posts
Filter by when the post HTML was ingested/parsed (parseTimestamp), not only when it was published.
{"query": ["hiring"],"parsedWithinHours": 24,"sortBy": "newest"}
Custom parse window:
{"parsedAfter": "2026-09-01T00:00:00Z","parsedBefore": "2026-09-02T00:00:00Z","sortBy": "newest","limit": 25}
Hashtag And Comment Monitoring
Search by hashtags and parsed comments.
{"hashtags": ["hiring", "ai"],"commentQuery": "interested","hasComments": "true","sortBy": "hot"}
High-Engagement Research
Find top-performing posts in a niche.
{"query": ["startup fundraising"],"minLikes": 50,"sortBy": "top"}
Dataset Export
Use limit and offset to export filtered pages into your own workflows.
{"query": ["product manager"],"limit": 100,"offset": 100}
Input Filters
Empty fields are ignored. The API combines provided filters with AND logic, except query list items and hashtags / country lists, which are OR'd within that field.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | string[] | - | Keyword / LinkedIn boolean search. A list ORs sub-queries; each string supports AND, OR, NOT, quotes, and parentheses. |
excludeWords | string | - | Exclude posts containing any of these indexed word tokens. |
country | string | string[] | - | ISO-2 LinkedIn country/subdomain code(s), OR'd. |
hashtags | string[] | - | Match posts containing any listed hashtag. #ai and ai both work. |
contentType | string | - | Stored LinkedIn content type, for example POST. |
commentQuery | string | - | Case-insensitive text search inside parsed comments. |
commentAuthor | string | - | Case-insensitive search by parsed comment author name. |
hasComments | "", "true", "false" | "" | Any, only posts with parsed comments, or only posts without parsed comments. |
isHiring | "", "true", "false" | "" | Any, hiring posts, or non-hiring posts. |
hasLink | "", "true", "false" | "" | Any, posts with external links, or posts without external links. |
minLikes / maxLikes | integer | - | Minimum or maximum likes. |
minComments / maxComments | integer | - | Minimum or maximum comment count. |
minLikesPerHour / maxLikesPerHour | number | - | Minimum or maximum likes/hour velocity. |
minCommentsPerHour / maxCommentsPerHour | number | - | Minimum or maximum comments/hour velocity. |
postedWithinHours | integer | - | Only posts from the last N hours, max 8760. API default is 216 h when query/excludeWords is set; pass 0 to disable. Ignored when postedAfter/postedBefore is set. |
timeRelevance | any, lastHour, last24h, lastWeek, lastMonth | - | Relative publication recency. Overridden by postedWithinHours / custom posted range. |
postedAfter / postedBefore | string (ISO 8601) | - | Custom publication timestamp range. Disables the default recency window. |
parsedWithinHours | integer | - | Only posts parsed in the last N hours. Also derives a publication window; skips implicit posted defaults. |
parsedAfter / parsedBefore | string (ISO 8601) | - | Custom parseTimestamp range. Disables parsedWithinHours. |
authorType | any, person, company | any | Filter by inferred author type. |
sortBy | newest, top, hot | newest | Sort by publication time, likes, or engagement velocity. |
limit | integer | 25 | Number of posts to return, from 1 to 100. |
offset | integer | 0 | Pagination offset, max 10000. |
Boolean filters are strings in the Actor input schema so users can keep the filter unset with "" / Any. The Actor converts "true" and "false" to booleans before sending the API request. Legacy inputs that pass query or country as a single string still work.
Output Dataset Format
Each dataset item is one post returned from the API.
| Field | Type | Description |
|---|---|---|
postKey | string | Unique LinkedIn post identifier. |
text | string | null | Full post text. |
hashtags | string[] | Hashtags parsed from the post text. |
contentType | string | Stored LinkedIn content type, usually POST. |
author | string | null | Author display name. |
authorUrl | string | null | LinkedIn profile, company, or showcase URL. |
authorType | person | company | Inferred from authorUrl. |
createdAt | string | null | ISO 8601 publication timestamp. |
geo | string | null | Stored geo code or label. |
likes | integer | null | Number of likes/reactions. |
commentsCount | integer | null | Number of comments. |
comments | object[] | Parsed comments, if available. |
hasLink | boolean | Whether the post contains an external link. |
isHiring | boolean | Whether the post appears to be a hiring/job post. |
postUrl | string | null | Direct LinkedIn post URL. |
likesPerHour | number | Likes divided by post age in hours. |
commentsPerHour | number | Comments divided by post age in hours. |
Parsed comment objects can contain:
| Field | Type | Description |
|---|---|---|
urn | string | null | LinkedIn comment URN. |
author | string | null | Comment author display name. |
authorUrl | string | null | LinkedIn URL of the comment author. |
text | string | null | Comment text. |
timeText | string | null | Original relative time text. |
datePublished | string | null | Published date if available. |
likes | integer | Number of likes on the comment. |
Example Input
{"query": ["\"strategy and operations\" AND hiring AND (Chennai OR Kolkata OR India)"],"excludeWords": "course webinar","country": ["us", "in"],"hashtags": ["hiring", "productmanagement"],"isHiring": "true","hasLink": "true","hasComments": "true","minLikes": 3,"maxComments": 10,"parsedWithinHours": 48,"authorType": "company","sortBy": "newest","limit": 50}
Example Output Item
{"postKey": "7180000000000000000","text": "We're hiring a Senior Product Manager to join our platform team...","hashtags": ["hiring", "productmanagement"],"contentType": "POST","author": "Acme Corp","authorUrl": "https://www.linkedin.com/company/acme-corp","authorType": "company","createdAt": "2026-03-30T14:22:00+00:00","geo": "us","likes": 47,"commentsCount": 6,"comments": [{"urn": "urn:li:comment:(activity:7180000000000000000,7190000000000000000)","author": "Jane Doe","authorUrl": "https://www.linkedin.com/in/jane-doe","text": "Interested, thanks for sharing.","timeText": "2h","datePublished": "2026-03-30T16:10:00Z","likes": 1}],"hasLink": true,"isHiring": true,"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180000000000000000","likesPerHour": 2.35,"commentsPerHour": 0.3}