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.
| Permission | LinkedIn’s description | What that means in practice |
|---|---|---|
w_member_social | Post, comment, and like posts on behalf of authenticated member | The member-feed case. LinkedIn additionally requires that the caller matches the video owner for videos with member URN owners. |
w_organization_social | Post, comment, and like posts on behalf of an organization. Restricted to the company admin, DSC poster, or content admin | The Page case, and a different authorization story: LinkedIn checks for ADMIN or DSC permissions on the company page. |
rw_ads | Create ads and creatives for a sponsored account | Advertising, 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_ads | Read an authenticated member's Ad Account | Also 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
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
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
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
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.
| Source | Versioned? | Scoped to | What it is |
|---|---|---|---|
| The Videos API reference | Versioned | The API itself | Requests 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 page | Shown inside the versioned API page | High-level non-CTV video sizing; exact API use-case boundary is not stated | It 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” | Undated | Pages, not member profiles | A 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” | Undated | Sharing, split by desktop and mobile | Where 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.