Hashtag Counter & Instagram Caption Formatter
Paste your caption: the counter checks Instagram’s limits (30 hashtags, 20 @ tags, 2,200 characters), flags duplicate hashtags and gives you a tidy version to copy.
Source: caption: 2200 / 30 # / 20 @, Meta for Developers – Instagram Graph API, IG User Media (Parameter caption). Updated: .
How it is calculated
The hashtag counter reads your caption right in your browser. A hashtag is a “#” followed by letters (including é, ñ or non-Latin scripts), digits and underscores – a hyphen, full stop or space ends it. A “#” directly after a letter (as in “C#”) is not a hashtag. A mention is an “@” followed by a username made of letters, digits, full stops and underscores; email addresses are not counted.
How to count hashtags
- Paste your caption.
- Choose options: move hashtag blocks to the end, remove duplicates, lowercase all, blank lines between paragraphs.
- Check counts and warnings, then copy the cleaned-up version.
Example: a caption with 32 hashtags is 2 over Instagram’s limit of 30 – the counter warns you. If #Travel and #travel both appear, it flags them as duplicates.
Instagram’s limits
Meta’s Instagram Graph API documentation allows a post caption of at most 2,200 characters, 30 hashtags and 20 @ tags. Hashtags are not case-sensitive: #Holiday and #holiday are the same tag, so the counter flags them as duplicates. Characters are counted as Unicode code points; emoji built from several parts (skin tones, families, flags) can take up more than one character.
What the formatter does
- Hashtags to the end: it moves hashtag blocks – hashtags at the end of a line and lines made only of hashtags. A hashtag inside a sentence (“I love #coffee in the morning”) stays put, otherwise the sentence would break.
- Remove duplicates: the first occurrence stays, later repeats are dropped.
- Lowercase: optional, for a consistent look. It makes no difference to search, but #CamelCase is easier for screen readers to read out.
- Paragraphs: blank lines are kept, several in a row become one, and trailing spaces are removed.
Line breaks with a dot or an invisible character
Some apps and input methods strip empty lines, so your caption ends up as one block. A common workaround is to fill each blank line with a character: a visible dot “.” or the Unicode character U+2800 (Braille pattern blank), which looks like a space but does not count as whitespace. Either one counts as one character. The dot is the safer choice, as screen readers may announce U+2800 as a Braille character.
More social media tools: check characters and platform limits with the character counter, get fancy fonts from the font generator, and look up social media image sizes.
Frequently asked questions
How many hashtags does Instagram allow?
According to Meta’s Instagram Graph API documentation, up to 30 hashtags per post, plus 20 @ tags and 2,200 characters. If the app shows you a stricter limit, enter it above as the hashtag limit.
Do #Holiday and #holiday count as duplicates?
Yes. Hashtags are not case-sensitive, so the counter treats both as the same tag and the formatter keeps only the first one.
Why does a hashtag inside a sentence stay where it is?
Because it is part of the sentence. Only hashtags at the end of a line and hashtag-only lines are moved, so your text stays readable.
Is my text stored anywhere?
No. Everything runs in your browser; your text is not sent anywhere and not added to the address bar.
What is the invisible character?
The Unicode character U+2800 (Braille pattern blank). It looks empty but is not stripped as whitespace, so it keeps the gap between paragraphs. It counts as one character.
Sources and legal basis
- caption: 2200 / 30 # / 20 @: Meta for Developers – Instagram Graph API, IG User Media (Parameter caption)
- Unicode Standard – Code Chart Braille Patterns (U+2800)
As of: · Editorial policy
Related tools
- Word Counter and Character CounterCharacter counter: characters with and without spaces, words, sentences, reading and speaking time, top words – live, with limits for X, Instagram and SMS.
- Text Compare: Find Differences Between Two TextsText compare online: see differences side by side or inline, by line, word or character. Jump between changes, save a patch. Private, in your browser.
- Lorem Ipsum GeneratorFree lorem ipsum generator: paragraphs, sentences or an exact word count, start with “Lorem ipsum dolor sit amet”, optional HTML paragraph tags, one-click copy.
- Password GeneratorGenerate secure random passwords and memorable passphrases with entropy shown in bits — calculated right in your browser, nothing sent or stored.
- Special Characters to Copy and PasteSpecial characters to copy with one click: symbols, arrows, currency, math and accented letters, with Unicode, HTML and Windows Alt codes. Free, no sign-up.
- Engagement rate calculator: by followers, reach or viewsEngagement rate calculator: likes, comments, shares and saves relative to followers, reach or views. With a post list from Excel and a target calculation.
- Add line numbers to textAdd line numbers to text: put a number, letter or Roman numeral before every line, with start, step, separator and leading zeros. Runs in your browser.
- Vocabulary test maker: printable test sheet from your own word listVocabulary test maker: paste a word list, pick direction and number of questions, then print a test sheet with answer lines and answer key as PDF. Free.
- Instagram grid maker: split an image into tilesSplit one image into 3, 6 or 9 tiles for your Instagram profile grid, or into a seamless panorama carousel – with profile preview, posting order and ZIP.