LinkedIn Hashtag & Post Scraper | No Cookies avatar

LinkedIn Hashtag & Post Scraper | No Cookies

Pricing

$24.99/month + usage

Go to Apify Store
LinkedIn Hashtag & Post Scraper | No Cookies

LinkedIn Hashtag & Post Scraper | No Cookies

Find LinkedIn posts by hashtag or by keyword and export the full text, author, reactions, comments, images and posting date. Also works from a company page, a profile, or exact post links you already have. No login and no cookies needed, in any language LinkedIn publishes worldwide worldwide.

Pricing

$24.99/month + usage

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

2

Bookmarked

30

Total users

0

Monthly active users

6 days ago

Last modified

Share

๐Ÿ”ฅ LinkedIn Post Scraper - No Login Required

This monthly rental is being retired on 1 October 2026. Apify is removing monthly rentals across the platform. The pay-per-result version of this scraper is LinkedIn Post Search Scraper: same data, same inputs, and you are billed for what a run returns instead of a fixed monthly fee. Move across whenever you are ready, your runs and integrations work the same way.

Scrape LinkedIn posts without a login. Get the post text, the author, the posting date, the reactions and the images, ready for a spreadsheet. ๐ŸŒ๐Ÿ”

๐ŸŒŸ Features

  • ๐Ÿ”“ No Login: Nothing to connect, nothing to keep alive on your side
  • ๐Ÿ” Three ways in: Search by keywords, paste post links, or follow a profile or company page
  • ๐Ÿ“ Full post content by default: Post text, posting date and post type come back filled in on most rows, and the run tells you how many rows it delivered without them
  • ๐Ÿ“ˆ Engagement: Reactions and comment counts on the posts that publish them
  • ๐Ÿ‘ค Author details: Name, profile link and avatar
  • ๐ŸŒ Any language LinkedIn publishes

๐Ÿ’ก Use Cases

  • ๐Ÿ“Š Content Analysts: Analyze trending topics and viral posts
  • ๐Ÿ’ผ Marketers: Monitor brand mentions and competitor content
  • ๐ŸŽฏ Sales Teams: Find engaging content from prospects
  • ๐Ÿ”ฌ Researchers: Gather social media data for studies
  • ๐Ÿ“ฐ News Aggregators: Track industry announcements

๐Ÿš€ How to Use

Search by Keywords (Most Common)

{
"keywords": ["artificial intelligence", "machine learning"],
"dateFilter": "past-week",
"limit": 20,
"fetchDetails": true
}

Scrape Specific Posts

{
"postUrls": [
"https://www.linkedin.com/posts/openai_the-openai-podcast-activity-7468347768948936704-yw3W"
],
"fetchDetails": true
}

Get Posts from Profile/Company

{
"profileUrls": [
"https://www.linkedin.com/company/openai",
"https://www.linkedin.com/in/satyanadella"
],
"limit": 10,
"fetchDetails": true
}

โš™๏ธ Input Parameters

ParameterTypeDescriptionDefault
keywordsArraySearch terms (e.g., ["AI", "startup"])[]
postUrlsArrayDirect LinkedIn post URLs[]
profileUrlsArrayProfile or company URLs to get posts from[]
dateFilterEnumpast-week, past-month. Posts take a few days to become searchable, so the freshest results are about three days old.None
limitIntegerMax posts per keyword/profile (1-100)10
fetchDetailsBooleanCollect the full post content: text, posting date, post type, reaction and comment counts. Turn it off only if you want a fast list of links with the other columns left emptytrue
proxyObjectProxy configurationApify Residential

๐Ÿ“ค Output Format

{
"postId": "openai_the-openai-podcast-activity-7468347768948936704-yw3W",
"url": "https://www.linkedin.com/posts/openai_the-openai-podcast-activity-7468347768948936704-yw3W",
"text": "Last month AI found something mathematicians had missed for decades. Reasoning researchers join the podcast to discuss how...",
"type": "text",
"postedAt": "2026-06-04T17:07:43.292Z",
"authorName": "OpenAI",
"authorProfileUrl": "https://www.linkedin.com/company/openai",
"authorProfileId": "openai",
"authorImage": "https://media.licdn.com/...",
"numLikes": 221,
"numComments": 51,
"numShares": 0,
"images": ["https://media.licdn.com/..."],
"hashtags": [],
"isRepost": false,
"isSponsored": false,
"scrapedAt": "2024-01-15T10:30:00Z"
}

Output Field Reference

Availability below is with the default settings, that is with fetchDetails left on. A โš ๏ธ means the column is filled on most rows but not on every one. How many is measured in Row completeness, measured.

FieldTypeAlways PresentNotes
postIdstringโœ…Unique post identifier
urlstringโœ…Full LinkedIn post URL
textstringโš ๏ธPost content. Filled on most rows, see the completeness note below. Empty when fetchDetails is turned off
typestringโš ๏ธtext, image, or video. Comes with the text, so a row without the post text has no type either
authorNamestringโœ…Author display name
authorProfileUrlstringโœ…Author's LinkedIn profile URL
authorProfileIdstringโœ…Author's LinkedIn ID
authorImagestringโš ๏ธAuthor avatar URL (may be null)
authorHeadlinestringโŒRarely published by LinkedIn
postedAtstringโš ๏ธPosting date. Comes with the text, so a row without the post text has no date either
numLikesnumberโš ๏ธReaction count. A few posts do not publish it and come back at 0
numCommentsnumberโš ๏ธComment count. A few posts do not publish it and come back at 0
numSharesnumberโŒLinkedIn no longer publishes this, expect 0
imagesarrayโš ๏ธPresent when the post carries images, absent from the row otherwise. Measured: on 51 rows of 73
hashtagsarrayโš ๏ธPresent when the post carries hashtags, absent from the row otherwise. Measured: on 20 rows of 73
isRepostbooleanโœ…Whether post is a repost
isSponsoredbooleanโœ…Whether post is sponsored
scrapedAtstringโœ…When data was collected

๐Ÿ“Š What each setting gives you

DataDefault (fetchDetails: true)fetchDetails: false
Post URLโœ…โœ…
Full textโš ๏ธ most rowsโŒ empty
Post typeโš ๏ธ with the textโŒ empty
Posting dateโš ๏ธ with the textโŒ empty
Author nameโœ…โš ๏ธ from the link only
Author imageโš ๏ธ most rowsโŒ empty
Reactionsโš ๏ธ most rowsโŒ 0
Commentsโš ๏ธ when the post has anyโŒ 0
Hashtagsโš ๏ธ when the post has anyโŒ empty
Imagesโš ๏ธ when the post has anyโŒ empty

โš ๏ธ Turning fetchDetails off returns a list of post links and little else. It is faster, and that is the only reason to use it.

๐Ÿ“ Row completeness, measured

Some rows come back without the post text, and with them without the posting date and the post type. It happens when LinkedIn does not serve that particular post's page during the run, and the row is still delivered, with its link and its author, because a link you can open is worth more than a row that was dropped in silence.

How often depends on the mode. Measured over three runs and 73 delivered rows:

ModeRows carrying the post text
keywords20 of 20, two searches in one run
profileUrls31 of 33 over three company pages, 18 of 20 over two
postUrlsa post link is read in full or reported as unread, so there is no half row

Across those same 73 rows: 69 carried the post text, the posting date and the post type, 73 carried the author name and the author profile link, 69 carried the author avatar, 68 carried a reaction count above zero, and none carried the author headline.

You never have to count any of this yourself. Every run ends by saying how many rows it delivered and how many of those came back without the post text, on the run page in the Console. Those figures are counted on the rows in your dataset, so what the run announces is what you can open.

โšก Speed

SettingSpeedData
fetchDetails: true (default)~30-80 posts/minFull rows
fetchDetails: false~150 posts/minPost links only

โš ๏ธ What this scraper cannot do

  • Personal profiles: The profileUrls mode works best on company pages (OpenAI, Google, Microsoft). Personal profiles are barely indexed publicly, so search by keywords with the person's name instead.
  • Private posts: Posts limited to connections are not public and cannot be collected.
  • Share counts: LinkedIn stopped publishing them, so numShares is 0 on nearly every post.
  • Reaction and comment counts: A handful of posts publish neither, and those rows come back at 0. Measured over 73 rows: 68 came back with a reaction count above zero, 41 with a comment count above zero.
  • A complete row on every single line: some rows arrive without the post text, the posting date and the post type. Counts per mode are in Row completeness, measured, and every run states its own figure when it finishes.
  • Deleted posts: A link to a post that no longer exists returns nothing.

๐Ÿ’ก Tips for Best Results

  1. Leave fetchDetails on: it is what fills the text, the posting date and the counts
  2. Use dateFilter: keep only recent posts
  3. Start small: try limit: 5 before scaling up
  4. Be specific: precise keywords bring back posts you can actually use
  5. For personal profiles: search by keywords with the person's name instead of profileUrls

๐Ÿ”ง Troubleshooting

What you seeWhat it meansWhat to do
No posts foundThe profile has no public posts indexed, or the keyword is too narrowSearch by keywords with the person or company name, or widen the date filter
Every row has an empty text columnfetchDetails was turned offTurn it back on, it is on by default
A few rows have an empty text columnLinkedIn did not serve those posts during the run. The run says how many when it finishesOpen the post link on those rows, or start the run again to pick them up
Run stops before the limitThe public posts that keyword can reach have run out. The final message names both numbersAdd more keywords. Running the same keyword again returns the same posts
Invalid URL messageThe link is not a LinkedIn post or profile addressUse the full link: https://www.linkedin.com/posts/...

Understanding empty results

  • Profile mode returns 0 posts: that profile has no publicly indexed posts. Search by keywords with the person's name instead.
  • Keywords return 0 posts: the term is too specific. Try a broader one.
  • A column is empty on one row: LinkedIn does not publish that detail on that post.

When to use each mode

Keywords โ†’ Topic research, trending content
Post links โ†’ Specific posts you already have
Profile mode โ†’ Company pages (OpenAI, Google, etc.)

๐Ÿ“ฌ Support

The run itself tells you what it delivered: a finished run ends with the number of rows collected and how many of those came back without the post text, and a run that returns nothing says why on the run page. Those numbers are counted on the rows in your dataset, never on what the run tried to read.


Made by SilentFlow