LinkedIn Profile Posts Scraper - Bulk [NO COOKIES] ✅
Pricing
from $4.00 / 1,000 results
LinkedIn Profile Posts Scraper - Bulk [NO COOKIES] ✅
Scrape every post from a list of LinkedIn profiles in one bulk run. One flat row per post: text, hashtags, engagement, reaction breakdowns, media, and the original post behind every repost. Filter by exact dates. No login, no cookies. Built for competitor analysis, social listening and ABM.
Pricing
from $4.00 / 1,000 results
Rating
5.0
(4)
Developer
Unseen User
Maintained by CommunityActor stats
8
Bookmarked
292
Total users
51
Monthly active users
5 days ago
Last modified
Categories
Share
LinkedIn Profile Posts Scraper
Track 100+ thought leaders, executives, or competitors' LinkedIn posts daily. Surface trending themes in your niche before everyone else — no LinkedIn account required.
The most complete LinkedIn profile posts scraper and posts API on Apify. Bulk scrape LinkedIn posts from any public profile with full engagement breakdowns, media extraction, and author metadata. Built for content strategy teams, ABM researchers, and influencer marketing agencies who need thought leader tracking at scale.
Free plan limit
Free Apify users get up to 5 results per run, and a free run also makes at most 25 data requests, so a long profile list is sampled rather than scraped in full. Paying users are not affected: no result cap, no request cap, and every profile you provide is scraped. Rows that report a problem (an unreachable profile, a bad username) do not count against the 5 results.
This limit was set by the Actor developer, not by Apify. To remove it and receive unlimited results, upgrade to any paid Apify plan: https://apify.com/pricing
When a free plan run hits the cap, the Actor finishes successfully (status SUCCEEDED) and the run's status message explains what happened. No error is raised, so the first 5 results are fully usable as normal. Every one of them is a complete row with all 50 columns, so a free run is enough to see the exact output shape before you pay.
How it works
Profile URLs → Batch Posts Scraper → Structured post data → Your workflow↓10 concurrent workersAuto-paginationRepost filtering
Feed in any number of LinkedIn profile usernames, and the scraper returns every post with engagement metrics, media attachments, and author details — one flat row per post, ready for CSV, Google Sheets, Notion, or Airtable.
Use cases
| Use case | What you get |
|---|---|
| ABM signal generation | Detect job changes, product launches, and fundraising announcements in target account posts — feed into your sales triggers pipeline |
| Content strategy | Analyze top-performing posts in your niche. See what formats (articles, images, carousels), topics, and posting cadences drive the most engagement |
| Influencer marketing | Audit actual posting frequency and engagement rates before signing creator partnerships. Compare influencer performance side by side |
| Competitive content benchmarking | Track what your competitors' executives post about. Spot trending themes before they go mainstream |
| Thought leader tracking | Build a daily "content radar" — schedule runs to pipe new posts from 100+ thought leaders into Notion or Airtable automatically |
| Social listening | Monitor what your market publishes on LinkedIn without a social listening subscription. Feed post text and engagement into your own dashboards |
| Academic research | Collect LinkedIn author posts at scale for NLP research, professional communication analysis, or trend studies |
Key features
- No LinkedIn account needed — No cookies, no credentials, no risk to your account
- Bulk LinkedIn posts scraper — No profile limit per run, 10 concurrent workers
- All posts or a custom limit — Scrape every post from a profile or set a specific number
- Repost filtering — Include or exclude reposts with a single toggle
- Engagement breakdowns — Reactions by type (likes, appreciations, empathy, interests, praises), comments, and reposts
- Media extraction — Articles, images, native video, and documents with URLs and thumbnails
- Time filtering — Rolling windows from 24 hours to 3 years, or an exact date range with
fromDateanduntilDate - Flat output — One row per post, ready for spreadsheets and databases
How this compares
Most LinkedIn post scrapers return deeply nested JSON: the author in one object, the timestamps in another, the reaction breakdown in an array inside a third. That is fine if you are writing code to walk it, and painful if you wanted a spreadsheet.
This Actor returns one flat row per post, every field a plain value. Open the CSV and it is already a table. No flattening step, no jq, no nested arrays to expand.
Three other things worth knowing before you pick a tool:
- A real date range. Set
fromDateanduntilDateto bracket exact calendar dates. Rolling windows like "last month" or "last year" cannot answer "give me everything from 2025". - Failures explain themselves. A profile that cannot be scraped returns a row telling you the error, what it means, and how to fix it. The rest of the batch keeps running.
- No cookies, no login, no account. Nothing to paste and nothing to refresh. Across 176,512 runs the failure rate on this developer's Actors is 0.20%.
Input
| Field | Type | Description | Default |
|---|---|---|---|
profileUrls | string[] | Required. LinkedIn profile usernames or full URLs. Accepts satyanadella, /in/satyanadella, or https://www.linkedin.com/in/satyanadella. | — |
totalPostsPerProfile | integer | Posts to scrape per profile. Set to 0 or leave empty to scrape all available posts. | 0 (all) |
postedLimit | string | Time filter: 24h, week, month, 3months, 6months, year, 3years, all. | No limit |
fromDate | string | Only return posts published on or after this date, format YYYY-MM-DD. Overrides postedLimit when set. | — |
untilDate | string | Only return posts published on or before this date, format YYYY-MM-DD. Overrides postedLimit when set. | — |
includeReposts | boolean | Include reposted content in results. Set to false for original posts only. | true |
removeEmptyFields | boolean | Strip null and empty values from output. | false |
Scraping an exact date range
fromDate and untilDate take a calendar range rather than a rolling window. Set either one on its own, or both together to bracket a period:
{"profileUrls": ["satyanadella"],"fromDate": "2025-01-01","untilDate": "2025-12-31"}
That returns only posts published during 2025. Both fields are optional. When neither is set the Actor falls back to postedLimit, so existing runs are unaffected.
Example input
{"profileUrls": ["satyanadella","williamhgates","https://www.linkedin.com/in/jeffweiner08"],"totalPostsPerProfile": 50,"postedLimit": "month","includeReposts": true,"removeEmptyFields": false}
Output
Each dataset row is a single post with profile info included — ready for CSV, Google Sheets, or any tabular format.
Example output
{"profileUsername": "satyanadella","profile_url": "https://www.linkedin.com/in/satyanadella","posted_at": "2 days ago","posted_date": "2025-03-15T14:32:00.000Z","post_is_repost": false,"post_text": "Thrilled to see the progress our teams are making with AI across every layer of the tech stack...","post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7297410395815849984","author_first_name": "Satya","author_last_name": "Nadella","author_headline": "Chairman and CEO at Microsoft","author_profile_url": "https://www.linkedin.com/in/satyanadella","author_profile_picture": "https://media.licdn.com/dms/image/v2/C5603AQHv...","media_type": "article","media_url": "https://blogs.microsoft.com/blog/2025/ai-update","media_thumbnail_url": "https://media.licdn.com/dms/image/v2/article-cover...","media_thumbnail_width": 800,"media_thumbnail_height": 450,"media_thumbnail_expires_at": null,"stats_total_reactions": 18743,"stats_likes": 14200,"stats_appreciations": 1850,"stats_empathy": 1120,"stats_interests": 873,"stats_praises": 700,"stats_comments": 492,"stats_reposts": 217}
Output fields
| Field | Type | Description |
|---|---|---|
profileUsername | string | The LinkedIn username that was scraped |
profile_url | string | Full LinkedIn profile URL |
posted_at | string | Relative time since posted (e.g. "2 days ago") |
posted_date | string | Absolute date/time (ISO 8601) |
post_is_repost | boolean | Whether this is a repost |
post_text | string | Full text content of the post |
post_url | string | Direct permalink to the post |
author_first_name | string | Author's first name |
author_last_name | string | Author's last name |
author_headline | string | Author's LinkedIn headline |
author_profile_url | string | Author's LinkedIn profile URL |
author_profile_picture | string | Author's profile photo URL |
media_type | string/null | article, image, video, document, or null |
media_url | string/null | URL of the media content |
media_thumbnail_url | string/null | Thumbnail image URL |
media_thumbnail_width | integer/null | Thumbnail width in pixels |
media_thumbnail_height | integer/null | Thumbnail height in pixels |
media_thumbnail_expires_at | string/null | Thumbnail URL expiration date |
stats_total_reactions | integer | Total reactions across all types |
stats_likes | integer | Like reactions |
stats_appreciations | integer | Appreciation reactions |
stats_empathy | integer | Empathy (Love) reactions |
stats_interests | integer | Interest (Curious) reactions |
stats_praises | integer | Praise (Celebrate) reactions |
stats_comments | integer | Comments |
stats_reposts | integer | Reposts/shares |
post_id | string/null | Stable LinkedIn post identifier, for deduplication across runs |
post_share_url | string/null | Canonical shareable link to the post |
author_website | string/null | Website or newsletter listed on the author's profile |
author_website_label | string/null | The label the author gave that link, e.g. "View my newsletter" |
media_image_count | integer/null | Number of images on the post |
media_image_urls | string/null | Comma-separated URLs of every image, in order |
stats_entertainment | integer | Entertainment (Funny) reactions |
repost_author_name | string/null | Author of the original post. Populated only on reposts |
repost_author_headline | string/null | Headline of the original author |
repost_author_profile_url | string/null | Profile URL of the original author |
repost_text | string/null | Full text of the original post that was shared |
repost_url | string/null | Permalink to the original post |
repost_posted_date | string/null | Publication date of the original post, ISO 8601 |
post_hashtags | string/null | Comma-separated hashtags used in the post, in order |
post_hashtag_count | integer | Number of distinct hashtags |
post_external_links | string/null | Comma-separated outbound URLs linked from the post. LinkedIn profile and company links appear as mentions instead |
post_mentions | string/null | Names of the @mentions that resolve to a name. See the note below |
post_mention_urls | string/null | LinkedIn profile or company URL for every mention |
post_mention_count | integer | Total number of @mentions in the post |
media_document_page_count | integer/null | Number of pages in an attached document or carousel |
media_document_title | string/null | Title of the attached document |
post_type | string | post, quote_post, or repost |
reshared_by_name | string/null | Name of the person who reshared the post. Null on original content |
reshared_by_profile_url | string/null | LinkedIn profile URL of the person who reshared the post |
Carousels and multi-image posts
media_url and media_thumbnail_url always point at the first image, so existing integrations are unchanged. media_image_urls carries the full set:
{"media_type": "image","media_url": "https://media.licdn.com/dms/image/slide-1.jpg","media_image_count": 8,"media_image_urls": "https://media.licdn.com/dms/image/slide-1.jpg, https://media.licdn.com/dms/image/slide-2.jpg, ..."}
Reposts carry the original post
A repost row holds both sides. post_text is what the reposter wrote, and the repost_* fields hold the post they shared:
{"profileUsername": "satyanadella","post_is_repost": true,"post_text": "Worth reading.","post_url": "https://www.linkedin.com/posts/satyanadella_activity-7502066128337195009-71w4","repost_author_name": "Kevin Scott","repost_author_headline": "CTO at Microsoft","repost_author_profile_url": "https://www.linkedin.com/in/jkevinscott","repost_text": "The original post text in full.","repost_url": "https://www.linkedin.com/posts/jkevinscott_activity-7501929373382422528-ruGU","repost_posted_date": "2025-09-05T09:09:01.722Z","reshared_by_name": "Satya Nadella","reshared_by_profile_url": "https://www.linkedin.com/in/satyanadella"}
LinkedIn sends reshares in two shapes, and reshared_by_name always names the person who did the resharing in both. In the shape above the repost_* fields hold the original. In the other shape there are no repost_* fields at all: the author_* columns are the original author, and reshared_by_name is the only column that identifies whose feed the post was reshared into. Use reshared_by_name when you want the resharer and author_* or repost_author_* when you want whoever wrote it.
A reshare of a reshare puts three different people in one row, so treat author_* as "whoever this row is attributed to" rather than "the original author". On those rows reshared_by_name is still the person who reshared it into the profile you scraped, repost_author_name is the innermost original author, and author_* is the person in the middle who reshared it first. reshared_by_name and repost_author_name mean the same thing on every row; only author_* shifts.
Set includeReposts to false to drop these rows entirely.
Error handling
Failed profiles don't stop the run. They're saved to the dataset with an error row:
{"profileUsername": "invaliduser","profile_url": "https://www.linkedin.com/in/invaliduser","error": "scrape_failed","error_message": "Profile not found"}
📺 Demo videos
New to Apify? Schedule this actor to run automatically:
Connect this actor to your stack (Zapier, Make, Airtable, and more):
Integrations
Schedule daily runs for a "thought leader content radar"
Use Apify Schedules to automatically scrape your target profiles daily, weekly, or on any cron schedule. Pipe the output into Notion or Airtable to build a living content intelligence dashboard.
Connect to your stack
- Google Sheets — Auto-export posts to a spreadsheet for analysis and reporting
- Slack — Get notified when scraping completes or when high-engagement posts are found
- Zapier — Trigger downstream workflows with scraped data
- Make (Integromat) — Build complex automation pipelines
- Google Drive — Save datasets as JSON or CSV files to Drive
- Webhook — Send data to any HTTP endpoint when a run finishes
Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({profileUrls: ['satyanadella', 'williamhgates'],totalPostsPerProfile: 50,postedLimit: 'month',});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const post of items) {console.log(`${post.profileUsername}: ${post.post_text?.slice(0, 80)}...`);console.log(` - [${post.stats_total_reactions} reactions, ${post.stats_comments} comments]`);}
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"profileUrls": ["satyanadella", "williamhgates"],"totalPostsPerProfile": 50,"postedLimit": "month",})items = client.dataset(run["defaultDatasetId"]).list_items().itemsfor post in items:reactions = post.get("stats_total_reactions", 0)text = (post.get("post_text") or "")[:80]print(f"[{post['profileUsername']}] [{reactions} reactions] {text}...")
FAQ
How many profiles can I scrape per run? No profile limit per run. The actor processes 10 profiles concurrently for fast throughput.
How many posts can I get per profile?
All of them. Set totalPostsPerProfile to 0 (the default) to scrape every available post. Or set a specific number like 50 or 100.
What time ranges can I filter by?
24h, week, month, 3months, 6months, year, 3years, or all. Leave empty to get all posts regardless of date. For an exact calendar range use fromDate and untilDate instead.
Can I exclude reposts?
Yes. Set includeReposts to false to only get original posts.
Is there a LinkedIn posts API for this? LinkedIn's own Posts API sits behind its Marketing Developer Platform partnership, and even once approved it only reaches pages you own or manage. There is no official endpoint that returns another person's posts. This Actor is the practical LinkedIn posts API for public profile content: one call, one flat row per post, no partnership application and no rate limit to negotiate.
Do I need a LinkedIn account? No. The actor uses a third-party API — no cookies, no credentials, no login required.
Is it legal to scrape LinkedIn posts? This Actor reads posts LinkedIn already shows publicly, with no account and no login. Whether a particular use is lawful depends on your jurisdiction, your purpose, and how you handle any personal data you collect, so that judgment is yours rather than something a product page can make for you. The Terms of Service further down this page set out what is permitted and what is not, including the data protection position, author copyright, and a specific caution on AI training. Read them before running anything at scale.
Will LinkedIn ban my account for using this? No LinkedIn account is involved at any point. You never paste a cookie, a session token or a password, and the Actor never signs in as you. There is no account for LinkedIn to restrict because none of your credentials reach it. That is the practical difference from browser extensions and cookie-based scrapers, where your own session does the fetching and your own account carries the risk.
Can I scrape LinkedIn posts without logging in?
Yes, that is the only way this Actor works. Give it a username such as satyanadella or a full profile URL and it returns that profile's public posts. Nothing to install, no browser extension, no session to keep alive.
What data can a LinkedIn post scraper extract? From this one, 50 columns per post. The post text, its permalink and a stable id, the exact publication date, and whether it is an original post, a quote post or a plain repost. The author's name, headline, profile URL, photo and website. Media of every kind: article links, images with the full carousel list, native video, and documents with page counts. Hashtags, mentions and outbound links pulled out of the post body. Engagement split by reaction type. And on a repost, the original post's author, text, URL and date. The complete field list is in the Output section above.
What happens if a profile doesn't exist? The actor logs the error and continues with the remaining profiles. Failed profiles appear in the output with an error message.
What format is the output? One flat row per post — perfect for CSV export, Google Sheets, databases, or any tabular tool. No nested objects.
Can I export the results to Google Sheets? Yes. Because every row is flat, the dataset opens as a table with no processing step in between. Export CSV or XLSX from the run, or connect the Google Sheets integration to push each finished run automatically. The same applies to Airtable, Notion and anything else that reads CSV.
Does it scrape reactions and comments too? Not the individuals. This Actor returns the posts with their engagement counts: total reactions, the split by reaction type, comments and reposts. It does not return the people who reacted or the text of each comment. For those, use LinkedIn Post Comment & Reaction Extractor, which takes a post URL and returns every commenter and reactor.
Can I scrape posts between two specific dates?
Yes. Set fromDate and untilDate to bracket a calendar range, for example 2025-01-01 to 2025-12-31. Most LinkedIn post scrapers only offer a rolling window like "last month", which cannot answer "everything from last year". When either date is set it overrides postedLimit.
Can I see who was @mentioned in a post?
Yes, with one honest caveat. post_mention_urls holds a LinkedIn URL for every mention and post_mention_count is the true total. post_mentions holds names, but only where LinkedIn supplies one. It identifies a mentioned person by an opaque id such as ACoAAAAwo4QB..., and it is inconsistent about companies: the same unedited post returned /company/breakthrough-energy on one run and /company/19141006 twenty minutes later. A bare id is not reported as a name, so those mentions appear in the URL list only. A post tagging three people and two companies therefore shows a count of 5, five URLs, and two names. Mentions are kept out of post_external_links, which holds genuine outbound links only.
Can I tell a quote post from a plain repost?
Yes. post_type is post for original content, quote_post when someone reshared and added their own commentary, and repost for a plain reshare with no added text. post_is_repost stays a boolean covering both reshare kinds.
Can I get the original post behind a repost?
Yes. Every repost row carries repost_text, repost_url, repost_posted_date and the original author's name, headline and profile URL, alongside the reposter's own commentary in post_text.
Does it return every image on a carousel post?
Yes. media_image_urls lists all of them in order and media_image_count tells you how many. media_url stays on the first image.
How do I avoid duplicate posts when I run this on a schedule?
Use post_id. It is stable for a given post across runs, so you can deduplicate on it in your database or spreadsheet rather than matching on text or URL.
What happens if one profile in my list is bad?
The run continues. That profile gets a row with error, error_message and error_fix explaining what went wrong and how to correct it, and every other profile is unaffected. Failed profiles never abort a batch.
Do I need a LinkedIn cookie or session token? No. There is nothing to paste, nothing to refresh, and no LinkedIn account is involved at any point.
What does a run cost? Billing is per result returned. A profile that returns no posts in your date range produces no result rows for those pages.
Can I use this with an AI agent or MCP? Yes. The flat, one-row-per-post output is stable and predictable, which is what agent tooling needs. Every field is a scalar, so there is no nested JSON to traverse.
Tips
- Use usernames — Pass
satyanadellainstead of the full URL. Shorter, less error-prone. - Set a
postedLimit— Filtering bymonthorweekspeeds up scraping and avoids pulling old content. - Enable
removeEmptyFields— Cleaner exports for Google Sheets and databases. - Schedule daily runs — Use Apify Schedules to build automated content monitoring pipelines.
- Filter by profile — Use
profileUsernameto group or filter results in your downstream tools.
Limitations
- Only public LinkedIn profiles can be scraped.
- The number of posts returned depends on what LinkedIn has available for the profile.
- No profile limit per run.
- Engagement stats are point-in-time snapshots and may change over time.
Related scrapers
Build the complete LinkedIn content intelligence pipeline:
- LinkedIn Profile Extractor & Enricher — Enrich the profiles you're scraping posts from
- LinkedIn Post Search Scraper — Discover posts by keyword across all of LinkedIn
- LinkedIn Post Comments & Reactions Scraper — Extract engagers on specific posts
- LinkedIn Company Posts Scraper — The same bulk export for company pages instead of people
See all scrapers by unseenuser
Example tasks
Pre-configured tasks you can run in one click or use as starting points:
- Track Competitor Executives' LinkedIn Posts — Monitor what competitor executives publish and which topics earn engagement
- Social Listening: What Your Market Posted This Week — A weekly pulse on the voices that matter in your category
- Export a Full Year of LinkedIn Posts by Date — Pull every post between two exact dates, not a rolling window
- Scrape Original LinkedIn Posts, Skip All Reposts — Only what someone wrote themselves, with reposts filtered out
- Export LinkedIn Post Engagement to CSV or Sheets — Reaction breakdowns as clean flat rows, ready for Sheets or Excel
Terms of Service
Apify Actor — Terms of Service
Version: 4.0 Effective Date: May 5, 2026
0. ACCEPTANCE BY USE — IMPORTANT
Read this section first.
These Terms of Service ("Terms") form a binding legal agreement between you ("User," "you," "your") and UnseenUser, the Publisher of this Apify actor ("UnseenUser," "the Publisher," "we," "us," "our").
0.1 How You Accept These Terms
You accept these Terms by any of the following actions, each of which constitutes a clear, affirmative act of acceptance:
(a) Running the Actor — Initiating any execution of the Actor on the Apify platform (b) Using any output returned by the Actor for any purpose (c) Continuing to access the Actor's listing or documentation after these Terms are visible
0.2 Continuing Acceptance
Each time you run the Actor or use its outputs, you reaffirm your acceptance of the then-current Terms. If you do not agree to these Terms or any subsequent update, you must stop using the Actor immediately.
0.3 No Anonymous Acceptance
You cannot disclaim acceptance by:
- Failing to read these Terms before running the Actor
- Running the Actor through automated systems
- Sharing your Apify account with others who may not have read these Terms
By the act of running the Actor on Apify, you bind yourself, your organization (if applicable), and any individuals or systems acting on your behalf or under your authority.
0.4 If You Do Not Accept
If you do not agree to these Terms, you must not run the Actor. No use is authorized without acceptance.
PREAMBLE — UNDERSTANDING THE ARCHITECTURE
Before using the Actor, please understand the technical architecture of the service:
The Data Flow
You (User) → Apify Platform → Actor (software) → Third-Party API → Source Platform↓You (User) ← Apify Platform ← Actor (software) ← Third-Party API
What Each Party Does
- You (the User): Run the Actor on the Apify platform with input parameters you choose
- Apify: Operates the cloud infrastructure that hosts and executes Actors. Apify is a Czech-incorporated company (Apify Technologies s.r.o.) governed by its own Terms of Service.
- The Publisher (us): Publishes software code (the Actor) on Apify's platform. The Actor is a thin wrapper that translates your input into requests to a third-party API and returns the API's responses to you. The Publisher does not operate scraping infrastructure. The Publisher does not store or retain data returned by the Actor. The Publisher does not see, log, or process the personal data of any individuals returned in the Actor's outputs beyond what is incidental to passing the data through.
- Third-Party API Provider: HarvestAPI (https://harvest-api.com) or Scrape Creators (https://scrapecreators.com). These are independent third-party companies that operate scraping infrastructure and return data from source platforms.
- Source Platform: LinkedIn, TikTok, YouTube, Reddit, Linktree, etc. These are the platforms whose publicly visible data is accessed by the Third-Party API Providers.
Why This Matters
Your relationship with the Publisher is that of a software user to a software vendor. The Publisher has the responsibilities of a software vendor (functional code, accurate documentation) and the limits of one (the Publisher is not responsible for how you use the data you obtain).
These Terms operate alongside but do not replace:
- Apify's Terms of Service and Acceptable Use Policy (governing your relationship with Apify)
- HarvestAPI Terms of Service and Scrape Creators Terms of Service (governing the underlying data infrastructure)
- Source Platform terms (LinkedIn, TikTok, etc.) governing the public data accessed
- Applicable law in your jurisdiction and the jurisdictions of data subjects
These Terms incorporate the actor-specific addendum published in each Actor's individual listing ("Addendum"). In the event of a conflict, the more restrictive provision applies.
1. NATURE OF THE SERVICE
1.1 What the Actor Is
The Actor is a software program published on the Apify platform. Each Actor:
(a) Accepts structured input from you on the Apify platform (b) Translates that input into HTTP requests to a third-party API operated by HarvestAPI or Scrape Creators (c) Receives HTTP responses from that third-party API (d) Returns the response data to you in a structured format on the Apify platform
The Actor's source code is hosted on Apify's infrastructure. The Actor runs in Apify's cloud, not on the Publisher's servers. The Publisher operates no servers running the Actor.
1.2 What the Actor Is Not
The Actor is not:
(a) A scraping tool — the Publisher does not operate scraping infrastructure, proxies, headless browsers, or fake accounts (b) A direct connection to any source platform — connections to source platforms are made by HarvestAPI / Scrape Creators (c) A data storage or data retention service — the Publisher does not maintain a database of any data the Actor returns (d) A licensed access channel to LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta, Linktree, or any other source platform (e) Affiliated with, endorsed by, sponsored by, or authorized by any source platform
1.3 The Publisher's Limited Role
The Publisher's role is limited to:
(a) Designing and writing the Actor's source code (b) Publishing the Actor on the Apify Store (c) Maintaining the Actor (updating it when API providers change schemas) (d) Providing documentation and customer support via Apify's contact mechanism
The Publisher is a software vendor, similar to a developer who publishes an app on the Apple App Store or Google Play Store. The Publisher is not a data provider, data broker, data processor, or data controller for purposes of GDPR, CCPA, Israel's Privacy Protection Law, or equivalent.
1.4 The Third-Party API Providers' Role
HarvestAPI (https://harvest-api.com) and Scrape Creators (https://scrapecreators.com) are independent third-party companies. They:
(a) Operate the actual data scraping infrastructure (b) Maintain relationships with source platforms (or accept the operational risk of accessing public data without such relationships) (c) Are themselves Apify publishers (HarvestAPI publishes 9+ actors directly; Scrape Creators publishes 10+) (d) Provide their own Terms of Service governing their operations (e) Are responsible for compliance obligations relating to the data collection itself
The Publisher is a customer of these providers. The Publisher is not their agent, partner, or representative.
2. WHO MAY USE THE ACTOR
2.1 Eligibility
You may use the Actor only if:
(a) You are at least 18 years old or the age of majority in your jurisdiction (b) You have legal capacity to enter into binding contracts (c) You are not located in or resident of a country subject to comprehensive sanctions by the United States, European Union, United Kingdom, or Israel (d) You are not on any prohibited persons list
2.2 User Representations
By using any Actor, you represent and warrant that:
(a) Truthful identity: Information you provide about your identity and intended use is accurate (b) Lawful intent: Your intended use complies with applicable law in your jurisdiction (c) Source platform compliance: You will independently comply with the Terms of Service of any source platform whose data you obtain through the Actor (d) Data subject rights: Where Actor outputs include personal data, you will respect data subject rights under applicable law (e) No prohibited use: You will not use the Actor for any of the purposes prohibited in Section 4
These representations are continuous — they must remain true throughout your use.
3. PERMITTED USES
The Actor may be used for any lawful purpose, including:
- Market research and competitive analysis
- Academic research
- Journalism and investigative reporting
- Internal business intelligence
- Brand monitoring
- Recruitment research where consistent with applicable employment law
- Building products that further process publicly available information lawfully
Specific permitted uses for each Actor are described in that Actor's individual listing and Addendum.
4. PROHIBITED USES
You may not use the Actor for any of the following:
4.1 Illegal Activity
Activity illegal under the law of your jurisdiction, the User's jurisdiction, or the jurisdiction of any data subjects.
4.2 Harassment, Stalking, and Personal Targeting
- Compiling profiles for harassment, stalking, or doxxing
- Tracking individuals' movements or activities without their knowledge
- Building profiles of journalists, activists, dissidents, or vulnerable populations for retaliatory purposes
4.3 Discrimination
- Using outputs for discriminatory employment, lending, housing, or insurance decisions based on protected characteristics
- Building lists for discriminatory purposes
4.4 Spam and Unsolicited Commercial Communication
- Sending unsolicited marketing in violation of CAN-SPAM, CASL, GDPR, PECR, Israeli Anti-Spam Law, or equivalent laws
- Building "lead lists" from scraped contacts without proper consent infrastructure
- Reselling contact data for spam purposes
4.5 Fraud and Deception
- Identity theft or impersonation
- Generation of fake reviews, testimonials, or coordinated inauthentic behavior
- Election interference or political disinformation
- Securities fraud
4.6 Source Platform Abuse
- Using outputs to circumvent technical protection measures of source platforms
- Creating fake accounts on source platforms based on Actor outputs
- Vote manipulation, engagement manipulation, or platform algorithm gaming
- Building services that competitively substitute for source platforms
4.7 Reselling the Actor's Service
- Reselling raw Actor outputs as your own data product or scraping-as-a-service
- Sharing your Apify credentials to provide third parties indirect access
- Building competing API services using Actor outputs
4.8 AI Training Without Authorization
- Using Actor outputs as training data for commercial AI/ML models without separate licensing authority from the source platform
4.9 Sensitive Targeting
- Specifically targeting or profiling based on health conditions, sexual orientation, religious beliefs, political opinions, or other sensitive characteristics
- Targeting children under 16 (or local age of consent for data processing)
4.10 Privacy Law Violations
- Processing personal data of EU/UK/California/Israeli residents without complying with applicable privacy law
- Failing to honor data subject access, deletion, or objection requests
- Processing data for purposes incompatible with its publication context
5. SOURCE PLATFORM TERMS — YOUR RESPONSIBILITY
5.1 Acknowledgment
The Actor accesses publicly visible data on third-party platforms ("Source Platforms") through the Third-Party API Providers (HarvestAPI / Scrape Creators). Source Platforms include LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta/Facebook, Linktree, Komi, Pillar, Linkbio, Linkme, and Amazon.
5.2 Your Sole Responsibility
You acknowledge:
(a) You are solely responsible for ensuring your downstream use of data obtained through the Actor complies with the Source Platform's Terms of Service (b) The Publisher makes no representation that any specific use is permitted under any Source Platform's terms (c) The Third-Party API Providers, not the Publisher, bear responsibility for the lawfulness of the data collection itself (d) You should review Source Platform terms before commercial use:
- LinkedIn: https://www.linkedin.com/legal/user-agreement
- TikTok: https://www.tiktok.com/legal/page/global/terms-of-service/en
- YouTube: https://www.youtube.com/static?template=terms
- X: https://twitter.com/en/tos
- Reddit: https://www.redditinc.com/policies/user-agreement
- Meta: https://www.facebook.com/legal/terms
- Linktree: https://linktr.ee/s/terms/
5.3 Cease-and-Desist Compliance
If you receive a cease-and-desist letter or other legal demand from a Source Platform regarding your use of Actor outputs, you must:
(a) Cease the contested use immediately (b) Notify UnseenUser within 48 hours via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) (c) Cooperate with the Publisher as needed to mitigate (d) Not assert against the Publisher any claim arising from your inability to use the Actor for that Source Platform
6. DATA PROTECTION — REFLECTING ACTUAL ARCHITECTURE
6.1 Roles Under Privacy Law
For purposes of GDPR, UK GDPR, CCPA, Israel's Privacy Protection Law (PPL) including Amendment 13, and equivalents:
- You (the User) are the Data Controller of any personal data you obtain through the Actor and subsequently process for your own purposes
- HarvestAPI and Scrape Creators are the entities that collect data from source platforms — they bear the responsibilities of data processors or controllers (depending on context) for the collection itself
- The Publisher acts solely as a software vendor, not as a data controller or processor, because the Publisher does not store, retain, or substantively process personal data — the Actor merely passes API responses through
6.2 No Data Retention by the Publisher
The Publisher confirms:
(a) The Publisher does not maintain a database of personal data obtained through the Actor (b) The Actor passes data from the Third-Party API directly to you on the Apify platform — data does not flow through the Publisher's infrastructure (c) Apify's standard execution and operational logging may include limited information about Actor runs (input parameters, run duration, data volume) — this is governed by Apify's own privacy practices (d) The Publisher does not access, view, or analyze your Actor outputs except as needed for technical support if you specifically share them with the Publisher
6.3 Your Obligations as Data Controller
Where your use of the Actor involves processing personal data, you are responsible for:
(a) Establishing a lawful basis for your processing (consent, legitimate interest with documented balancing test, contract, etc.) (b) Providing transparent notice to data subjects as required by applicable law (c) Honoring data subject access, rectification, erasure, restriction, and portability requests (d) Implementing appropriate security measures (e) Conducting Data Protection Impact Assessments where required (f) Appointing a Data Protection Officer if your operations require one (g) Registering databases with applicable supervisory authorities (h) Honoring opt-out requests for direct marketing (i) Cross-border transfer safeguards where data crosses borders
6.4 Israel's Amendment 13 — User Compliance
If your use of the Actor involves Israeli residents' personal data, you must comply with the Privacy Protection Law as amended (Amendment 13, effective August 14, 2025). These obligations are yours as the data controller, not the Publisher's as the software vendor.
6.5 Sensitive Data Targeting Restrictions
You will not use the Actor to specifically target, profile, or build datasets focused on:
- Health or medical conditions
- Religious beliefs
- Political opinions
- Sexual orientation or gender identity
- Genetic or biometric data
- Criminal history
- Children under 16
7. INTELLECTUAL PROPERTY
7.1 Actor Code
The Actor's source code, schemas, documentation, and branding are owned by the Publisher. You receive a limited, non-exclusive, non-transferable, revocable license to use the Actor for permitted purposes during your active subscription/run with Apify.
7.2 Output Data
The Publisher claims no ownership over the public data the Actor returns. Source Platforms may have copyright, database rights, or other rights in their data; data subjects may have copyright in user-generated content. Your use of output data must respect these rights independently.
7.3 Restrictions
You may not reverse engineer, decompile, or reuse the Actor's code in a competing actor.
7.4 Feedback
Feedback you provide may be used by the Publisher to improve products without compensation to you.
8. PRICING AND PAYMENT
8.1 Apify Platform Billing
Pricing is administered through Apify's pricing models. Apify processes all payments. Apify's payment terms govern refunds and disputes.
8.2 Pricing Changes
The Publisher may change Actor pricing with at least 14 days' notice via the Actor's Apify listing.
8.3 No Refunds for Misuse
If your access is suspended or terminated for breach of these Terms, you forfeit any unused balance and are not entitled to refunds.
9. SERVICE AVAILABILITY AND CHANGES
9.1 No Uptime Guarantee
The Actor depends on:
(a) The Apify platform (b) Underlying API providers (HarvestAPI, Scrape Creators) (c) Source Platforms' continued public accessibility
Any of these may change behavior, restrict access, or become unavailable without notice. The Publisher makes no uptime guarantees.
9.2 Service Discontinuation
The Publisher may discontinue any Actor at any time. Reasonable notice will be provided when feasible.
10. DISCLAIMERS
10.1 "AS IS" Service
THE ACTOR IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR PURPOSE, NON-INFRINGEMENT, OR ACCURACY OF DATA.
10.2 No Representation of Lawfulness
The Publisher makes no representation that your specific use of the Actor or the data it returns is lawful in your jurisdiction or under any Source Platform's terms. The burden of determining lawfulness for your use case is yours.
10.3 No Endorsement of Source Content
Content returned by the Actor was created by third parties. The Publisher does not endorse, verify, or take responsibility for it.
11. LIMITATION OF LIABILITY
11.1 Aggregate Liability Cap
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF THE PUBLISHER FOR ALL CLAIMS RELATING TO THE ACTOR EXCEED THE GREATER OF:
(a) ONE HUNDRED U.S. DOLLARS (US $100), OR (b) THE AMOUNTS YOU PAID THROUGH APIFY FOR USE OF THE ACTOR IN THE THREE (3) MONTHS IMMEDIATELY PRECEDING THE EVENT
11.2 Excluded Damages
THE PUBLISHER IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFITS, REVENUE, OR DATA, EVEN IF ADVISED OF THE POSSIBILITY.
11.3 Time Limit
Any claim must be brought within one (1) year of the event.
12. INDEMNIFICATION
12.1 Your Indemnification of the Publisher
You agree to defend, indemnify, and hold harmless the Publisher from any:
- Claims arising from your use of the Actor
- Claims arising from your violation of these Terms
- Claims arising from your violation of any law (including privacy law)
- Claims arising from your violation of any Source Platform's Terms of Service
- Claims arising from your processing of personal data obtained through the Actor
- Reasonable attorneys' fees and costs of defending such claims
12.2 Defense
The Publisher may assume defense at your expense. You will cooperate with the Publisher's defense.
12.3 Scope
The indemnification covers reasonable, foreseeable third-party claims arising from your use. It does not extend to:
- Claims arising from the Publisher's gross negligence or willful misconduct
- Claims regarding the Actor's source code itself (those are the Publisher's responsibility)
- Claims regarding the Third-Party API Provider's data collection (those are their responsibility)
13. SUSPENSION AND TERMINATION
13.1 Termination by the Publisher
The Publisher may terminate your access for material breach, illegal use, breach of warranty, or upon credible legal demand.
13.2 Effects of Termination
Your license ends, you must cease use, and applicable provisions survive.
13.3 Termination by You
You may stop using the Actor at any time on Apify.
14. DISPUTE RESOLUTION
14.1 Informal Resolution First
Send a detailed written description of the dispute via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) and wait 60 days for resolution attempt before any formal claim.
14.2 Governing Law
These Terms are governed by the substantive laws of the State of Israel, without regard to conflict of law principles.
14.3 Exclusive Jurisdiction
Any dispute shall be brought exclusively in the competent civil courts of Tel Aviv-Jaffa, Israel.
14.4 No Class Actions
You agree to bring claims only in your individual capacity.
14.5 Attorneys' Fees
The prevailing party recovers reasonable attorneys' fees.
15. MISCELLANEOUS
15.1 Entire Agreement
These Terms (with Addendum and incorporated documents) are the entire agreement.
15.2 Severability
Unenforceable provisions are reformed to the minimum extent or severed.
15.3 Assignment
You may not assign without the Publisher's consent. The Publisher may assign to affiliates, successors, or acquirers.
15.4 Force Majeure
Neither party is liable for failure due to events beyond reasonable control, including changes by Source Platforms or Third-Party API Providers, or actions by Apify.
15.5 Third-Party Beneficiaries
Apify, HarvestAPI, and Scrape Creators are intended third-party beneficiaries of Sections 4 (Prohibited Uses), 5 (Source Platform Compliance), and 12 (Indemnification).
15.6 Survival
Sections 0 (Acceptance), 4, 5, 6, 7, 10, 11, 12, 14, and 15 survive termination.
15.7 Language
English controls. Translations are for convenience only.
15.8 Publisher Identification for Legal Process
The Publisher operates on the Apify platform under the username UnseenUser (apify.com/UnseenUser). The Publisher is a registered legal entity. Upon receipt of valid legal process (subpoena, court order, or equivalent) directed through Apify's official channels, the Publisher's full legal identity may be disclosed as required by law. This Section ensures that you have a valid path to legal recourse if needed.
16. ACKNOWLEDGMENT
By using any Actor, you acknowledge that:
(a) You have read these Terms (b) You understand the architecture: you are using software (the Actor) on Apify's platform that calls third-party APIs (c) You accept responsibility for your use, including for compliance with Source Platform terms (d) Your indemnification obligations cover third-party claims arising from your use (e) Disputes are resolved in Israeli courts (f) The Publisher's identity, while not publicly disclosed in this listing, can be obtained through valid legal process via Apify
For questions, use UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) before running the Actor.
Actor-Specific ToS Addendum — LinkedIn Batch Profile Posts Scraper
This addendum supplements the Master Terms of Service V4.0. By running this Actor, you accept both the Master ToS and this addendum.
A. Architectural Disclosure
This Actor is a software wrapper. It accepts your input parameters, calls the HarvestAPI endpoints, and returns the response data to you on the Apify platform. UnseenUser does not store, log, or substantively process the data returned. The data flows from HarvestAPI through Apify's runtime directly to you.
B. Nature of Data Returned
This Actor returns: Full post content (text, images, video URLs, articles, polls), engagement (likes, comments, shares, reaction breakdowns), post timing and recurrence patterns, author profile snippets, repost data.
Where the Actor's output includes individual people's names, photos, contact details, or content authored by them, that data constitutes personal data subject to GDPR, CCPA, Israeli Privacy Protection Law, and equivalent privacy laws in your downstream processing — but only in your hands as the data controller, not in UnseenUser's hands as the software vendor.
C. Permitted Use Cases
You may use this Actor for the following purposes (non-exhaustive list):
- Influencer marketing audits — understand actual posting cadence + engagement of paid creators
- Competitive content intelligence — see what topics your competitors' executives post about
- Content benchmarking — compare your posting strategy against industry leaders
- Sales triggers — detect job changes, product launches, fundraising announcements buried in posts
- Academic research — analyze professional communication patterns at scale
- AI training corpora — train domain-specific LLMs on professional content (with proper licensing)
D. Specifically Prohibited Uses
In addition to Master ToS Section 4 prohibitions, you may NOT:
- Republish full posts in commercial products that compete with LinkedIn
- Use post content to train commercial AI/LLMs without complying with author rights and LinkedIn's data use terms — LinkedIn's User Agreement explicitly addresses this
- Build 'engagement-bait' systems that copy successful post patterns and impersonate the original authors
- Mass-DM post authors without proper anti-spam compliance
- Track personal disclosures (illness, job loss, family events) of named individuals for commercial targeting
- Profile individuals based on inferred political/religious views from their posts for hiring or commercial decisions
E. Platform Terms of Service Considerations
LinkedIn's Terms of Service prohibit automated extraction of LinkedIn data and the use of LinkedIn data to train AI/ML models without permission. This Actor accesses public posts via HarvestAPI — HarvestAPI bears responsibility for the lawfulness of the data collection. Your downstream use must independently comply with LinkedIn's Terms of Service. If LinkedIn issues a cease-and-desist, notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser).
F. Author Copyright
Post content is copyrighted by the post author. You may use it for:
- Analysis and research (typically fair use)
- Quotation with attribution (typically fair use under research/journalism exception)
- Aggregation of metrics (no copyright issue)
You may NOT:
- Republish full posts in your own products without licensing
- Use posts to generate derivative AI content presenting authors' ideas as your own
- Translate and republish posts without authorization
G. AI Training — Special Caution
If you intend to train AI models on outputs from this Actor:
- LinkedIn's Terms explicitly prohibit this without LinkedIn's authorization
- Authors retain copyright in their posts under the Berne Convention; their consent (or a fair use case) is independently required
- Recent litigation (NYT v. OpenAI, Reddit v. Perplexity, etc.) shows AI training on copyrighted content is not settled law
- The Publisher does not authorize, and has no ability to authorize, AI training use
- Your AI training use is your own legal exposure
H. Author Personal Data
Author names, photos, and headlines are personal data. Cold outreach must comply with anti-spam laws. Do not aggregate post data to build comprehensive personality profiles of individuals for commercial use without their consent.
I. Sensitive Content
LinkedIn posts increasingly contain personal stories — job loss, illness, bereavement, family events. Do NOT:
- Weaponize these disclosures (e.g., target laid-off workers with exploitative offers)
- Build "vulnerability lists" based on inferred life events
- Use bereavement posts as triggers for grief-targeting marketing