LinkedIn Posts Scraper

A company page in.
Its posts out.

Submit LinkedIn company URLs or company IDs and get that company's posts back as rows - who posted, the text, when it went out, and the reactions, comments and reposts it collected, with a link and an identifier for each one. One caveat, and it is on this page rather than hidden: every run we hold came back empty.

one-time 500 free rows$0.002 per row afterup to 1,000 companies per request100 posts per company by default
Read this first

We can name the columns.
We have not seen a row.

That is an unusual thing for a product page to admit, and it is the most important sentence on this one.

Fourteen runs of this service sit in front of us and every single one came back empty. What they do carry is a header, and that header is identical in all fourteen: nine columns, listed in what you get back. We can be unusually precise about the emptiness, too - every sheet declares its used range as A1:I1, which is one row of nine columns and no data beneath it. So we can tell you the shape an export is meant to have, and we cannot show you a filled cell.

The distinction is worth being exact about. A header states what an export intends to contain. It is not evidence that a given column ever holds a value - a column can be declared and never fill. So nothing below is described as verified, there are no fill rates on this page, and we make no claim about the format of any field, because we have nothing to count and nothing to read.

The published reference does not close the gap. It documents the request side - that the input is a LinkedIn company URL or company ID, that limit controls how many items come back per query and defaults to 100, and that requests batch up to 1,000 queries - but it lists no response columns at all. Nothing contradicts the nine names, and equally nothing independently confirms them. Your one-time 500 free rows are the first real test, and that is the honest place to start.

livescraper.app · state of the evidence
Fourteen runs inspected, fourteen empty
Nine columns, identical header each time
Request settings: documented
No row has ever been seen!
The reference lists no response columns!
Your free rows are the first real test.
How it works

A company link in,
its posts out.

Two settings, both documented, and one of them decides how big a run gets.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the LinkedIn Posts Scraper.
  3. STEP 3Paste LinkedIn company URLs or company IDs - up to 1,000 per request.
  4. STEP 4Set how many posts to return per company.
  5. STEP 5Pick your format and click Get Data.

Both input forms are documented: a full company URL like https://www.linkedin.com/company/outscraper/ or the bare company ID, outscraper. Posts per company defaults to 100.

What you get back

Nine columns,
declared by the export.

This is the header row of our exports, identical across all fourteen runs, in sheet order. It is not taken from the reference - that document covers the request side and lists no result columns. Read it as the shape an export declares, not as columns we have watched fill.

query
The company URL or company ID you submitted, echoed on the row. Results stay grouped by it.
author
Who the post is attributed to. On a company feed this is usually the company, but it can be a named individual - see the legal note below before you store it.
text
The body of the post.
posted
The column carrying when the post went out. We have not seen a value, so we make no claim about its format - whether it is a date, a timestamp or a relative phrase like “2 weeks ago”.
reactions
The count of reactions on the post.
comments
The count of comments on the post.
reposts
The count of reposts on the post.
post_url
The link to the individual post.
post_urn
LinkedIn's own identifier for the post. We have not seen a value, so we do not describe its form - treat it as the stable key to deduplicate on, and confirm its shape on your first run.

Nine names, no values. The header is stable - identical across fourteen separate runs, each one declaring a used range of A1:I1 - but every one of those runs came back without data rows. So we can tell you which columns arrive and nothing about what lands in them: not the format of posted, not whether the engagement counts are numbers or formatted strings like “1.2K”, not what post_urn looks like. One run against the one-time 500 free rows answers all of that in a minute.

Before you wire it up

Four things to settle
on your first run.

Because the exports we hold are empty, these are open questions rather than findings - and they are the ones worth answering before you build anything.

What format does posted arrive in?

Social platforms show ages rather than dates - “3d”, “2 weeks ago” - and exports sometimes carry that phrasing straight through instead of a timestamp. Check the first value before you write a parser, and before you assume you can sort on it or compare it across runs.

Are the engagement counts numbers or strings?

reactions, comments and reposts are counts, but a page that displays “1.2K” can export that string rather than 1200. If you plan to sum or rank on them, look at a real cell first - a silent string-to-number coercion is the kind of bug that survives review.

Deduplicate on post_urn, once you have seen one

Re-running a company will return posts you already have. post_urn is the field meant to identify a post, so it is the natural key - but we have not seen a value, so confirm it is stable and unique on your own first pull rather than trusting this page for it.

Start with one company, not a thousand

The request side supports batches of up to 1,000 companies, and that is documented. Given fourteen empty runs, the sensible first job is a single well-known company page with a low limit - enough to see whether rows arrive at all, and cheap enough that the answer costs nothing.

Common workflows

What a company's feed
is good for.

Assuming the rows arrive for your companies, these are the jobs this shape of data supports.

Competitive monitoring

Track what competitors are saying publicly

A company's own feed is its positioning in its own words - launches, hiring pushes, partnerships and the campaigns it chooses to amplify. Pulling a set of company pages on a schedule turns that into a table you can read in one pass instead of a tab you keep forgetting to open.

Product marketing · Strategy
Content benchmarking

See which posts actually landed

Every row carries reactions, comments and reposts alongside the text, so the comparison you usually make by eye becomes a sort. Which formats earn comments rather than reactions, and which topics travel - that is a question about your own feed as much as anyone else's.

Social · Content
Account research

Read the room before you reach out

A company that just announced a funding round, a new office or a hiring wave is in a different conversation from one that has posted nothing in six months. Recent posts give an outreach list a timing signal that a firmographic record cannot.

Sales · BD
Pricing

Pay only for the rows
you actually pull.

No subscription, no minimum, no per-seat licence. Your first 500 rows are on us - after that, pay-as-you-go.

Free tier

500 free rows - $0

Every new account, one-time. No credit card required. On this service they are not a trial so much as the experiment: fourteen runs in our hands came back empty, and 500 free rows is how you find out what happens for the companies you care about.

$0 forever
Pay-as-you-go

$0.002 per row, after the free tier

Roughly $2 per 1,000 posts, one row per post. Because the run size is driven by how many posts you ask for per company, the estimator prices the job before it runs.

Most popular
Enterprise

Custom · recurring monitoring

Volume pricing, SLAs, dedicated workers and bespoke onboarding for teams tracking a large set of company pages on a schedule. Tell us your numbers and we'll quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

The same company,
other angles.

Posts tell you what a company is saying now. These two tell you what it is.

The legal bit

A company's own
publications.

Lighter than the people-search end of this catalogue, and heavier than a page about software. Both halves of that are worth stating.

What this service is pointed at is a company's own feed: material an organisation published deliberately, to be read. That is the least contentious kind of content on a social platform, and it is why the input is a company URL or company ID rather than a personal profile - the reference is explicit about that, and a different service covers profiles.

Two things still deserve care. The author column can carry a named individual rather than the company, and a name attached to a post is personal data under GDPR regardless of how public the post was - so it needs a lawful basis and a retention period like any other personal field. And LinkedIn's own User Agreement restricts automated collection from its services; that agreement is between you and LinkedIn, so satisfy yourself that your intended use is compatible with it before you run a large job. We would rather say that plainly than let a reassuring sentence do the work.

On our side: no third-party trackers on the data layer, your exports auto-delete after 30 days, we do not keep a copy of your results, and we do not build a database out of them.

livescraper.app · principles
Company feeds, not personal profiles
Exports auto-delete (30 days)
No third-party trackers on the data layer
author can name an individual - that is personal data!
LinkedIn's terms restrict automated collection - check your basis!
Read this before you sign up, not after.
Common questions

Things people
ask before signing up.

The questions we hear most. Anything else? Talk to us - humans, not bots, write the answers.

Have you actually seen this return data?+
No, and we would rather say so than imply otherwise. Fourteen runs of this service sit in our hands and every one came back empty - each sheet declaring a used range of A1:I1, which is a header row and nothing under it. We publish the nine column names because the export header declares them consistently, and we describe them as declared rather than confirmed. Your one-time 500 free rows are the first real test.
What does it take as input - a company or a person?+
A company. The published reference documents the query as URLs to companies or company IDs, giving https://www.linkedin.com/company/outscraper/ and the bare outscraper as its own examples. If you need public profiles of people, that is a different service - the LinkedIn Profiles Scraper, which carries stricter permitted-use rules.
What columns does the export declare?+
Nine: query, author, text, posted, reactions, comments, reposts, post_url and post_urn. That header was identical in all fourteen runs. What lands in them is exactly what an empty export cannot tell you, so we make no claim about formats or value types.
How many posts and companies can I ask for?+
The reference documents both: limit sets how many items come back per query and defaults to 100, and a request can batch up to 1,000 queries as an array. Those are documented request-side numbers and we quote them as such - our own runs returned nothing, so we have not exercised either at scale.
Is post_urn safe to deduplicate on?+
It is the field meant to identify a post, so it is the natural key for repeat pulls - but we have not seen a value, so we are not going to promise it. Confirm on your first run that it is present, stable and unique before you build an incremental job around it.
Am I allowed to collect this?+
That depends on your use and your jurisdiction, and it is not a question we can answer for you. Company posts are published deliberately for public reading, which is the lightest end of this catalogue. But the author column can name an individual, and a name attached to a post is personal data under GDPR whatever its visibility; and LinkedIn's User Agreement restricts automated collection from its services, which is an agreement between you and LinkedIn. Satisfy yourself on both before running a large job.
How much does it cost?+
The first 500 rows on a new account are free and one-time; after that it's $0.002 per row - about $2 per 1,000 posts - pay-as-you-go with no subscription. Given what our runs returned, spend the free rows first: they cost nothing and they answer the only question that matters here. Credits don't expire and there's no monthly reset.

Find out what it
returns for your companies.

Paste one company page, set a low limit, and look at the file. Your first 500 rows are free and need no card - on a service where every run we hold came back empty, that is exactly how to evaluate it.

Activates instantly · no card required

LinkedIn Posts Scraper - company posts as structured rows

A company's LinkedIn feed is one of the few places an organisation states its own position in its own words on a predictable schedule: launches, hiring pushes, partnerships, funding, and the campaigns it chooses to amplify. Reading that one tab at a time does not scale past a handful of accounts. This service is pointed at the same material in bulk - submit LinkedIn company URLs or company IDs and each company's posts come back as rows, one row per post, with the engagement each one collected alongside the text.

The published reference documents the request side clearly. The input is a company URL or a company ID, and it gives both forms as worked examples. A limit setting controls how many items come back per query and defaults to 100. Requests batch as arrays of up to 1,000 queries. What the reference does not do is enumerate a single response column, which matters for the next paragraph.

Here is the honest position on output, stated up front rather than buried. Fourteen real runs of this service sit in our hands and every one of them came back empty. They are not merely sparse: each exported sheet declares its used range as A1 to I1, which is a header row of nine columns with no data beneath it. So we can publish the nine names the export declares - the submitted query echoed back, the author, the post text, a posted column, counts of reactions, comments and reposts, the post link, and LinkedIn's own post identifier - and we cannot show a filled cell for any of them. Everything on this page is therefore described as declared rather than confirmed. There are no fill rates, no sample values, and no claims about formats: not whether the posted column carries a timestamp or a relative phrase like “2 weeks ago”, not whether the engagement counts arrive as numbers or as display strings such as “1.2K”, and not what shape the post identifier takes. Those are the first four things to settle on a real run, and the one-time 500 free rows exist precisely so that costs nothing.

On the legal side this sits at the lighter end of the catalogue without being weightless. Company posts are published deliberately, for public reading, and the input is a company rather than a person - public profiles of individuals are a separate service with stricter rules. Two cautions remain. The author column can carry a named individual rather than the organisation, and a name attached to a post is personal data under GDPR however public the post was, so it needs a lawful basis and a retention period. And LinkedIn's User Agreement restricts automated collection from its services; that agreement is between you and LinkedIn, so satisfy yourself that your intended use is compatible before running a large job. No third-party trackers run on the data layer, exports auto-delete after 30 days, and we neither retain your results nor build a database from them.