LinkedIn Post Search Scraper
Pricing
from $0.47 / 1,000 posts
LinkedIn Post Search Scraper
LinkedIn post search scraper API: search posts by keyword and get one row per public post with its text, author, date, likes, comment count, pictures, video links and hashtags. Filter by date, author, mention or kind of post, and add each post's comments. $0.47 per 1,000 posts.
Pricing
from $0.47 / 1,000 posts
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
1
Bookmarked
193
Total users
61
Monthly active users
2 hours ago
Last modified
Categories
Features
Share
LinkedIn post search scraper: type keywords or a hashtag and get one row per public LinkedIn post that matches, with the text, author, date, likes, comment count, pictures and video links, plus the post's comments if you want them.
You give it what the posts should be about, one search per line. You can narrow it to a date window, to certain authors, to posts that mention a person or company, or to posts with pictures or a video.
It finds public posts only, as LinkedIn shows them to someone who is not signed in. A search that finds nothing comes back as a free row saying so, and you pay only for posts that come back.
| Input | Keywords or hashtags, one search per line; optional date window, authors, mentions, kind of post |
| Output | One row per post: text, title, author with follower count, date, likes, comment count, pictures, video link and length, hashtags, links; comments on request |
| Ceiling | 20 searches per run, 500 posts per search |
| Account needed | None from you |
| Price | $0.47 per 1,000 posts, the same rate on every plan. The free plan's $5 a month covers about 10,600 |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/linkedin-post-search-scraper |
| Set one field | searchQueries, labelled "Search keywords" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/linkedin-post-search-scraper |
| How often | Monthly with Posted within set to the past month, to follow a topic |
🔍 What LinkedIn Post Search Scraper does
It searches the public web for LinkedIn posts about your keywords, then opens each post's own public page and writes down what is on it: the full text, the author and how many people follow them, when it was published, how many likes and comments it has, and its pictures, video or linked article.
Every post is checked before it is kept. It has to contain at least one of your words, fall inside your date window, come from one of your authors when you name some, and mention every name you list under Only posts that mention. A post that fails a check is dropped and not charged.
With Add comments on, each row also carries the comments the post's public page shows, up to 10, with the commenter's name, text, date and likes.
📋 What data you get from each LinkedIn post
| What you get | Field |
|---|---|
| The post | postUrl, activityId, text, title |
| When | publishedAt |
| Reactions | likes, commentsCount |
| Media and links | mediaType, imageUrls, videoUrl, videoDuration, articleTitle, articleSubtitle, links, hashtags |
| Who wrote it | authorName, authorUrl, authorFollowers, authorImageUrl |
| Comments (paid add-on) | comments (author, authorUrl, text, publishedAt, likes) |
| Which search found it | searchQuery, authorFilter, scrapedAt |
▶️ How to scrape LinkedIn posts by keyword
- Open LinkedIn Post Search Scraper and click Try for free.
- Type your searches into Search keywords, one per line, such as
generative aior#remotework. - Set Most posts per search and, if you like, Posted within, Only posts by these authors or Kind of post.
- Turn on Add comments if you need them, then click Start.
- Download the rows as JSON, CSV or Excel, or read them from the API.
Leave everything empty and you get one free sample row showing the shape of the output, with nothing searched.
💰 How much does it cost to scrape LinkedIn posts?
$0.47 per 1,000 posts, which is $0.00047 each, the same rate on every plan. On the free plan, the $5 Apify gives you each month covers about 10,600 posts.
Comments cost $0.56 per 1,000 comments, charged for each comment returned.
Free rows are never charged: a search that found nothing, an author entry that is not a LinkedIn link, the sample row, and the row that says the run stopped at your time or cost limit. A post found by two of your searches is returned once.
📥 What you give it
{"searchQueries": ["generative ai", "#remotework"],"maxPosts": 25,"postedLimit": "month","sortBy": "date","contentType": "all","includeComments": false}
| Field | Default | What it is |
|---|---|---|
searchQueries | none, the form starts with one example | Up to 20 searches. A post must contain at least one of the words of its search. |
maxPosts | 25 | 1 to 500 posts per search. |
postedLimit | any | any, month, 3months, 6months or year. |
postedAfter | none | A day as YYYY-MM-DD. When set, it replaces postedLimit. Any other format is refused before anything runs. |
sortBy | relevance | relevance or date (newest first). |
authorUrls | none | Up to 20 profile or company links, or profile names. With no keywords, you get these authors' posts. |
mentioning | none | Up to 10 names or LinkedIn links; every one must appear in the post. |
contentType | all | all, images, videos or text. |
includeComments | false | Adds up to 10 comments per post. Paid per comment. |
📤 What you get back
A real row from a run on 7 November 2026, searching alzheimer in one author's posts with comments on. The text and comments are cut short:
{"ok": true,"recordType": "post","searchQuery": "alzheimer","authorFilter": "williamhgates","postUrl": "https://www.linkedin.com/posts/williamhgates_my-family-and-i-will-always-be-grateful-to-activity-7135991146253602817-WQJ9","activityId": "7135991146253602817","authorName": "Bill Gates","authorUrl": "https://www.linkedin.com/in/williamhgates","authorFollowers": 40797981,"text": "My family and I will always be grateful to the professional caregivers who helped my dad in the 13 years he lived with Alzheimer's disease…","publishedAt": "2023-11-30T14:01:09.556Z","likes": 2098,"commentsCount": 142,"mediaType": "video","videoDuration": "PT5M8S","hashtags": [],"comments": [{"author": null,"text": "To keep a natural native way of the elderly love and habitual practices…","publishedAt": "2023-11-30T15:06:06.768Z","likes": 5}],"scrapedAt": "2026-11-07T17:45:24.445Z"}
| Field | Read it like this |
|---|---|
publishedAt | When the post was published, read from the post itself |
mediaType | image, video or text |
videoDuration | Length as PT5M8S, five minutes eight seconds |
comments[].author | Empty when the post page shows the comment without a name |
| Picture and video links | LinkedIn's own links. They stop working after a while, so save the file if you need it |
🧾 Reading the output
Every real row has ok: true and recordType: "post". Rows with ok: false are free notes with errorCode and error saying what happened:
errorCode | What happened |
|---|---|
NO_RESULTS | No public post matched that search and its filters |
BAD_INPUT | An author entry is not a LinkedIn link or name, or the date is not YYYY-MM-DD |
TIME_LIMIT | The run reached its time limit; notRun lists the searches it did not get to |
COST_LIMIT | The run reached the maximum cost you set; notRun lists the rest |
An empty run returns one sample row with _sample: true. To keep only real posts, filter on ok being true. The Comments view lists one comment per line and the Notes view lists the free rows.
💡 What people use it for
- Marketing teams following what people post about their product category, their brand or a campaign hashtag.
- Sales teams finding people who post about a problem they solve, to start a conversation about something real.
- Researchers and journalists collecting public posts on a topic over a date range.
- Recruiters spotting posts about hiring in a field.
A simple chain: run a monthly search with Posted within set to month, then send rows with more than 50 likes to a sheet or a Slack channel.
🚧 What it does not do
- No list of who liked a post.
- No posts from private groups or only visible to someone's connections.
- No e-mail addresses or phone numbers.
- Nothing from inside a LinkedIn account: no messages, nothing only signed-in members see.
- It is not an official LinkedIn tool. Dami's Studio is independent and is not affiliated with or endorsed by LinkedIn, or by any other company named on this page.
🧭 Which LinkedIn scraper do you need?
| If you want | Use |
|---|---|
| Posts that match keywords | This one |
| The posts a company page publishes | LinkedIn Company Posts Scraper |
| A company's size, industry and headquarters | LinkedIn Companies Scraper |
| Job listings | LinkedIn Jobs Scraper |
| The ads a company runs | LinkedIn Ads Scraper |
| The comments on posts you already have | LinkedIn Comments Scraper |
| A person's posts and reposts | LinkedIn Post Scraper |
❓ Questions people ask
Do I need a LinkedIn account to search posts?
No. You don't need a LinkedIn account, a cookie or a login. The actor finds and reads public posts, the ones LinkedIn shows to anyone who opens the link.
Why did I get fewer posts than I asked for?
The run returns the public posts it can find that pass every one of your filters, up to your number. Narrow keywords, a short date window or a list of mentions give fewer rows. You pay only for the rows you get.
Why do the like and comment counts differ from what I see on LinkedIn?
They are counted at the moment the run reads the post, and they keep moving. Open the post in a private browser window to compare.
Can I call it from code or an AI assistant?
Yes. The API tab has ready-made calls, and AI assistants can use it through Apify's MCP server at https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/linkedin-post-search-scraper. In Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("dami_studio/linkedin-post-search-scraper").call(run_input={"searchQueries": ["generative ai"], "maxPosts": 10, "postedLimit": "month"},max_total_charge_usd=0.05,)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("ok") is False:continueprint(row["publishedAt"], row["authorName"], row["likes"])
Is scraping LinkedIn legal?
The actor reads public posts the way a signed-out visitor sees them, with no account and nothing private. Posts and comments carry personal data, so GDPR and similar laws apply to what you keep and how you use it: keep only what you need, and mind the rules on contacting people. LinkedIn's own terms still apply to what you do with the data. Apify has a good write-up on the legality of web scraping. We are not lawyers, and this is not legal advice.
🆘 If something breaks
Open an issue on the actor's Issues tab. Include the run ID and the search that went wrong, and we will look at it.