A LinkedIn post holds up to 3,000 characters, spaces and line breaks included, but the feed shows only about the first 210 on desktop before a "see more" link, so the opening lines decide whether the rest is read. Through the API the same 3,000 applies to the post's text, with up to 20 pictures or one video attached, never both. Everything below was checked on 8 October 2026 against LinkedIn's Help Center and its Posts API documentation, and against the rules Preflight runs before a LinkedIn post leaves.
The numbers ranking pages repeat (3,000, about 210, 1,250 for a comment) are mostly right. What they leave out is what a tool that posts for you has to know: which characters are markup, what the API refuses, and what it cannot do at all.
The limits at a glance
| Rule | Limit | Notes |
|---|---|---|
| Post text | 3,000 characters | LinkedIn Help states the figure; it counts spaces and line breaks. Preflight refuses a longer post and a post with no text |
| Fold in the feed | About 210 characters on desktop, about 140 in the app | An observation from the feed, not a rule; see below |
| Hashtags | No limit found | Neither LinkedIn Help nor the Posts API documentation gives one; hashtags count as ordinary text |
| @mentions | Need a LinkedIn URN | The API can mention a member or a Page by URN. Preflight does not send mentions, so an @ is written as plain text |
| Pictures | 1 to 20 per post | Two or more go out as a multi-image post, which LinkedIn documents as 2 to 20. JPEG, PNG or GIF, fewer than 36,152,320 pixels |
| Picture file size | 10 MB (Preflight) | Our check; the documents we read give a pixel limit, not a file size |
| Alt text | 4,086 characters | Maximum in the API; LinkedIn recommends under 120 |
| Video | One MP4, 3 seconds to 30 minutes | 75 KB to 500 MB. Not combined with pictures |
| Document (PDF carousel) | Allowed by the API | No size or page limit found; Preflight does not post documents yet |
| Link | Becomes a link card | Only when the post has no pictures or video; the API does not scrape a preview |
| Article (the long-form product) | 125,000 characters | LinkedIn Help. A separate product from a post; Preflight does not publish it |
| Comment | Not verified | Third-party pages say 1,250 or 1,750; we found no LinkedIn page for posts |
| Headline | Not verified | Pages disagree (120 or 220) |
Where the feed cuts a post
The 3,000 is a ceiling. What a reader sees without acting is much shorter: the feed shows a few lines of a post and then a "see more" link. About 210 characters, three lines, on desktop and about 140 in the mobile app is what the caption preview uses, and what other pages report in the same range.
This is an observation of how the feed is drawn, not a number from LinkedIn's documents, and it is not stable. The cut falls on a line count, not a character count: a post that starts with short lines folds after fewer characters, one that starts with a dense paragraph folds after more. LinkedIn can change the layout without notice, and no API field reports where the fold fell.
What follows for writing is practical and does not depend on the exact number:
- Put the claim, the number or the question in the first line. The rest of a post is read only by people who tapped.
- Keep the first line short enough to survive the narrower mobile cut, and make it a complete thought.
- Treat hashtags at the end as invisible in the feed until someone taps: they sit behind the fold in any post longer than a few lines.
To see where your own text folds, paste it into the caption preview; to count it, use the character counter.
What the API takes
A post made through the API is a request to LinkedIn's Posts API with an author, the text (called commentary), a visibility and a lifecycle state. For a personal profile the author is the member and the permission is w_member_social, which LinkedIn describes as posting, commenting and liking on behalf of an authenticated member. An app can get it without a review.
What a profile post can contain through the API:
- Text only.
- One picture, uploaded first to get an image URN, then referenced from the post.
- Several pictures, as a multi-image post of 2 to 20.
- One video, uploaded in parts of 4 MB and finalised before the post is created.
- A link, sent as an article with a source, a title and optionally a description and thumbnail.
- A first comment, posted under the new post with the same permission.
- A deletion. Deleting a post that is already gone returns success, so a retry is safe.
Three things it does not do:
- Company Pages. A Page post needs
w_organization_social, which LinkedIn grants to apps through a review of its Community Management API. A self-serve app does not get it. Preflight posts to personal profiles only and does not show a Page option; the reasons are on the LinkedIn integration page. - Link previews. The Posts API documentation says it does not support URL scraping for article posts; the tool must set the title, description and thumbnail itself. A link card therefore shows what the tool sent, not what the page's own tags say. Preflight sends the first line of the post as the title, cut to 200 characters.
- A publish time. Creation accepts only a published post. Draft and failed states exist in responses, but nothing in the creation request holds a post for later. A scheduler keeps the post itself and calls the API at the minute it is due. LinkedIn's own app can schedule a post; that is a feature of the app, not of the API.
One more difference worth knowing: the Posts API can update the commentary of a post that is already live, using a partial update. Preflight does not offer editing yet, so a changed post is deleted and posted again.
What it refuses
LinkedIn's documentation lists these errors for post creation: 400 for a field that is missing, blank, too long (FIELD_LENGTH_TOO_LONG) or a URN of the wrong type, 401 for a missing or empty token, 403 ACCESS_DENIED when the permission or the Page role is missing, 404 for a post that does not exist, 409 for a write conflict to retry, 422 for a request that is well-formed but cannot be processed, and 429 for too many requests. Preflight treats 401 as an expired connection that needs reconnecting, 403 as a missing permission, and a 426 as an API version LinkedIn no longer accepts. LinkedIn dates each API version by month and retires old ones; its documentation currently warns that the October 2025 version stops on 15 October 2026. Preflight sends version 202607 and can move it without a deploy.
The documentation does not state a number for the commentary length in its field table. The 3,000 comes from LinkedIn Help, and it is what Preflight enforces.
Special characters and formatting
The commentary is not plain text. LinkedIn calls the format "little", and it gives a handful of characters meaning. The reserved characters are the vertical bar, braces, at sign, square brackets, parentheses, angle brackets, hash, backslash, asterisk, underscore and tilde: | { } @ [ ] ( ) < > # \ * _ ~. LinkedIn's guide says all of them must be escaped with a backslash to be treated as text, even where they are not part of a mention or hashtag. A bullet list typed with an asterisk is its own example in the documentation: the asterisk is written \*.
Two elements are real markup. A mention is @[Name](urn:li:...), and LinkedIn only turns it into a link when the name matches the member's or Page's name, case sensitive; otherwise it shows as plain text. A hashtag is stored as a template, {hashtag|\#|coding}, which is how it stays clickable.
Preflight's adapter escapes every reserved character in what you type and rewrites each hashtag into the template, so 50% (maybe) and snake_case reach the feed as typed and #coding stays a link. Because mentions need a URN that Preflight does not look up, an @name is sent as plain text and will not notify anyone.
Emoji are ordinary characters in the text. One counting caveat: Preflight measures a LinkedIn post as JavaScript does, in UTF-16 units, so an emoji outside the basic range counts as two. we did not find LinkedIn documenting how it counts, so a post within a few characters of 3,000 that is full of emoji may be flagged by the check while LinkedIn would take it.
Bold and italic are not part of the commentary format. Text styled with Unicode lookalike letters is a workaround that we have not tested, and we make no claim about how screen readers handle it.
How Preflight checks a LinkedIn post
The composer and the public API run the same checks, and they run on every plan:
- Text: 3,000 characters at most, and not empty. A LinkedIn post with only a picture is refused because LinkedIn needs text.
- Pictures: JPEG, PNG or GIF; 10 MB each; under 36,152,320 pixels. A WebP is flagged because LinkedIn refuses it. More than 20 pictures is warned as dropped, and each problem names the picture by its number.
- Video: MP4 only; 3 seconds to 30 minutes; 75 KB to 500 MB. LinkedIn's Videos API accepts an upload request of up to 5 GB, but its own file specification says 500 MB, and Preflight enforces the smaller figure.
- Pictures with a video: refused before upload, not trimmed.
- Alt text: truncated to 4,086 characters.
To try the text rules without an account, use the character counter. Connecting a profile and everything that goes out is on the LinkedIn integration page; how queuing and delivery work is on scheduling LinkedIn posts. Limits for every network are collected at limits, and the free plan includes LinkedIn checks, as the pricing page shows. For other networks with a hard cap, see Bluesky and Threads.
The LinkedIn API terms in one paragraph
LinkedIn's API Terms of Use, section 3.1, list among the things a developer may not do using the APIs to "automate posting on the LinkedIn Services." The document we checked on 8 October 2026 states no exception for approved apps. We cannot say how LinkedIn applies that clause to scheduling tools, and nothing here is a statement about enforcement; it is why access to Company Pages goes through a vetted review rather than a form. Preflight sends only what a person wrote and chose to send, at the time they chose. The wider summary is under "The platform's rules in short" on the integration page, and this is not legal advice.
Sources opened for this page: LinkedIn Help, post and share updates, the Posts API and the little text format. Last checked 8 October 2026.
Questions people ask
- What is the LinkedIn post character limit?
- 3,000 characters for the text of a post, counting spaces and line breaks. LinkedIn Help states the figure and points to articles, which allow 125,000, for anything longer. Preflight refuses a longer LinkedIn post before it is scheduled.
- How many characters show before 'see more'?
- About 210 on desktop and about 140 in the mobile app, in our observation of the feed. It is not an API rule: the cut falls on a line count, so short opening lines fold earlier, and LinkedIn can change it without notice.
- What is the LinkedIn article character limit?
- LinkedIn Help says articles are limited to 125,000 characters. An article is a separate long-form product from a post, and a link shared through the Posts API is a link card, not an article in that sense. Preflight does not publish LinkedIn articles.
- Can you schedule LinkedIn posts through the API?
- Not natively. The Posts API accepts a new post as published only, with no publish time, so a scheduler keeps the post and sends it at the due time. Posting to a personal profile needs w_member_social; Company Pages need an approved Community Management API app.
- Why was my LinkedIn post cut off or shown with missing characters?
- Most often the feed folded it behind 'see more'. If characters are missing from the text itself, the cause can be unescaped markup: LinkedIn reserves characters such as brackets, parentheses, @, #, asterisk and underscore in the API's commentary, and a tool that does not escape them can lose or alter text. Preflight escapes them.