Skip to main content

Social Media Character Limits

This guide summarizes the most relevant text limits for each social network supported by Upload-Post. Keep these constraints in mind when building payloads so posts are accepted without truncation.

Platform-Specific Character Limits​

Facebook Character Limits​

PropertyDescription
post63,206 characters maximum
titleReels title – 255 characters maximum

Instagram Character Limits​

PropertyDescription
post2,200 characters maximum
altText1,000 characters maximum per image
comment2,196 characters maximum

LinkedIn Character Limits​

PropertyDescription
post3,000 characters maximum
title400 characters maximum (UTF-16 code units; an emoji counts as 2) – the media title of a video or document post. A line break sent as CRLF counts as 2, so a title that measures 399 locally can still exceed the limit. Longer titles are trimmed with an ellipsis.

TikTok Character Limits​

PropertyDescription
post2,200 characters maximum (UTF-16 code units; an emoji counts as 2)
title (photo posts)90 characters maximum (UTF-16 code units)
description (photo posts)4,000 characters maximum (UTF-16 code units)

Pinterest Character Limits​

PropertyDescription
post800 characters maximum
title100 characters maximum
link2,048 characters maximum
altText500 characters maximum

Reddit Character Limits​

Reddit posting is currently unavailable (HTTP 503 error_code: "reddit_unavailable").

Threads Character Limits​

PropertyDescription
post500 characters maximum (UTF-8 bytes; an emoji is 4 bytes)
post (threads_long_text_as_post)Up to 10,000 characters as a single post

X (Twitter) Character Limits​

PropertyDescription
post280 characters maximum
post (Premium)25,000 characters maximum for Premium and Premium Plus accounts
altText1,000 characters maximum per image
subTitleName150 characters maximum
URLs are automatically removed from X posts

Upload-Post strips every URL that X would turn into a clickable link from any caption, title, description, or first_comment sent to X (Twitter), before the post is published. This applies to video, photo, and text uploads via every endpoint and via the scheduler.

Why: X charges $0.200 per "Content: Create (with URL)" request versus $0.015 for posts without a URL — a 13× surcharge. To keep pricing predictable, every parseable link is removed before the tweet leaves Upload-Post.

What gets stripped: anything X's parser recognises as a URL:

  • Schemed URLs: https://…, http://…, ftp://…, ws://…
  • www.host.tld[/path]
  • Common shorteners: t.co/…, bit.ly/…, tinyurl.com/…, lnkd.in/…, youtu.be/…, etc.
  • Bare hostnames with a path: example.com/posts/1
  • IPv4 with a path: 192.168.1.1:8080/admin
  • Markdown link syntax: [text](https://…) (the URL portion is removed)

What is NOT stripped: anything that X does not parse as a link does not trigger the surcharge, so we leave it alone — e.g. example[.]com, example(dot)com, hxxp://…, unicode-dot lookalikes (example.com), or bare domains with no path. These display as plain text in the tweet and are billed at the normal $0.015 rate.

If you need to share a link, put it in your X profile bio or render it visibly inside an image/video. To keep URLs in your X posts instead of having them stripped, see the X Links add-on.

Bluesky Character Limits​

PropertyDescription
post300 characters maximum
imagesUp to 4 images per post
altTextSupported

Discord Character Limits​

PropertyDescription
message2,000 characters maximum (longer text is truncated)
attachmentsUp to 10 images per message

Telegram Character Limits​

PropertyDescription
message (text)4,096 characters maximum (longer text is truncated)
caption (photo/video)1,024 characters maximum
albumUp to 10 photos per sendMediaGroup

YouTube Character Limits​

PropertyDescription
post5,000 characters maximum (also validated as 5,000 UTF-8 bytes)
youTubeOptions > title100 characters maximum
youTubeOptions > tags500 characters total, 2+ characters each
youTubeOptions > subTitleName150 characters maximum

Snapchat Character Limits​

PropertyDescription
Spotlight description500 characters maximum
Saved Story title45 characters maximum

Notes:

  • Stories are ephemeral (24 hours) and don't support text captions
  • Saved Stories are permanent on your public profile
  • Spotlight posts are permanent and reach wider audiences
  • Only one media item (video or image) allowed per post
  • Hashtags are supported and clickable in Spotlight posts

Content Restrictions​

Banned Hashtags​

Google Business Profile Character Limits​

FieldLimit
Post summary (title)1,500 characters
Event title58 characters
Offer coupon code58 characters
Offer terms1,000 characters
CTA URLStandard URL length

Notes:

  • Google Business Profile supports one photo per post via the API.
  • Video uploads are supported (max 30 seconds / 28 MB).
  • Product posts cannot be created via the API.

Upload-Post validates content against a list of prohibited hashtags before posting to Instagram. Posts containing any of these hashtags will be rejected with a validation error. The complete list of banned hashtags includes:

A: anorexia, alone, a$$, antivax, abdl, addmysc, adulting, always, armparty, asiagirl

B: beautyblogger, bikinibody, boho, blogladrona, brain, besties, bikinibod

C: costumes, curvygirls, cancer

D: date, dating, desk, dm

E: elevator, edm, endme

F: followtrain, followtrains

G: graffitiigers, girlsonly, gloves

H: hardworkpaysoff, happythanksgiving, humpday, hustler, hotgirls

I: iphonegraphy, italiano, ifb

K: kansas, killingit, kissing, kill, killme, killyourself, kys

M: master, models, mustfollow, milf, midget

N: nasty, newyearsday

P: petite, petitegirls, pushups, payme

S: saltwater, shit, shower, single, singlelife, skype, snap, snapchat, snapchatme, snowstorm, sopretty, stranger, streetphoto, sunbathing, swole, suicide, suicideawareness

T: tag4like, tanlines, teens, teen, thought, todayimwearing

U: undies, unbalanced

V: valentinesday

W: workflow

Y: youngmodel, yolo

If your content includes any of these hashtags, remove them before submitting your request to avoid validation errors.

API Considerations​

  • Upload-Post validates payload sizes before sending them to social networks whenever limits are known. Requests that exceed the documented limits return a validation error.
  • Some platforms might truncate overlong text instead of rejecting it (Meta products and YouTube occasionally do this). Inspect the per-platform response inside results to confirm the final content.
  • For channels with strict limits such as X, consider shortening URLs in your application prior to calling the Upload-Post API.

Updates and Changes​

Social networks regularly adjust their limits. We keep this page aligned with the latest behavior we observe in production, but you should also:

  • Check Upload-Post API responses for detailed error messages about rejected posts.
  • Subscribe to our release notes for platform updates.
  • Revisit this reference periodically, especially before large content campaigns.