Guides

Telegram sticker requirements

Size, format and limits · last checked August 2026

Telegram rejects stickers that miss the spec, and the error messages are not always specific about which rule you broke. These are the actual numbers, taken from Telegram's own documentation, plus a way to check a file before you waste a round trip.

Video stickers

DimensionsOne side must be exactly 512 px. The other side can be 512 px or less.
Format.WEBM container, VP9 codec
File size256 KB maximum
Duration3 seconds maximum
Frame rateUp to 30 FPS
AudioNone. The file must have no audio stream at all
LoopingShould be looped

Static stickers

DimensionsOne side must be exactly 512 px. The other side can be 512 px or less.
Format.PNG or .WEBP
DesignTelegram recommends a transparent background, a white stroke and a black shadow

The four rules people actually break

"Exactly 512" means exactly

A 500×500 sticker is invalid. So is 512×600. One dimension has to land on 512 precisely, and the other has to be 512 or smaller. Scaling to "fit inside 512×512" is the safe way to think about it, because it puts the longest side on 512 and leaves the shorter one below.

256 KB is small

That is the whole file, for up to three seconds of video. It is the constraint that decides your quality, not your resolution. Three seconds inside 256 KB works out to roughly 700 kbit/s for everything including container overhead, so a video bitrate around 400 to 500 kbit/s leaves comfortable headroom.

Audio has to be stripped, not silenced

A silent audio track is still an audio track, and it will still be rejected. The stream has to be absent from the file.

3 seconds is a hard ceiling

Not "about three seconds". If your trim lands at 3.05 s it can fail. Cut with a margin.

Checking a file before you upload it

If you have ffmpeg installed, ffprobe answers every question above at once:

ffprobe -v error -select_streams v:0 \
  -show_entries stream=codec_name,width,height,r_frame_rate \
  -show_entries format=duration,size \
  -of default=noprint_wrappers=1 sticker.webm

You want to see codec_name=vp9, one of width or height equal to 512, a duration at or under 3.0, and a size at or under 262144 bytes. To confirm there is no audio, this should print nothing at all:

ffprobe -v error -select_streams a -show_entries stream=index -of csv=p=0 sticker.webm

Making one from a video? The companion guide has a tested ffmpeg command that produces a spec-valid sticker in one pass, and the shorter route if you would rather not touch a terminal: How to make a Telegram video sticker.

Requirements above are from Telegram's official sticker documentation. Telegram occasionally adjusts these, so this page notes when it was last checked.