A LinkedIn post that is created through the API is written in what LinkedIn calls little text, and in that format some characters are markup: parentheses, brackets, asterisks, underscores, tildes, pipes, the at sign and a few more. An unescaped one makes LinkedIn reject the post or silently drop part of it. The usual symptom is a sentence that goes missing after a stray bracket. This page explains the rule, what has to be escaped and how a tool handles it, so your text arrives as you wrote it.
Why this happens
LinkedIn's post text field does not take plain text. It reads some characters as instructions, for mentions and hashtags and formatting, so a character that is meant literally has to be marked as literal. In the browser you never see this, because the editor does it for you. A script or a tool that sends text straight to the API has to do it itself.
What to look for
| In your text | What can go wrong |
|---|---|
| Parentheses and brackets | The text between them can disappear |
| Asterisks, underscores, tildes | Read as formatting marks |
| Pipes | Read as part of a markup structure |
| The at sign | Read as a mention, so a typed @name is not a link to the person |
| Hashtags | Stay clickable only when written in LinkedIn's own form |
What a tool must do
- Escape every markup character that is meant as text.
- Write hashtags in LinkedIn's form so that they stay clickable.
- Count the limit of 3,000 characters on the text you send, since the escapes are part of it.
- Treat an @mention honestly: a mention that is typed in the text is not turned into a link to a person.
Preflight does the first two for you, and the composer counts the 3,000 characters while you type. If you write your own integration, test a post that contains each of these characters before you trust it.
How to check a draft
Paste it into the LinkedIn character counter to see how many of the 3,000 characters it uses and where the feed folds it. The rest of what a post can hold, such as 20 pictures, one video, a document or a poll, is on the LinkedIn limits page and in scheduling to LinkedIn. The native scheduling window is in scheduling LinkedIn posts.
Profile or Page
Preflight posts to personal profiles today. LinkedIn's Company Pages need a reviewed product, the Community Management API, so a Page is a separate question described on the LinkedIn scheduling page.
Based on the LinkedIn scheduling page of this site and LinkedIn's post text format, checked 2 November 2026.
Questions people ask
- Why does part of my LinkedIn post disappear when I post through the API?
- LinkedIn treats characters such as parentheses and brackets as markup. An unescaped one can make LinkedIn drop text or reject the post, so the characters have to be escaped.
- Which characters need escaping in a LinkedIn API post?
- Parentheses, brackets, asterisks, underscores, tildes, pipes, the at sign and a few more are read as markup and have to be escaped when meant literally.
- Why is my @mention not a link on LinkedIn?
- An @mention typed into the text is published as plain text. A real mention needs LinkedIn's own mention markup with the person's identifier.
- How long can a LinkedIn post be?
- 3,000 characters, counted on the text that is sent, including escapes.