# Bluesky character limits for every text field

> Bluesky posts allow 300 characters, counted as graphemes. Bio 256, display name 64, alt text 2,000, DMs 1,000. Every limit, with a live counter.

Page: https://omnisocials.com/bluesky-character-limits
Checked: October 17, 2026

A post takes 300 characters, counted the way you see them: one emoji is one character. Bios take 256 and display names 64. Paste a post below to count it.

## The short answer: Posts: 300 characters. Bios: 256. Display names: 64.

A Bluesky post holds 300 characters, counted as graphemes: an emoji or an accented letter is one character, even when it is several code points underneath. The post format also caps the text at 3,000 bytes, which only emoji-heavy posts reach. Photos, videos and link cards do not count.

In the Bluesky app, a link counts as its short form, the domain plus at most 16 characters. Through the API, which every scheduler uses, the text counts as sent, so a full link counts in full. Bios take 256 characters, display names 64, alt text 2,000 and direct messages 1,000.

- **Post**: 300 (Graphemes, up to 3,000 bytes)
- **Bio**: 256 (Display name: 64)
- **Alt text**: 2,000 (Per photo or video, in the app)

## Count a post the way Bluesky counts it

- Post: up to 300 characters.
- Hashtags: no fixed limit.

## Every Bluesky text limit in one table. With where each number comes from.

| Field | Limit | Source |
|---|---|---|
| Post | 300 characters (graphemes) | Bluesky's post format and app |
| Post, in bytes | 3,000 bytes | Post format; emoji-heavy posts can reach it first |
| Link in a post | App: domain plus up to 16 characters. API: counted as sent | Bluesky app code; post format |
| Display name | 64 characters | Profile format and app |
| Bio | 256 characters | Profile format and app |
| Handle | 3 to 18 characters before .bsky.social; up to 253 for your own domain | Bluesky's server code; handle spec |
| Alt text | 2,000 characters per photo or video | Bluesky app; the post format sets no cap |
| Direct message | 1,000 characters | Chat format and app |
| Hashtag | 64 characters per tag; no limit on how many | Post format |
| Post languages | Up to 3 | Post format |
| List description | 300 characters | List format |
| Starter pack | Name 50, description 300 | Starter pack format |
| Lines before "Show more" | 25 lines | Bluesky app; there is no character fold |

Checked on October 17, 2026 in Bluesky's post format (the app.bsky lexicons) and its open-source app. Characters here means graphemes, what you see as one character.

## What changed for text. The 300 limit has held.

- **Jun 2026: Alt text on videos** Version 1.126 added alt text to videos, with the same 2,000-character limit as photos. (https://github.com/bluesky-social/social-app/releases/tag/1.126.0)
- **Jan 2026: Cashtags** Posts can tag stocks like $AAPL; tapping one shows other posts about that ticker. They count toward the 300 like any text. (https://bsky.app/profile/bsky.app/post/3mcibiyf7fs2r)
- **Apr 2025: A 299-character limit, as a joke** Bluesky's April Fools' post said posts "can now be 299 characters long". The real limit stayed at 300. (https://bsky.social/about/blog/04-01-2025-april-fools)

## Write posts that fit. 300 goes fast.

1. **Say the point first** Bluesky shows the whole post, but people skim. Put the one thing you want read in the first line.
2. **Split long ideas into a thread** Each part of a thread gets its own 300 characters. Number the parts only if order matters.
3. **Use short links when you schedule** Through the API a link counts in full. A long tracking link can eat a third of the post; shorten it first.
4. **Watch emoji-heavy posts** Each emoji counts as one character, but the 3,000-byte cap can stop a post full of emoji before 300.
5. **Put detail in alt text** Alt text takes up to 2,000 characters per photo or video. Describe what is in the image there.
6. **Use all 256 bio characters** Say who you are and what you post about, in plain words. It is the first thing people read before they follow.

## Schedule it with OmniSocials

Write once, and OmniSocials counts it the way Bluesky does, in graphemes. OmniSocials schedules posts to Bluesky and 11 more networks from one calendar, and AI agents (Claude, ChatGPT and others) can plan and schedule through its MCP server. $10 per seat a month billed yearly, $12 monthly; 14-day free trial, a card is needed to start it. https://omnisocials.com/pricing

## Sources and method

Each limit comes from Bluesky's post format (the app.bsky and chat.bsky lexicons), Bluesky's open-source app or its server code, read on October 17, 2026. Where the app and the post format differ (links, alt text), the table shows both, because schedulers post through the format, not the app. The 299-character limit circulating from April 2025 was a joke.

- Bluesky on GitHub, [app.bsky.feed.post lexicon](https://github.com/bluesky-social/bsky/blob/main/lexicons/app/bsky/feed/post.json), Read Oct 2026. Text: 300 graphemes, 3,000 bytes; up to 3 languages; up to 8 extra tags.
- Bluesky on GitHub, [app.bsky.actor.profile lexicon](https://github.com/bluesky-social/bsky/blob/main/lexicons/app/bsky/actor/profile.json), Read Oct 2026. Display name 64, description 256.
- Bluesky on GitHub, [chat.bsky.convo.defs lexicon](https://github.com/bluesky-social/bsky/blob/main/lexicons/chat/bsky/convo/defs.json), Read Oct 2026. Messages up to 1,000 graphemes.
- Bluesky social-app on GitHub, [Bluesky app constants (post, bio, alt text, DM limits)](https://github.com/bluesky-social/social-app/blob/main/src/lib/constants.ts), Read Oct 2026
- Bluesky social-app on GitHub, [Link shortening in the composer (toShortUrl)](https://github.com/bluesky-social/social-app/blob/main/src/lib/strings/url-helpers.ts), Read Oct 2026
- Bluesky atproto on GitHub, [Handle rules on Bluesky's server](https://github.com/bluesky-social/atproto/blob/main/packages/pds/src/handle/index.ts), Read Oct 2026. 3 to 18 characters before the service domain.
- AT Protocol specs, [Handle](https://atproto.com/specs/handle), Read Oct 2026. Up to 253 characters overall.
- Bluesky, [New character limit now available!](https://bsky.social/about/blog/04-01-2025-april-fools), Apr 1, 2025. An April Fools' post.

## Related guides

- [Best time to post on Bluesky](https://omnisocials.com/best-time-to-post-on-bluesky)
- [How often to post on Bluesky](https://omnisocials.com/how-often-to-post-on-bluesky)
- [Bluesky image sizes](https://omnisocials.com/bluesky-image-sizes)
- [Bluesky video lengths](https://omnisocials.com/bluesky-video-lengths)
- [Bluesky hashtag limits](https://omnisocials.com/bluesky-hashtag-limits)
- [Schedule Bluesky posts](https://omnisocials.com/bluesky)
- [Connect Bluesky](https://omnisocials.com/help-center/integrations/bluesky)
- [Create a post](https://omnisocials.com/help-center/creating-content/create-post)
- [MCP server](https://omnisocials.com/mcp)
- [REST API](https://omnisocials.com/api)
- [API reference](https://docs.omnisocials.com)

## FAQ

### Does Bluesky have a character limit?

Yes. A post can hold 300 characters, and every account gets the same limit. Bios take 256 and display names 64.

### How many characters do you get on Bluesky?

300 per post, counted as graphemes, so each emoji or accented letter is one. The text also has to fit in 3,000 bytes, which only matters for posts full of emoji.

### How many words can you use on Bluesky?

About 45 to 60 English words, depending on word length. Bluesky counts characters, not words, and spaces count too.

### How do I get past the character limit on Bluesky?

You cannot make one post longer than 300 characters. Split the text into a thread, link to a longer page, or put detail in alt text, which takes up to 2,000 characters per image.

### Do links count toward the Bluesky character limit?

Yes. In the Bluesky app a link counts as its short form, the domain plus at most 16 characters. Posts sent through the API, as schedulers do, count the link as written, so shorten long links first.

### Do emoji count as one character on Bluesky?

Yes. Bluesky counts graphemes, so an emoji counts as one even when it is built from several code points. Many emoji in one post can reach the 3,000-byte cap before 300 characters.

### What is the Bluesky bio character limit?

256 characters. The display name above it takes 64.

### How long can a Bluesky username be?

A handle on bsky.social takes 3 to 18 characters before .bsky.social. If you use your own domain as your handle, it can be up to 253 characters.

### Is the Bluesky limit 299 characters now?

No. Bluesky's 299-character post on April 1, 2025 was an April Fools' joke. The limit is still 300.

### How long can alt text be on Bluesky?

Up to 2,000 characters per photo or video in the Bluesky app. The post format itself sets no cap.
