LinkedIn Post Search API | No Login, No Cookies
Pricing
from $0.19 / 1,000 post scrapeds
LinkedIn Post Search API | No Login, No Cookies
Search public LinkedIn posts by keyword, name, phrase or #hashtag and get each post as JSON: full text, author and headline, date, reactions, comments, images and links. Filter by past day, week, month or a date range. Mention monitoring with no login, no cookie, no LinkedIn account.
Pricing
from $0.19 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
John
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
16 hours ago
Last modified
Categories
Share
LinkedIn Post Search API
LinkedIn post search by keyword, name, phrase or #hashtag: this API finds the public posts on LinkedIn that mention what you search for and returns each one as clean JSON, with the full text, the author and their headline, the date, reactions, comments, images and links. No LinkedIn account, no login and no session cookie.
Give it "Jackson Hole Symposium", your brand, a person's name, or "#semiconductors", pick a window such as the past day or past week, and it returns the public posts that mention it. Run it on a schedule and it becomes a LinkedIn mention monitor: one saved search per keyword, a fresh list of new posts every morning. It is not affiliated with, endorsed by, or connected to LinkedIn; it reads only what LinkedIn shows to any signed-out visitor.
๐งฉ Part of the Alpha OSINT LinkedIn suite: no login, no cookies
Nine Actors that read only what LinkedIn shows to a signed-out visitor. None of them asks for your
account, your password or an li_at session cookie, so none of them can get your LinkedIn account
restricted.
| You want to | Use |
|---|---|
| Find posts that mention a keyword, name or hashtag | LinkedIn Post Search API (this Actor) |
| Read everything one person or company has posted | LinkedIn Posts API |
| Turn the authors you find into full structured profiles | LinkedIn Profile API |
| Enrich the companies behind the posts | LinkedIn Company API |
| Find people by name, job title, company or school | LinkedIn People Search API |
| List the people who work at a company | LinkedIn Company Employees API |
| See what a company is hiring for | LinkedIn Jobs API |
A worked map of these chains is at alphaosint.com/linkedin.
What the LinkedIn Post Search API returns
- One row per public post that matches a keyword, with the post text, title line, date and URL.
- The author's name, profile or company URL, type (person or organization), headline and follower count.
- Engagement: reactions, comment count, and up to 10 of the comments a signed-out visitor can see.
- Media and links: images, videos, embedded links, @-tagged people and companies, hashtags, documents, and the original post when the match is a share.
- Search context: which keyword found the post, the result page and rank, and whether the post came from the shared cache.
What makes it different: no login or cookie, a date window that is checked against each post's own timestamp, a shared cache that makes repeat searches cheaper, and a per-page search fee instead of a per-run start fee.
Use cases
- Monitor LinkedIn mentions of your brand, product or executives every morning with a past-day search on a schedule.
- LinkedIn social listening for a topic or industry: follow what people say about an event, a regulation or a competitor, with reactions and comments for context.
- LinkedIn hashtag analytics: pull every recent post under a hashtag and rank them by reactions to see which posts and authors lead the conversation.
- Journalism and PR research: find the public posts that discuss a story or a public figure in a date range, with authors and links ready to cite.
- Find the most liked LinkedIn posts on a topic this week, for content research or competitor benchmarking.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | array of strings | yes | Names, phrases, companies or #hashtags to find, one per line, as plain words. Each is searched as an exact phrase. Up to 20 per run. Search operators and quote marks are refused. | |
postedWithin | string | no | any | Only posts from the past day, week, month or year. Ignored when a start or end date is set. |
startDate | string (YYYY-MM-DD) | no | Only posts published on or after this day (UTC). Overrides postedWithin. | |
endDate | string (YYYY-MM-DD) | no | Only posts published on or before this day (UTC). | |
maxPostsPerKeyword | integer | no | 50 | Stop after delivering this many posts for one keyword (1 to 1,000). Caps cost. |
includeArticles | boolean | no | false | Also search long-form LinkedIn articles (linkedin.com/pulse). Each keyword then runs two searches. |
A daily mention monitor:
{ "keywords": ["Your Company Name", "Your CEO's Name"], "postedWithin": "day", "maxPostsPerKeyword": 100 }
A one-off pull for an event:
{ "keywords": ["Jackson Hole Symposium"], "startDate": "2026-08-18", "endDate": "2026-08-25" }
Example output
One row per post. A post found by two of your keywords is delivered once, under the first. Error rows
(resultType: "error") explain a keyword or post that could not be read and are never charged.
| Field | Description |
|---|---|
postUrl, postId | The public post link and LinkedIn's post id |
datePosted | When the post was published (UTC) |
text, title | The full post text and its first line |
authorName, authorUrl, authorType | Who posted it: a person or an organization |
authorHeadline, authorFollowers | The author's headline and follower count, when shown |
numLikes, numComments | Reactions and comments |
topComments | Up to 10 of the comments LinkedIn shows a signed-out visitor |
mediaType | text, image, video, document or article |
images, videos, embeddedLinks | Media and links in the post |
taggedPeople, taggedCompanies | People and companies mentioned with an @ tag |
hashtags | Hashtags used in the post |
resharedPost | The original post, when this one shares another |
matchedKeyword | Which of your keywords found it |
searchPage, searchRank | Where it ranked in the search results |
fromCache, fetchedAt | Whether the post came from the shared cache, and when it was read |
A real row from a run, shortened:
{"resultType": "post","postId": "7363908644226125825","postUrl": "https://www.linkedin.com/posts/andrew-krei-cfa_the-feds-jackson-hole-symposium-is-always-activity-7363908644226125825-w3c1","postType": "repost","mediaType": "image","datePosted": "2025-08-20T12:23:55.561Z","text": "The Fed's Jackson Hole symposium is always a big event for markets, but this week's gathering will be especially important as investors have been pressing bets on rate cuts resuming in September...","authorName": "Andrew Krei, CFA","authorUrl": "https://www.linkedin.com/in/andrew-krei-cfa","authorFollowers": 2758,"authorType": "Person","numLikes": 58,"numComments": 1,"taggedCompanies": [{ "name": "Bloomberg News", "link": "https://www.linkedin.com/company/bloomberg-news" }],"summary": "Post by Andrew Krei, CFA, 58 reactions, 1 comments, posted 2025-08-20","matchedKeyword": "Jackson Hole Symposium","searchRank": 1,"searchPage": 1,"fromCache": false,"fetchedAt": "2026-10-10T14:03:22Z"}
What it can and cannot see
This API finds public posts through search-engine indexing of LinkedIn, then reads each post's own public page. Three consequences are worth knowing before you rely on it:
- Coverage is the public, indexed part of LinkedIn. Posts from members who keep their activity private, and posts no search engine has indexed yet, are not found. LinkedIn's own in-app search needs a login, so no cookie-free tool can promise every post.
- New posts appear within hours, not seconds. In testing, posts showed up in a past-day search three to four hours after they were published.
- A signed-out visitor sees up to 10 comments per post, and no repost or share counts.
For a mention monitor this is usually exactly what you want: the posts that are public and spreading, delivered as data, with no account at risk.
Pricing: pay per search page and per post
There is no subscription and no start fee. A run is billed for two things only:
| Event | When you are charged |
|---|---|
| Search page | Once per page of search results fetched fresh for one of your keywords. A page holds about 8 to 10 posts. Pages already in the shared cache are free. |
| Post scraped | Once per post delivered to your dataset. Never for an error row, a post outside your date window, or a post already delivered in this run. |
A one-day monitor on a quiet keyword usually costs one search page and a handful of posts. Current prices are on the Store page. Free Apify plans include a monthly allowance for this Actor.
How to get started
- Open the Actor: LinkedIn Post Search API on Apify Store
- Enter one or more keywords, names or #hashtags.
- Pick a window: past day for a monitor, or a date range for research.
- Set
maxPostsPerKeywordto cap how many posts each keyword returns. - Run it, then download the dataset as JSON, CSV or Excel.
Prefer code? The example GitHub repo is a Python quick-start with uv, three recipe helpers (hashtag tracking, daily brand mentions, most liked posts) and MCP install walkthroughs for Claude, Cursor and ChatGPT.
๐ Use this API from Claude (MCP)
Add this API as a tool in Claude Code (free trial), Claude Cowork (free trial), or any other MCP client through the hosted Apify MCP server:
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-post-search-api
Then ask in plain language, for example "find LinkedIn posts from the past week that mention our product and tell me which ones have the most engagement", and the agent runs the search and reads the results itself.
Apify's MCP integration docs: https://docs.apify.com/platform/integrations/mcp
๐ธ Pay per run with crypto (x402)
The LinkedIn Post Search API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.
๐ Integrations: monitor LinkedIn mentions on a schedule
A single run answers one question: who mentioned this today? The value comes from asking it every day. Saved tasks and schedules turn this API into a LinkedIn social listening feed that lands in the tools you already use, through Apify platform integrations.
Tasks and schedules: one keyword, one task, one schedule
Create a saved task per thing you watch, for
example "Mentions: Acme" with { "keywords": ["Acme"], "postedWithin": "day" }. Then attach a
schedule from the Actor's Actions menu: 0 7 * * * runs
every morning at 7, 0 */6 * * * every six hours, 0 9 * * 1 on Mondays. One schedule can trigger
many tasks, so ten keywords are ten tasks on one timer. Each run's dataset is that day's mention list,
and posts seen before come back from the shared cache at no search cost.
n8n, Make and Zapier
In n8n, the Apify n8n integration gives you a
four-node workflow: Schedule Trigger, then the Apify Actor node running this API, then a Filter on
numLikes or authorType, then Slack or email. Make
and Zapier follow the same pattern: run the
task, then act on each new row.
Supabase and storage: keep a history of mentions
No-code: an n8n Actor node followed by a Supabase node inserts each row into a linkedin_mentions
table. In Python, run the Actor and bulk-insert the flat rows:
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")db = create_client("https://YOUR_PROJECT.supabase.co", "YOUR_SERVICE_KEY")run = apify.actor("johnvc/linkedin-post-search-api").call(run_input={"keywords": ["Acme", "#semiconductors"], "postedWithin": "day", "maxPostsPerKeyword": 100,})rows = [{k: item.get(k) for k in ("postId", "postUrl", "datePosted", "text", "authorName", "authorUrl","authorType", "numLikes", "numComments", "matchedKeyword")}for item in apify.dataset(run["defaultDatasetId"]).iterate_items()if item.get("resultType") == "post"]db.table("linkedin_mentions").upsert(rows, on_conflict="postId").execute()
The postId key makes the upsert idempotent, so a daily run accumulates a clean history of every
public post about your keywords.
MCP and AI agents
Through the Apify MCP server, Claude, Cursor and other agents call this API
as a tool. A useful question: "Which LinkedIn posts about #semiconductors this week got the most
reactions, and who wrote them?" The agent runs the search, sorts by numLikes and answers with the
authors and links. See the MCP section above for the URL.
Webhooks
For anything custom, an Apify webhook on
ACTOR.RUN.SUCCEEDED posts the run's dataset link to your endpoint as soon as a scheduled run finishes.
๐ Related Tools
- LinkedIn Posts API: every recent post from a person or company you already know, when you want an author's feed rather than a keyword search.
- LinkedIn Profile API: full public profiles for the authors this search finds.
- LinkedIn Company API: firmographics for the companies that post.
- LinkedIn People Search API: find people by name, title, company or school, with no login.
- Google News API: news coverage of the same keywords, for a fuller media picture next to the LinkedIn conversation.
For contrast, LinkedIn Posts Search Scraper by powerai covers similar ground but carries a per-run start fee on top of its per-result price and has a low user rating on the Store. This API charges per search page and per post only, is maintained weekly, and returns the author, engagement and tagged entities for every post.
โ FAQ
Will this put my LinkedIn or LinkedIn Recruiter account at risk?
No. It reads public LinkedIn pages only, the ones anyone can open while signed out. It never logs in and never asks for your cookies: there is no input for an account, a password or an li_at session cookie. Nothing it does is tied to your LinkedIn account, your LinkedIn Recruiter seat or your Sales Navigator license. The requests run on Apify's servers, not in your browser, so nothing connects them to you, and you can keep working in Recruiter while a run is going.
How do I search LinkedIn posts by keyword?
Enter the keyword, name or phrase in keywords, as plain words, and run the Actor. Each keyword is
matched as an exact phrase across public posts on LinkedIn, and every
matching post comes back as a row with its text, author, date and engagement. Add postedWithin or a
date range to narrow it, and maxPostsPerKeyword to cap the cost.
Can I search LinkedIn posts without an account or login?
Yes, for posts that are public. LinkedIn's own content search needs a login, so this API finds public
posts through search-engine indexing and then reads each post's public page the way a signed-out
visitor sees it. It never asks for your credentials or an li_at cookie, and nothing is attributed to
your account.
Can I schedule this LinkedIn post search to run every day?
Yes, and that is the way most people use it. Save your input as a
task, then attach a
schedule from the Actor's Actions menu: 0 7 * * * for
every morning at 7, 0 */6 * * * for every six hours, 0 9 * * 1 for Mondays. One schedule can
trigger many tasks at once, so a keyword list becomes a set of daily monitors. Use postedWithin: "day"
so each run returns only that day's posts. The Integrations section above has the full recipe,
including where to send the rows.
Should I use an API or a Web Scraper for LinkedIn posts?
LinkedIn has no public API for searching posts, and its partner APIs are gated and quota bound. A no-code web scraper gives you the page data but leaves you to build the search, the paging and the date filter. This Actor combines the two: a clean API you call with keywords and a window, backed by web scraping of the public post pages, with no quotas and no login.
Can I integrate this LinkedIn Scraper with other apps?
Yes. Through Apify integrations the results flow to
Make,
Zapier,
Slack, n8n, Google Sheets and Airtable, and an
Apify webhook on ACTOR.RUN.SUCCEEDED
triggers anything custom. The Integrations section above has copy-paste recipes.
Can I use the LinkedIn Post Search API from code?
Yes. The Apify API runs the Actor, schedules it and fetches datasets, and the apify-client package
exists for Python and Node.js. The Actor's own API tab shows the exact calls:
LinkedIn Post Search API tab.
Can I use this Actor through an MCP server?
Yes. Point any MCP client at https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-post-search-api
and it becomes a tool your agent can call, in Claude Code
(free trial), Cursor and others. The Apify MCP docs
cover setup.
Is there a social listening API for LinkedIn?
This is one: keyword in, public posts with authors and engagement out, on a schedule if you want it. Social listening tools usually cover LinkedIn thinly because LinkedIn's content search needs a login; this API reads the public side of LinkedIn without one, so it fills that gap for brand mentions, competitor tracking and topic research.
How do I track a hashtag on LinkedIn?
Enter the hashtag with the #, for example #semiconductors, and pick a window. Every post under the
hashtag comes back with numLikes, numComments, hashtags and its author, so LinkedIn hashtag
analytics is a sort away: rank by reactions to see which posts and authors lead the tag this week.
Does it find every post that mentions my keyword?
It finds the public posts that search engines have indexed, which for most keywords is the large majority of the visible conversation. Posts from private accounts and posts indexed in the last few hours may be missing. For a daily monitor, yesterday's posts are usually complete by the next morning.
Can I search LinkedIn posts by date?
Yes. postedWithin covers the past day, week, month or year, and startDate with endDate covers
any range. Every post's own timestamp is checked against the window before it is delivered, so you are
not billed for posts outside it.
Does it return comments and reactions?
It returns the reaction and comment counts for every post, and up to 10 comments per post, which is what LinkedIn shows a signed-out visitor. It does not list who reacted.
Why did a keyword stop before my maximum?
The search ran out of matching public posts, the date window was exhausted, or the results started
repeating. Each keyword's reason is in the RUN_SUMMARY record and the run log.
Are results ever served from a cache?
Yes. Posts and search result pages read in the last 7 days are reused, so a repeat of the same search
costs less and finishes faster. Past-day and past-week searches refresh more often (every 6 hours and
every day) so a monitor never misses new posts. A cached post has fromCache: true and is billed like
a fresh one; a cached search page is not billed at all.
What happens if a search page cannot be fetched?
Busy search pages are retried automatically. A page that still cannot be fetched produces an error row explaining which keyword and page were affected, and it is never charged.
How else can I collect LinkedIn data without a login?
Use the LinkedIn Posts API for a known author's feed, the LinkedIn Profile API to turn the authors you find into full profiles, and the LinkedIn People Search API to find people by name, title or company. All of them read only public pages, with no cookies.
๐ About Alpha OSINT
This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.
Last Updated: 2026.10.20