LinkedIn · Guide

How to get LinkedIn company posts

TL;DR
To get LinkedIn company posts, sign up for a free Captapi key, then send one GET request to /v1/linkedin/company-posts with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. The recent posts a company page shows logged-out visitors (about 10), with engagement{likes,comments}. Flat 1 credit.

How to get LinkedIn company posts (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the LinkedIn Company Posts API

    Send an authenticated GET request to /v1/linkedin/company-posts with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/linkedin/company-posts?url=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fshopify" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "company": "microsoft",
    "totalReturned": 2,
    "posts": [
      {
        "platform": "linkedin",
        "type": "post",
        "url": "https://www.linkedin.com/posts/microsoft_july-2026-activity-7487862338335801344-bBsC",
        "text": "Doctors are busy, visits can seem rushed. Many people – especially women – can feel like their doctor hasn’t really heard them.\n \nIn July's edition of The Monthly Tech-In, we explore how AI is helping clinicians spend more time listening to their patients and less time on administrative tasks. Beyond healthcare, we share stories about how farmers, researchers and executives are using AI to meet real-world challenges. \n \nLearn more about the people putting AI into practice.",
        "publishedAt": "2026-07-28T13:31:39.195Z",
        "author": {
          "name": "Microsoft",
          "url": "https://www.linkedin.com/company/microsoft"
        },
        "engagement": {
          "likes": 966,
          "comments": 76,
          "reposts": null
        },
        "id": "7487862338335801344"
      },
      {
        "platform": "linkedin",
        "type": "post",
        "url": "https://www.linkedin.com/posts/satyanadella_just-wrapped-our-earnings-call-it-was-a-activity-7488369807969370112-3kA1",
        "text": "Just wrapped our earnings call. It was a very strong close to what was a record fiscal year for Microsoft.\n  \n· Annual revenue: $331B, +18%\n· MS Cloud: $214B, + 27%\n· And Azure: $100B+, +41%\n  \nAnd even bigger opportunity ahead!\n  \nI wanted to share some more perspective on two areas of focus for us:\n  \nFirst, we are building a new model system, where the harness, context, memory, and action space are separate from any one model family, thereby moving the frontier on the cost -to-outcome curve. \n  \nAnd it’s not just about cost. It also has the added benefit of business continuity and resilience because every model is substitutable. \n  \nThis is the system we are using in our products, with great results. And we are making it available for our customers via Foundry too.\n\nYou can read more about this from Mustafa Suleyman here: https://lnkd.in/gQwfAbuc\n \nSecond, when it comes to Copilot, we are innovating rapidly, from chat to Cowork to Autopilots.\n  \nWe have also been super focused on improving the quality and performance of Copilot. Over the last three quarters, user satisfaction scor …",
        "publishedAt": "2026-07-29T23:08:09.380Z",
        "author": {
          "name": "Satya Nadella",
          "url": "https://www.linkedin.com/in/satyanadella"
        },
        "engagement": {
          "likes": 10710,
          "comments": 436,
          "reposts": null
        },
        "id": "7488369807969370112"
      }
    ],
    "nextCursor": "2",
    "hasMore": true
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
urlstring YesLinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
limitintegerNoMax items to return (default 20, max 100). Only the ~10 posts the public page shows are available. Flat 1 credit.
cursorstringNoPagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 5). A null nextCursor means the end of the list. Only the recent posts LinkedIn shows logged-out visitors (about 10) are available.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Frequently asked questions

What does the LinkedIn Company Posts API do?

The LinkedIn Company Posts API lets you list items in bulk with metadata from a public LinkedIn post using one GET request to /v1/linkedin/company-posts. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the LinkedIn Company Posts API cost?

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a LinkedIn API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.

Why do I get about 10 posts even with limit=100?

A company page shows logged-out visitors only its most recent posts — about 10. Older posts are visible only to signed-in members, and Captapi never signs in. When you reach the last of the public posts, hasMore is false and truncatedReason is public_page_limit. There is no deeper pagination.

How do I page through them?

Use a smaller limit and pass nextCursor back as cursor. totalReturned, nextCursor and hasMore are on every 200; a null nextCursor is the end.

What does degraded / degradedReason=deadline mean?

When the clock runs out after some posts were read, we return them with degraded=true instead of a 503 that throws away a listing we already have. Retry if you need every post's engagement read. A timeout with zero rows is 503 at 0 credits.

I got 200 with posts: [] and truncatedReason no_public_posts. Is that a failure?

No — it is LinkedIn's answer. The company page exists but shows no posts to logged-out visitors, so there is nothing to retry. The note names the page we read (name and follower count) because the usual cause is a stub or duplicate registration: company/oecd is a ~600-follower stub while the OECD that posts daily lives under another slug. Check the URL; 0 credits.

The URL I passed 404s, but I got a 503 instead of "Company not found". Why?

LinkedIn said 404 for your slug, and we tried to find the live page name behind it (our-world-in-data lives at ourworldindata). When LinkedIn's edge rate-limits the candidate page we need to check, we cannot tell "wrong name" from "blocked", so the response is a retryable 503 that lists the names tried — never an invented 404. A 404 is returned only when every candidate was checked.

What does a call cost?

A flat 1 credit for a page of posts. A page that shows no posts publicly is 0 credits, and failed calls are 0 credits.

Is the LinkedIn Company Posts API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to get LinkedIn company posts?

Start free with 100 credits — no credit card required.

Get your free API key