> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/linkedin/companies-posts>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/linkedin/companies-posts.mdx>

---

# LinkedIn company posts API

Page through a public LinkedIn company feed by vanity URL and get structured JSON — post id, permalink, text, and publish time — without scraping the company timeline yourself.

`GET /v1/linkedin/companies/posts` takes a company `url` query param (full `/company/{slug}` URL, bare slug, `company/{slug}`, or `@slug`) and an optional `page` (1-based, max 7). Branch on `data.lookupStatus` before you write — `found` vs `not_found`. When found, `data.posts` is an array of items with `id`, `url`, `text`, and `publishedAt` when LinkedIn exposes them. `data.page` carries `currentPage`, `nextPage`, `hasMore`, and `maxPage` (always 7). An empty `posts` array with `lookupStatus: found` means that page had nothing public to return, not a hard miss on the company.

This route is the paginated company feed. The company identity card is `GET /v1/linkedin/companies` (it may include a small `recentPosts` sample only). A single post or article permalink is `GET /v1/linkedin/posts`. Keyword discovery is `GET /v1/linkedin/posts/search`. Schools and organization-guest pages belong on `GET /v2/linkedin/organizations/resolve` then `GET /v2/linkedin/organizations`, not here. Pricing is 1 credit per successful request; each page is a separate charge — trust `meta.creditsCharged`.

## Request

- **Endpoint:** `GET /v1/linkedin/companies/posts`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by company URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/posts/get)
- **Platform page:** [/platforms/linkedin](https://www.socialfetch.dev/platforms/linkedin)

## FAQ

### How do I list LinkedIn company posts via API?

Call `GET /v1/linkedin/companies/posts` with your Social Fetch API key (`x-api-key`), a company `url` query param, and optional `page`. Read `data.lookupStatus`, `data.posts`, and `data.page` in the JSON response. See the API docs for parameters.

### How much does the LinkedIn company posts endpoint cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

### How does pagination work on LinkedIn company posts?

Pagination is page-based, not cursor-based. Pass `page` as a 1-based integer up to 7. When `data.page.hasMore` is true, request `data.page.nextPage` on the next call. `data.page.maxPage` is always 7 for this operation.

### What fields are in each LinkedIn company post?

Each item can include a stable activity `id`, canonical public `url`, full `text` body when available, and `publishedAt` as an ISO-8601 timestamp when LinkedIn exposes it. Coverage follows what is publicly visible on that company page.

### Company posts vs company page vs single post lookup?

Use this route to page a company feed. Use `GET /v1/linkedin/companies` for the company card (name, metrics, optional small recent-post sample). Use `GET /v1/linkedin/posts` when you already have a post or article permalink.

### What URL format does the LinkedIn company posts endpoint accept?

Pass a public `/company/{slug}` URL, the vanity slug alone, `company/{slug}`, or `@slug`. Numeric company ids are rejected. Person `/in/…` URLs, schools, and organization-guest pages belong on other LinkedIn routes.

### What happens when a LinkedIn company page is not found?

The call returns a typed `lookupStatus` of `not_found` with no feed to upsert. Keep `meta.requestId` if you need to retry or escalate that row. An empty `posts` array with `lookupStatus: found` is a resolved company on a page with no public posts, not a miss.
