---
title: "LinkedIn Company Posts API"
method: GET
path: "/v1/linkedin/company-posts"
tags: ["LinkedIn"]
---

# LinkedIn Company Posts API

`GET /v1/linkedin/company-posts`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/linkedin/company-posts`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

The recent posts a company page shows logged-out visitors (about 10), with engagement{likes,comments}.

Pass a LinkedIn company URL and get the recent public posts its page shows a logged-out visitor — about 10. Older posts are not available: LinkedIn only shows them to signed-in members, and Captapi never signs in. Each row always includes id, url (www.linkedin.com — locale hosts like fr. are canonicalised), text, publishedAt, author{name,url}, and engagement{likes,comments}. likes and comments are real public counts (0 is a real zero). Homepage structured data often ships text without counts; we read each post page for reaction/comment totals. Every 200 includes totalReturned, nextCursor and hasMore (numeric offset). You can page through the posts the guest page shows with a smaller limit; when you reach the last of them, hasMore is false and truncatedReason is public_page_limit with a note — there is no deeper pagination. timings{nativeMs,totalMs} name the fetch. If the clock runs out after some posts were read, we return them with degraded=true and degradedReason=deadline. A page that exists but shows no posts publicly is 200 with an empty list, truncatedReason=no_public_posts and 0 credits. A page we could not read (including a sign-in wall) is 502 UPSTREAM_UNAVAILABLE, retryable, 0 credits. A company URL LinkedIn 404s is resolved to its live page name when there is a safe match (resolvedFrom), otherwise 404. Flat 1 credit. Pass cache=true for the 24h shared cache.

Docs: https://captapi.com/apis/linkedin-company-posts

## Query parameters

- `url` string, required
- `limit` integer
- `cursor` string
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `company` string: Company. Example: "microsoft".
    - `totalReturned` integer: Posts on this page (length of posts[]). Always present on 200.
    - `posts` object[]
      - `platform` string: Platform identifier for this response (matches the endpoint's platform).
      - `type` string: Content type of the item.
      - `url` string: Canonical https://www.linkedin.com/posts/… — locale subdomains (fr., de., uk.) are rewritten to www.
      - `text` string: Text content.
      - `publishedAt` string: Publish date (ISO 8601) when the platform exposes an absolute timestamp.
      - `author` object: Author name or handle.
        - `name` string
        - `url` string: Canonical https://www.linkedin.com/posts/… — locale subdomains (fr., de., uk.) are rewritten to www.
      - `engagement` object: Always keyed {likes,comments,reposts}. likes/comments read from each post page when the homepage omits them; 0 is a real zero. reposts has not been observed non-null on this guest surface.
        - `likes` integer
        - `comments` integer
        - `reposts` unknown
      - `id` string: Id of this posts item.
    - `nextCursor` string: Numeric offset for the next page (e.g. "5") within the posts the public page shows. null means the end of the list — not a missing key.
    - `hasMore` boolean: true when nextCursor is set. false + nextCursor null means every public post is in hand.

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
