WhatsApp sticker limits: WebP, 100 KB static, 500 KB animated
WhatsApp Cloud API stickers must be WebP, 100 KB if static and 500 KB if animated. Sume Images can output static WebP; it does not make animated ones.

A WhatsApp Cloud API sticker must be a .webp file: 100 KB at most when static, 500 KB when animated. Sume's images API can return webp through output_format, which covers a static sticker; Sume does not document animated WebP output, so an animated sticker needs a tool outside Sume.
What do the sticker pages say?
Meta's sticker message page lists both types as WebP with those two size caps. It recommends sending by uploaded media id, and says a request fails if the id is invalid or expired, the file is not a supported WebP type, or the file exceeds the size limit. The page does not state pixel dimensions.
| Type | Format | Max size |
|---|---|---|
| Static | WebP | 100 KB |
| Animated | WebP | 500 KB |
| Delivery | media id (recommended) or link | not applicable |
How do I make a static sticker?
Ask for a simple subject on a transparent background with background: "transparent" on openai/gpt-image-2.5, and output_format webp. Then measure the file; 100 KB is small, so keep the artwork flat, with few colors and no photographic texture. Sume has no byte-size field, so re-request a simpler image if it is over.
import json, os, urllib.request
body = {
"model": "openai/gpt-image-2.5",
"prompt": "flat sticker of a smiling sun, thick outline, no text",
"aspect_ratio": "1:1",
"output_format": "webp",
"background": "transparent"
}
req = urllib.request.Request(
"https://api.sume.com/v1/images",
data=json.dumps(body).encode(),
headers={
"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
print(urllib.request.urlopen(req).read().decode())What about dimensions?
Because Meta's page here gives none, look at WhatsApp's sticker guidance for the recommended size and compare it with what Sume returns.
What should I verify?
Send a test sticker to your own number. The images guide lists the parameters.
Sources
Related posts
More in Integrations
- WhatsApp webhook media IDs expire in 7 days: download and store
WhatsApp webhook media IDs expire after 7 days and media URLs after 5 minutes. Download inbound media promptly, then import it into Sume to edit it.
- Windmill webhook token in the URL: calling it from a Sume job
Windmill prefers a bearer header, but Sume's webhook_url is just a URL, so the token must ride in the query string. How to scope it and still trust the result.
- X API made_with_ai: disclose AI media when you create a post
The X API v2 create-post body has a made_with_ai boolean to disclose AI-generated media. Where it sits, what it needs, and how to prep the clip with Sume first.
- X API media metadata: alt text up to 1000 characters for AI images
X's media metadata endpoint takes alt_text.text up to 1000 characters. Write alt text for generated images and size the image with the Sume images API first.
Written by Sume