Network Limits
Social counts each channel’s text the way its network does, and checks the network’s rules before a post is saved, so a post isn’t refused by the network when it is due.
Limits
Section titled “Limits”| Network | Characters | A link counts as | How characters are counted | Image | Alt text sent |
|---|---|---|---|---|---|
| X | 280 | 23 | Code points; characters above U+10FF (emoji, Chinese, Japanese, Korean and similar) count as 2 | Optional | Yes |
| Bluesky | 300 | its full length | Characters as people see them (graphemes): an emoji counts as 1 | Optional | Yes |
| Mastodon | 500 | 23 | Code points: an emoji counts as 1 | Optional | Yes |
| 3,000 | its full length | Code points | Optional | Yes | |
| 63,206 | its full length | Code points | Optional | No | |
| 2,200 | its full length | Code points | Required | Yes |
A link is any http:// or https:// address in the text.
A network Social doesn’t know (for example a custom network registered without its own limits) gets 3,000 characters, counted as code points.
How the link is sent
Section titled “How the link is sent”Each network takes the post’s link in its own way:
| Network | Link handling | What happens |
|---|---|---|
| LinkedIn, Facebook | Card | Sent separately and shown as a link card. Not added to the text, so it doesn’t count. |
| X, Bluesky, Mastodon | In text | These networks have no link field, so the link is added to the end of the text (after a blank line), where the network makes it clickable. It counts towards the limit, at the network’s link weight. If the text already contains the link, it isn’t added again. Bluesky also gets the link card (title, description and the page’s image) as an embed; Mastodon and X build their own card from the page. |
| Not sent | Links in captions aren’t clickable, so the link isn’t sent at all. |
Network rules
Section titled “Network rules”| Rule | Network | Code |
|---|---|---|
| An image is required | image.required:instagram |
|
| A link needs a link title | link.title_required:linkedin |
|
| A post has a link or an image, not both | link.image_conflict:linkedin |
|
| The text is over the limit | any | text.too_long:<network> |
Image alt text
Section titled “Image alt text”Alt text (up to 1,000 characters) is sent to every network except Facebook, whose post action doesn’t take it. Every network that takes alt text accepts at least the 1,000 characters Social stores (X 1,000; Instagram 1,000; Bluesky 2,000; LinkedIn 4,086; Mastodon 1,500 on older servers and 10,000 on current ones, as checked on 2026-11-09), so there is no separate alt-text limit per network.
Live counts
Section titled “Live counts”IPostService.CheckAsync (or POST …/posts/check) returns, for each channel, the count, the limit and the errors, without saving. The channel list in the management API also carries each channel’s limits (limits), so a client can count as you type. See Management API.