Skip to main content

LinkedIn

Publish posts to a LinkedIn member profile or company page, comment on them, and read their reactions, comments and page analytics.

Connect LinkedIn to publish and measure your own content: post text, a shared link or an uploaded image as a member or as a company page, list and delete what you posted, comment and reply, read reaction and comment tallies for any of your posts, and read impressions, clicks and engagement rate for company-page posts. Publishing and measurement only - LinkedIn offers no API to read the feed or search other people's posts.

Connect

Credential fieldRequiredWhere it comes from
Access token (ACCESS_TOKEN)YesA 3-legged OAuth access token from your LinkedIn app. Expires 60 days after it is issued - without programmatic refresh tokens the connection must be re-made by hand before then.
SettingRequiredWhat it is
Default author URN (DEFAULT_AUTHOR_URN)NoThe identity posts and comments are authored as when a tool call omits one: urn:li:person:{id} for a member, urn:li:organization:{id} for a company page.

Tools

ToolAccessWhat it does
Get me (yekar.linkedin.get-me)ReadThe member this connection is signed in as, and - the reason to call it - their author URN (urn:li:person:…), which is what Create post needs to post as a person. Reads the OpenID Connect profile, so it needs the 'Sign In with LinkedIn using OpenID Connect' product on your app. To post as a company page instead, use List organizations.
List organizations (yekar.linkedin.list-organizations)ReadThe company pages this member administers, with the page URN (urn:li:organization:…) that Create post and Get post analytics need. Only APPROVED roles can actually act - a role still in REQUESTED state is listed with that state rather than hidden, because 'you have no pages' and 'your page role is not approved yet' are different answers. Needs the Community Management API product on your app.
Create post (yekar.linkedin.create-post)WritePublish a post to LinkedIn as a member or as a company page, optionally sharing a link or an image uploaded with Upload image. The post goes live immediately - LinkedIn's API has no scheduling, so a scheduled post is a scheduled AUTOMATION. Posting as a page needs the Community Management API product plus an approved admin role on that page; posting as a member needs the Share on LinkedIn product. Returns the post URN, which is the handle for comments, metrics, analytics and deletion.
Get post (yekar.linkedin.get-post)ReadRead one post by URN: its text, author, visibility, lifecycle state and what it carries (an image or a shared link). Reads posts authored by identities this token can act for - LinkedIn has no public post-lookup API, and answers 404 for anything this member cannot see, which is indistinguishable from a deleted post.
List posts (yekar.linkedin.list-posts)ReadA page of the posts written by one authorized member or company page, newest first. Personal posts require the restricted r_member_social permission; Share on LinkedIn and w_member_social only allow publishing. Company-page posts require r_organization_social and an approved page role. A permission denial means the posts were not retrieved; do not retry unchanged permissions or report an empty result. LinkedIn reports no reliable total, so this says whether more remain rather than how many there are.
Delete post (yekar.linkedin.delete-post)WritePermanently delete a post. LinkedIn has no trash and no undo - the post, its comments and its reactions all go, and the engagement it accumulated is not recoverable. The author identity behind this connection must own the post.
Upload image (yekar.linkedin.upload-image)WriteUpload an image so a post can carry it, and return its urn:li:image:… for Create post. Unlike most social APIs LinkedIn will NOT fetch a media URL for you - the bytes must be uploaded - so this tool downloads the URL you give it and forwards the bytes. The owner must be the same identity that will author the post: LinkedIn rejects a post whose image belongs to someone else.
Create comment (yekar.linkedin.create-comment)WriteComment on a post, or reply to an existing comment, as a member or as a company page. The comment is public immediately. Commenting as a page needs an approved page role; commenting on someone else's post needs nothing beyond a valid token, but LinkedIn will refuse if the post's author has restricted comments.
List comments (yekar.linkedin.list-comments)ReadA page of top-level comments on a post, with each comment's URN (the handle for replying with Create comment). Replies to a comment are NOT included - read them by listing comments with that comment's URN as the post. For the overall like and comment tallies use Get social metrics; this returns a page, never a count.
Get social metrics (yekar.linkedin.get-social-metrics)ReadReaction and comment counts for one post, as LinkedIn itself counts them - not derived from any list this integration fetched. Works for member posts and page posts alike, which is what makes it the right tool for a member post: Get post analytics covers impressions and clicks but exists only for company pages.
Get post analytics (yekar.linkedin.get-post-analytics)ReadImpressions, clicks, reactions, comments, shares and LinkedIn's own engagement rate - for one page post, or as the page's lifetime rollup when no post is given. COMPANY PAGES ONLY: LinkedIn publishes no equivalent API for a member's own posts, so for those use Get social metrics (reactions and comments), which is genuinely all that is available. Needs the Community Management API product and an approved analytics role on the page.

Notes

  • Create an app at linkedin.com/developers, associate it with the company page that will own it, and request the API products you need: 'Sign In with LinkedIn using OpenID Connect' for the profile, 'Share on LinkedIn' for publishing member posts, and 'Community Management API' for company-page actions (access is reviewed).
  • Reading personal posts requires r_member_social, a restricted permission granted only to approved apps. Share on LinkedIn grants w_member_social for publishing and does not grant this read permission. Check the scopes available to your app before relying on List posts or other member-content reads.
  • Generate a 3-legged OAuth access token from the app's Auth tab (Token Generator, or your own OAuth flow) with the scopes your app has been granted: openid, profile, email for identity; w_member_social for member publishing; r_member_social for member reads when approved; and r_organization_social, w_organization_social, rw_organization_admin for page actions as needed. After new permissions are granted, re-authorize with those scopes and replace the token on this connection.
  • THE TOKEN EXPIRES IN 60 DAYS. Unless your app is approved for programmatic refresh tokens, nobody can renew it without re-authorizing, and every tool starts failing the day it lapses. Plan on reconnecting, or apply for refresh tokens.
  • Posts are authored as a URN: urn:li:person:… for a member (Get me returns yours) or urn:li:organization:… for a company page (List organizations returns the pages you administer). Set the Default author URN property if this connection always posts as the same identity.
  • Posting as a page needs an APPROVED admin or content role on it - a role still in REQUESTED state is listed by List organizations but cannot post.
  • Images are not fetched by LinkedIn from a URL the way other networks do: run Upload image first and pass the urn:li:image:… it returns to Create post.
  • There is no scheduling in LinkedIn's API. Create post publishes immediately - schedule the automation instead.
  • Reads require access to the requested author. If LinkedIn refuses a read, the content was not retrieved: report the access gap and do not infer that the author has no posts or that there are no opportunities. Retrying the same denied permissions will not resolve the gap. This integration cannot monitor mentions, competitors or hashtags.
  • Analytics split by identity: company-page posts get impressions, clicks and engagement rate (Get post analytics); member posts get reactions and comments and nothing else (Get social metrics). That is a LinkedIn limit, not a missing tool.