> **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/profiles-posts>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/linkedin/profiles-posts.mdx>

---

# LinkedIn profile posts API

Pull a public LinkedIn person feed by entityId and get structured activity JSON — without scraping the timeline yourself.

`GET /v2/linkedin/people/{entityId}/posts` takes the person `entityId` in the path. Get that id from `GET /v2/linkedin/profiles` (`data.profile.entityId`) or `GET /v2/linkedin/people/resolve`. Optional query: `cursor` or `start` (not both). Branch on `data.lookupStatus` before you write — `found` vs `not_found`. When found, rows are in `data.activities`. Continue with `data.page.nextCursor` when `data.page.hasMore` is true.

Company feeds stay on `GET /v1/linkedin/companies/posts`. The person identity card is `GET /v2/linkedin/profiles`. A single post or article permalink is `GET /v1/linkedin/posts`. Keyword discovery is `GET /v1/linkedin/posts/search`. Pricing is on the OpenAPI registry for this route — trust `meta.creditsCharged`.

## Request

- **Endpoint:** `GET /v1/linkedin/profiles/posts`
- **Credits:** 2 credits per request
+2 credits per returned record
Up to 200 records per request
Max 402 credits
Default limit: 10
Failed requests are free
- **Input:** by profile URL
- **Platform page:** [/platforms/linkedin](https://www.socialfetch.dev/platforms/linkedin)

## FAQ

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

Call `GET /v2/linkedin/people/{entityId}/posts` with your Social Fetch API key (`x-api-key`) and a person `entityId`. Optionally pass `cursor` or `start`. Read `data.lookupStatus`, `data.activities`, and `data.page` in the JSON response. See the API docs for parameters.

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

This v2 route is a flat completed-lookup price (see the credits blurb on this page). Always trust `meta.creditsCharged` on the response over a spreadsheet estimate.

### What identifier does the LinkedIn profile posts endpoint accept?

A person `entityId` in the path. Resolve it from `GET /v2/linkedin/profiles` or `GET /v2/linkedin/people/resolve`. Company page URLs do not belong here — use `GET /v1/linkedin/companies/posts` for those feeds.

### What fields are in each LinkedIn profile activity?

Coverage follows what is publicly visible on that person's activity. Use the API docs outline for the typed activity record. Do not assume v1 post-card field names.

### Profile posts vs company posts vs single post lookup?

Use this route for a person feed after you have `entityId`. Use `GET /v1/linkedin/companies/posts` for a company page feed. Use `GET /v1/linkedin/posts` when you already have a post or article permalink. Use `GET /v1/linkedin/posts/search` when you have a keyword and need candidate permalinks.

### How does pagination work?

Send `cursor` or `start`, not both. When `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` on the next call for the same `entityId`.

### What happens when a LinkedIn profile has no public posts?

The call returns a typed `lookupStatus` of `not_found` when nothing usable came back. Keep `meta.requestId` if you need to retry or escalate that row.
