---
title: "Social media character limits by network"
canonical: "https://weekbird.app/guides/social-media-character-limits"
language: "en"
type: "sizeGuide"
updated: "2026-10-18T15:46:02.609Z"
---

# Social media character limits

Social media character limits differ by network: X allows 280 weighted characters, Bluesky 300 graphemes, Threads 500, Instagram captions and TikTok video captions 2,200, Pinterest descriptions 800 and YouTube titles 100. Facebook, LinkedIn and Google Business Profile publish no post limit. Weekbird checks each post version before you schedule it.

## Social media character limits by network

We took each limit from the network's official developer or help pages on 10 October 2026 and will recheck them by 10 January 2027. "Not stated" means the official page gives no number, so we don't print one.

| Network | Post text | Other text limits | How it counts |
| --- | --- | --- | --- |
| Facebook | No limit stated by Meta | Reel description: not stated | Not stated |
| Instagram | 2,200 (caption) | 30 hashtags, 20 @tags, alt text 1,000, bio 150 | Characters |
| Threads | 500 | Topic tag 1 to 50, up to 5 links | Emoji by UTF-8 byte length |
| X | 280 | Bio 160 | Weighted: emoji and CJK count 2, a URL counts 23 |
| LinkedIn | No number published | Image alt text 4,086 (under 120 recommended) | API rejects text that runs too long |
| TikTok | 2,200 (video caption) | Photo post title 90, description 4,000 | UTF-16 runes |
| YouTube | Description 5,000 | Title 100 | Characters |
| Pinterest | Description 800 | Title 100, alt text 500, link 2,048, profile about 500 | Characters |
| Google Business Profile | Not stated by Google | Events need a title and start and end dates and times | Not stated |
| Bluesky | 300 | 3,000 bytes; up to 8 tags of 64 graphemes | Graphemes |

## Limits by network

- **Facebook:** Meta's Pages API guide gives no maximum for post text. Page Reels run 3 to 90 seconds.
- **Instagram:** captions on feed posts, carousels and Reels take 2,200 characters, 30 hashtags and 20 @tags. Stories take no caption. See the Instagram character limit.
- **Threads:** 500 characters per post. Threads uses only the first \#tag in the text as the topic. See the Threads character limit.
- **X:** 280 weighted characters. See the X character limit.
- **LinkedIn:** the Posts API names no maximum and returns an error when text runs too long.
- **TikTok:** video captions take 2,200 characters. Photo posts have a 90-character title and a 4,000-character description.
- **YouTube:** titles take 100 characters and descriptions 5,000, for videos and Shorts.
- **Pinterest:** Pin titles take 100 characters and descriptions 800. Pinterest doesn't show descriptions in the home feed.
- **Google Business Profile:** Google's localPosts reference gives no maximum for the post summary.
- **Bluesky:** 300 graphemes and 3,000 bytes. See the Bluesky character limit.

## How networks count characters

Networks don't agree on what a character is.

- **X weights characters.** Latin letters and punctuation count 1. Emoji and Chinese, Japanese or Korean characters count 2. A link counts 23 whatever its length, and attached media counts 0.
- **Bluesky counts graphemes.** A grapheme is what you see as one character, so a family emoji built from several code points counts once. Bluesky also caps a post at 3,000 bytes.
- **Threads counts emoji by bytes.** Its documentation counts emoji by UTF-8 byte length, so a post full of emoji fills up faster.
- **TikTok counts UTF-16 runes.** Most emoji take two.

## Where the composer differs

Weekbird checks each network's version against that network's limits before you can schedule it. A few checks differ from the official numbers:

- **TikTok:** the composer allows 4,000 characters, the photo description limit. Keep video captions to 2,200.
- **Facebook, LinkedIn and Google Business Profile:** the networks publish no limit, so Weekbird applies its own cap. LinkedIn or Google can still reject a long post.
- **Bluesky:** Weekbird counts graphemes and bytes the same way Bluesky does.

## Check a post

Paste your text into the character counter to see how it measures against each network, or use the X character counter for weighted counts. In the composer, Weekbird shows the count for each version as you write. All ten networks are on the networks page.

## Questions

### What is the character limit on Instagram?

2,200 characters for a feed post, carousel or Reel caption, with up to 30 hashtags and 20 @tags. Your bio takes 150.

### What is the character limit on X?

280 weighted characters. Emoji and CJK characters count 2, and every link counts 23.

### How long can a LinkedIn post be?

LinkedIn's Posts API names no maximum. It returns an error when a post runs too long, so keep long posts tight and check them before you schedule.

### How long can a TikTok caption be?

2,200 characters for a video caption. Photo posts allow a 90-character title and a 4,000-character description.

### How long can a YouTube title be?

100 characters. Descriptions take 5,000.

### What is the Facebook post character limit?

Meta's Pages API guide doesn't state one. Page Reels have no stated description limit either.

## Write each version to fit

[See Weekbird plans](https://weekbird.app/)

## Instagram

Last verified: 2026-10-11

Direct publish via container then POST /\{ig\_id\}/media\_publish (Instagram Login or Facebook Login). Stories published via media\_type STORIES. Media must be on a public URL when attempted. API publishing cap: Content Publishing guide states 100 API-published posts per moving 24h (carousel counts once) under Rate Limit, and 50 posts per 24h under carousel limitations; treat 50 as the safe cap and check GET /\{ig\_id\}/content\_publishing\_limit. Containers: 400 per rolling 24h, expire after 24h. Container status: query once per minute for no more than 5 minutes.

image, carousel, reel, story, video

Instagram professional account (Business or Creator)

instagram\_business\_basic, instagram\_business\_content\_publish, instagram\_basic, instagram\_content\_publish, pages\_read\_engagement

## Limits

| Post type | Characters | Media | Video seconds | File MB | Notes | Source |
| --- | --- | --- | --- | --- | --- | --- |
| feed-post-caption | 2200 | 10 | — | 8 | Caption max 2200 chars, 30 hashtags, 20 @tags. Image JPEG only, 8 MB max. Alt text up to 1000 chars (images only; not Reels or Stories). Up to 3 collaborators. maxMedia 10 applies via carousel. | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| carousel | 2200 | 10 | — | 8 | Up to 10 images/videos mixed. Images cropped to first image's aspect ratio (default 1:1). Caption and location\_id not supported on carousel children; set on the parent. Reels cannot be carousel children. 8 MB applies to image items. | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| reel | 2200 | 1 | 900 | 300 | 3 s to 15 min, 300 MB, MOV/MP4, H.264/HEVC, 23-60 fps, max width 1920 px, video bitrate max 25 Mbps VBR. cover\_url JPEG up to 8 MB. 9:16 recommended. | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| story-video | — | 1 | 60 | 100 | 3-60 s, 100 MB, same codecs as Reels. Link, poll and location stickers not supported; user mentions allowed. Stories expire after 24h. Collaborators not supported. | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| story-image | — | 1 | — | 8 | JPEG, 8 MB, 9:16 recommended. | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| bio | 150 | — | — | — | Bio up to 150 characters. | [Source](https://help.instagram.com/728994388226960/) |

## Media specifications

| Placement | Width | Height | Aspect ratio | Formats | Source |
| --- | --- | --- | --- | --- | --- |
| feed-image | — | — | 4:5 to 1.91:1 | jpeg | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| feed-image-width-range | — | — | 4:5 to 1.91:1; width 320-1440 px (scaled to fit); height varies | jpeg | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| reel | — | — | 9:16 recommended (0.01:1 to 10:1 accepted); max width 1920 px | mp4, mov | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| reel-cover | — | — | 9:16 recommended (middle 9:16 crop); feed share uses middle 1:1 | jpeg | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| story | — | — | 9:16 recommended (video 0.1:1 to 10:1 accepted; video max width 1920 px) | jpeg, mp4, mov | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |
| carousel | — | — | 1:1 default (first item sets ratio) | jpeg, mp4, mov | [Source](https://developers.facebook.com/documentation/instagram-platform/instagram-graph-api/reference/ig-user/media) |

## Overlay

| Overlay |
| --- |
| [https://hub.bosnadev.com/api/media/file/social-media-character-limits-overlay.png](https://hub.bosnadev.com/api/media/file/social-media-character-limits-overlay.png) |
