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/posts1 credit Failed requests are free
About this endpoint
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.
LinkedIn company posts API 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.
Other LinkedIn endpoints
- ProfileGET /v2/linkedin/profiles
- ProfilesGET /v2/linkedin/profiles/batch
- Resolve personGET /v2/linkedin/people/resolve
- Profile postsGET /v2/linkedin/people/{entityId}/posts
- Profile commentsGET /v2/linkedin/people/{entityId}/comments
- Employment historyGET /v2/linkedin/people/{entityId}/employment-history
- RecommendationsGET /v2/linkedin/people/{entityId}/recommendations
- InterestsGET /v2/linkedin/people/{entityId}/interests