LinkedIn API guide

LinkedIn API explained, and when you don't need it

Does LinkedIn have an API? Yes: with the LinkedIn API you post a video to a member's feed or a Page through the Videos API, with an access token a member grants through 3-legged OAuth. If you just want your business posting on LinkedIn, Postdom is the simpler answer: it turns your website into ready-to-post videos and slideshows in your brand and posts the ones you approve.

Does LinkedIn have an API?

Yes. The Videos API uploads the file and returns a video URN that a post then references. The permission comes from a member, not from your app.

The permissions LinkedIn lists for the Videos API, in LinkedIn’s own words
PermissionLinkedIn’s descriptionWhat that means in practice
w_member_socialPost, comment, and like posts on behalf of authenticated memberThe member-feed case. LinkedIn additionally requires that the caller matches the video owner for videos with member URN owners.
w_organization_socialPost, comment, and like posts on behalf of an organization. Restricted to the company admin, DSC poster, or content adminThe Page case, and a different authorization story: LinkedIn checks for ADMIN or DSC permissions on the company page.
rw_adsCreate ads and creatives for a sponsored accountAdvertising, not organic posting. It is listed on the same page, which is part of why the page's specification block is easy to misread.
r_adsRead an authenticated member's Ad AccountAlso advertising. Restricted to members holding a named role on the ad account.

LinkedIn API access token

A member grants the token through 3-legged OAuth. They must accept every scope you ask for at once, so ask for as few as you can. Asking for a new scope later cancels the tokens you already have.

LinkedIn says it does not issue long-lived tokens. Tokens currently last sixty days, and refresh tokens are limited to some partners, so plan for members to reconnect.

LinkedIn Videos API

LinkedIn documents a four-step multipart upload. Read it before you build: the failure points are spread across the steps. Every request also carries a dated Linkedin-Version header, and old versions are retired on a schedule.

  1. 1

    Initialize the upload

    POST to /rest/videos?action=initializeUpload declaring the owner URN and fileSizeBytes. LinkedIn returns a video URN, one or more upload URLs and an upload token. fileSizeBytes is required, and its documentation is where LinkedIn states the maximum allowed video size.

  2. 2

    Split the file into parts

    LinkedIn's own instruction is to split the file into 4 MB pieces. The response's uploadInstructions carry a byte range per part, beginning at 0–4194303, so the parts and the ranges have to line up.

  3. 3

    Upload each part and keep its ETag

    PUT each part to its upload URL. LinkedIn returns an ETag header per part, and those become the uploadedPartIds in the next step, in the same order as the instructions. Upload URLs expire, and uploading to an expired URL returns 401.

  4. 4

    Finalize, then read the asset back

    POST to /rest/videos?action=finalizeUpload with the upload token and the ordered part IDs. Afterwards a GET on the video URN reports status as WAITING_UPLOAD, PROCESSING, AVAILABLE or PROCESSING_FAILED, with processingFailureReason present only in the failure case. Finalizing is not the same as the asset being servable.

Which LinkedIn video numbers you can trust

LinkedIn versions its API but not the help pages that carry most video figures. The widely quoted duration and file-size ranges sit in a block that matches the video ads specifications, not organic posting.

Four first-party sources, four different scopes
SourceVersioned?Scoped toWhat it is
The Videos API referenceVersionedThe API itselfRequests carry a Linkedin-Version header in YYYYMM form, and the documentation is published per version. This is the one LinkedIn source with a version attached, which is why the file-size maximum on initializeUploadRequest.fileSizeBytes is the strongest video fact available.
“Video File Size Specifications”, on that same pageShown inside the versioned API pageHigh-level non-CTV video sizing; exact API use-case boundary is not statedIt states 3–30 minutes, 75 KB–500 MB and MP4, links to Connected TV Ads specifications for the other case, and points readers to Video Ads Advertising Specifications. Those numbers match the ads page, but the block itself does not say it applies only to ads. The same API page later states 5 GB on fileSizeBytes, leaving an unresolved documentation ambiguity.
“Video specifications for your LinkedIn Pages and Career Pages”UndatedPages, not member profilesA help article with no version and no published date. It is also the source that withdraws formats in words, and a withdrawal is safe to act on in a way a maximum is not: honouring it can only narrow what gets sent.
“Video sharing troubleshooting”UndatedSharing, split by desktop and mobileWhere the resolution range and the aspect-ratio bounds come from. It splits its minimum duration by client rather than by surface, which is a further reason not to read a single organic bound off it.

One further limit on the versioned source itself. LinkedIn’s rendered documentation names the repository it is generated from, MicrosoftDocs/linkedin-api-docs, and that repository is not public: both the page and the GitHub API return 404, checked . So even the versioned reference has no readable history — you can see what it says today, not when it changed.

Questions about the LinkedIn API

Does LinkedIn have an API for posting video?

Yes. The Videos API uploads the file and returns a video URN for a post to reference. A member grants access through 3-legged OAuth, with w_member_social for their own feed or w_organization_social for a Page.

Can a member grant only part of a request?

No. LinkedIn requires consent to every requested scope at once, so request the fewest you need.

How long does LinkedIn access last?

LinkedIn currently issues access tokens for sixty days and does not issue long-lived tokens. Refresh tokens are limited to some partners.

Does Postdom call the LinkedIn API?

No. Postdom hands the finished video and text to a publishing provider that holds the LinkedIn connection. That is also why Postdom reports no LinkedIn metrics.

Does Postdom have an API too?

Yes. Postdom's REST API and MCP server are included on every plan, for developers who post through their own AI agent.

Free LinkedIn API alternative: post with Postdom

Postdom's Free plan has no card and makes 1 post a month on 2 accounts, on any platform, so a LinkedIn profile or Page can be one of them. You skip OAuth, token refreshes and the multipart upload: approve the post and Postdom publishes it.

Post to LinkedIn without building an integration

Postdom reads your brand from your website and fills your For You feed with ready-to-post videos and slideshows. You approve, edit or skip each one, and Postdom posts what you approve to TikTok, Instagram and more.

So the enforced set is deliberately small. Postdom rejects a LinkedIn video that is not video/mp4 before handing it over, because the withdrawal of the other formats is a first-party statement that can only narrow what gets sent. Official source; checked .

Nothing posts until you approve it. Start on Free with no card: 1 post a month on 2 accounts, on any platform, LinkedIn included.

Start free with Postdom

Paste your website and see your first post today.