GIF, emoji and sticker size limits by platform

Every row checked against the platform's own documentation on 27 October 2026. Where a platform publishes no figure, the row says so.

Each platform enforces its own weight, pixel and frame rules, and an upload that breaks one of them simply fails, often without saying which rule it was. This table collects the current limits in one place. The last column points to the GIFUP page that produces a file within that rule, with the conversion done in your browser.

On a narrow screen the table scrolls sideways.

WhereFormatPixelsMax weightOther rulesSourceFit it
Discord custom emojiGIF, PNG, JPG, WebP128×128 (larger files are shrunk)256 KBSlots per server depend on boost levelDiscord developer docsDiscord emoji
Discord stickerPNG, APNG; GIF and Lottie through the API320×320 exact512 KBAnimated up to 5 s, 60 fps at mostDiscord supportGIFUP makes GIFs; Discord's upload screen wants APNG
Discord chat uploadAny fileNo rule20 MB per file by default; higher with Nitro or server boostsApplies to each file in a messageDiscord developer docsGIF compressor
Discord animated avatar or bannerGIFAvatar square, 512×512 suggested; banner 680×24010 MB, as shown in the upload errorAnimation needs NitroFigure from Discord's support forum, no official pageDiscord PFP and banner
Slack custom emojiJPG, PNG, GIFSquareUnder 128 KBGIFs up to 50 framesSlack helpSlack emoji
Twitch animated emoteGIFOne square GIF from 112×112 to 4096×4096, or 28, 56 and 112 px files1 MB in auto-resize mode; 512 KB per file in manual mode60 frames at most; no flashing over 3 times a secondTwitch helpTwitch emote
Twitch static emotePNGSame sizes as animated1 MBTransparent background expectedTwitch helpResizer for the pixels
Kick emotePNG, GIF500×500Under 1 MBUp to 60 channel emotes plus 24 for subscribersKick helpResizer at 500×500, then the compressor
WhatsApp stickerWebP512×512 exact100 KB static, 500 KB animatedAnimation up to 10 s, frames at least 8 ms; packs hold 3 to 30 stickers; tray icon 96×96 under 50 KBWhatsApp sticker specWhatsApp sticker
Telegram static stickerPNG, WebPOne side exactly 512, the other 512 or less512 KBTransparent layerTelegram docsResizer for a still frame
Telegram video stickerWebM, VP9, no audioOne side exactly 512256 KBUp to 3 s and 30 fpsTelegram docsNot yet on GIFUP
Telegram custom emojiPNG, WebP, WebM or TGS100×100 exact256 KB for video, 64 KB for TGSSame timing rules as stickersTelegram docsNot yet on GIFUP
Signal stickerPNG, WebP; APNG for animation512×512300 KBAnimation up to 3 s; up to 200 stickers in a packSignal supportResizer for stills
GitHub issues, PRs and commentsGIF, PNG, JPEG, SVG; MP4, MOV, WebMNo rule10 MB for images and GIFs; video 10 MB on free plans, 100 MB on paid; 25 MB for other filesDragged into the text box, not committedGitHub docsGIF for GitHub
X (Twitter) postGIFUp to 1280×108015 MBUp to 350 frames and 300 million pixels in total (width × height × frames)X developer docsGIF compressor
Mastodon post (default server settings)GIF, converted to a silent MP4Under 1 megapixel, so 1280×720 at most16 MB for images and GIFs; 99 MB for videoOne GIF per post; servers can set their own limitsMastodon docsResizer to 1280 wide
Bluesky postJPG, PNG and other stills; GIFs only through the built-in Tenor pickerUp to 4000 px2 MB per image since April 2026Video is uploaded separately with its own limitsTechCrunch, April 2026GIF to MP4, then post as video
Reddit postGIF; JPEG, PNG, WebP, HEIC; MP4, MOVNo rule100 MB for GIFs, 20 MB for images, 1 GB for videoReddit publishes no page of its own; these figures date from its 2016 announcement and are still quotedUnofficialGIF compressor
Gmail attachmentAnyNo rule25 MB per message on personal accountsLarger files are sent as Drive linksGoogle supportGIF compressor, email target
Outlook.com attachmentAnyNo rule20 MB per message, body includedExchange mailboxes at work often cap at 10 MBMicrosoft supportGIF compressor, email target

Reading the table

Weights are the figures the platforms print. Discord writes 256 KiB, which is 262,144 bytes; most people round it to 256 KB and the apps show it that way. Where a platform gives both a recommended and a hard figure, the hard one is listed. "No rule" means the platform scales the picture itself and only the weight matters.

Frames are the quiet limit. A GIF stores each frame as a complete picture, so a two-second clip at 30 frames a second already holds 60 of them, which is exactly Twitch's cap and ten over Slack's. The GIFUP pages linked in the last column pick the frame rate from the length of your trim so that cap is never crossed.

What is missing on purpose

Microsoft Teams accepts PNG and GIF custom emoji but publishes no weight or pixel limit. Tumblr, Imgur, Giphy and Tenor are left out because their current limits could not be confirmed from an official page; older guides quote figures that no longer match what the sites accept. If you know of an official source for any of these, the contact page is the place to send it.

Questions

How often is this checked?

Each row carries the date it was last confirmed against the source linked beside it. When a platform changes a figure, the row and the date change with it.

Why do KB and KiB differ?

A kibibyte is 1,024 bytes and a kilobyte, strictly, 1,000. Discord and Twitch count in 1,024s. The difference is about 2 percent, which matters only when a file is right on the line.

Can one GIF meet every limit?

Not comfortably. A 128×128 file under 128 KB fits Slack, Discord emoji and Twitch, but it looks tiny as a Discord sticker or a Telegram sticker. Make one file per destination; the pages in the last column are set up for exactly that.