WhatsApp API Media: Supported File Types and Size Limits
WhatsApp API media file size limits and supported file types for images, video, audio, documents and stickers, plus upload vs link, media IDs and captions.
By OmniChannels.ai Editorial Team · Reviewed by BroadNet Messaging Solutions Team
Short answer
Meta's documentation lists these maximum sizes for WhatsApp Cloud API media at the time of writing: images 5 MB (JPEG, PNG, static WebP), video 16 MB (MP4 or 3GPP with H.264 and AAC), audio 16 MB, documents 100 MB, animated stickers 500 KB and static stickers 100 KB. Upload the file and send its media ID rather than a link, and check that the MIME type matches the file.
On this page
- What are the WhatsApp API media file size limits?
- Which image and sticker formats are supported?
- Which video and audio formats are supported?
- Which document formats are supported?
- Should I upload media or send a link?
- How long do media IDs stay valid?
- Can I add captions to media messages?
- How does media work in message templates?
- How do I download media a customer sends?
- Worked example: a dental clinic sending reports
- What are the common mistakes?
- How OmniChannels.ai helps
Key takeaways
- Per Meta's documentation at the time of writing, the size limits are 5 MB for images, 16 MB for video and audio, 100 MB for documents, and 500 KB (animated) or 100 KB (static) for stickers.
- Video must be H.264 with AAC audio, and images must be 8-bit RGB or RGBA; a file that meets the size limit can still be rejected for its codec or colour format.
- Meta recommends sending uploaded media by ID instead of by link for better performance.
- Media IDs returned by an upload expire after 30 days, while IDs received in inbound webhooks expire after 7 days, so download customer files promptly.
- Image, video and document captions are limited to 1,024 characters, and error 131053 usually signals a MIME type that does not match the file.
This guide is for developers and marketers who send images, video, audio, documents or stickers through the WhatsApp Business API and want to avoid failed sends. It lists the file types and size limits Meta documents, explains upload versus link, media IDs, captions and template headers, and shows how to handle files customers send you.
All numbers below are Meta's documented values at the time of writing (7 November 2026). Meta can change them, so treat the media reference as the authority.
What are the WhatsApp API media file size limits?
Each media type has its own cap, and the Cloud API ceiling for any media is 100 MB. Documents get the most room, stickers the least.
| Media type | Maximum size | Notes |
|---|---|---|
| Image | 5 MB | 8-bit RGB or RGBA only |
| Video | 16 MB | H.264 video, AAC audio |
| Audio | 16 MB | Several formats, see below |
| Document | 100 MB | Office, PDF and text files |
| Sticker (animated) | 500 KB | WebP only |
| Sticker (static) | 100 KB | WebP only |
A file can meet the size limit and still fail on format. The next sections list the accepted formats per type.
Which image and sticker formats are supported?
Images can be JPEG, PNG or static WebP, up to 5 MB, and must be 8-bit RGB or RGBA. Stickers must be WebP.
| Type | Extension | MIME type |
|---|---|---|
| JPEG | .jpeg | image/jpeg |
| PNG | .png | image/png |
| Static WebP | .webp | image/webp |
Meta documents three more rules for images. A static WebP sent in an image message is transcoded to JPEG. Animated WebP files, WebP files that cannot be decoded and images larger than 4,096 pixels on an edge are rejected. For stickers, use WebP with image/webp: up to 500 KB if animated and 100 KB if static.
If your brand assets are large PNGs from a design tool, export a web-sized JPEG instead of sending the original.
Which video and audio formats are supported?
Video is MP4 or 3GPP up to 16 MB. Audio can be AAC, AMR, MP3, M4A or Opus-coded OGG, also up to 16 MB.
| Type | Extension | MIME type |
|---|---|---|
| MP4 video | .mp4 | video/mp4 |
| 3GPP video | .3gp | video/3gpp |
| AAC audio | .aac | audio/aac |
| AMR audio | .amr | audio/amr |
| MP3 audio | .mp3 | audio/mpeg |
| MP4 audio | .m4a | audio/mp4 |
| OGG audio | .ogg | audio/ogg |
For video, Meta requires the H.264 codec and AAC audio, with a single audio stream or none. Meta also advises against H.264 "High" profile with B-frames because Android WhatsApp clients do not support it; use "Main" without B-frames, or "Baseline". Put the moov boxes before the mdat boxes, which with ffmpeg means the -movflags faststart option.
For OGG, only the Opus codec is supported, the base audio/ogg type is not, and the input must be mono.
Which document formats are supported?
Documents can be PDF, Word, Excel, PowerPoint or plain text, up to 100 MB.
| Type | Extension | MIME type |
|---|---|---|
application/pdf |
||
| Word | .doc, .docx | application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| Excel | .xls, .xlsx | application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| PowerPoint | .ppt, .pptx | application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Text | .txt | text/plain |
Document messages take an optional filename with its extension, and the WhatsApp client picks the file icon from that extension. Choose a readable name such as invoice-2026-1042.pdf, because the customer sees it.
Should I upload media or send a link?
Meta recommends uploading the file and sending its media ID. You can alternatively send a link to a file on a public server, but Meta's image, video and document references say to prefer the uploaded ID for better performance, and its throughput guidance says the same for higher volumes.
| Media ID | Link | |
|---|---|---|
| How it works | Upload first, then reference the returned ID | Point to a public URL; the file is fetched when you send |
| Meta's guidance | Recommended | Supported, not recommended |
| Validity | 30 days from upload | As long as your server serves the file |
| Failure mode | Expired or invalid ID | Unreachable, slow or wrongly typed URL |
With Meta's own endpoint, an upload is a POST to /<PHONE_NUMBER_ID>/media with the file, its MIME type and messaging_product=whatsapp, and the response is {"id": "<MEDIA_ID>"}. Uploaded files are encrypted and kept for 30 days unless you delete them first.
On the OmniChannels.ai WhatsApp endpoint, a media message takes either mediaUrl (a public HTTPS URL) or mediaFile (a file you upload with the request), with the caption in content. See the WhatsApp API docs. Ask our team how your account handles media storage and reuse for large sends.
How long do media IDs stay valid?
Meta documents 30 days for an ID returned by an upload and 7 days for an ID received in an inbound webhook. The download URL returned for an ID expires after 5 minutes.
Practical consequences:
- Do not cache a media ID for months. Store your original file and re-upload when an ID is rejected.
- Download inbound files as soon as the event arrives and keep your own copy.
- Never store a retrieved download URL; ask for a new one when you need it.
Can I add captions to media messages?
Yes. Image, video and document messages accept an optional caption of up to 1,024 characters, per Meta's message references. Captions are plain text next to the file.
Audio and sticker messages have no caption in this model. If you need words with a voice note, send a short text message beside it. Captions inside the customer service window are free-form; outside it, media must travel inside an approved template.
How does media work in message templates?
A template can have an image, video or document in its header, and that header is fixed when you create the template. When you submit a template for approval you provide a sample file, and you can supply the actual file when you send.
On our API, headerFormat can be IMAGE, VIDEO or DOCUMENT at creation, headerFile carries the sample, and mediaUrl at send time overrides the header media. Check Meta's template documentation for sample-file requirements. See template categories and approval and template examples.
How do I download media a customer sends?
Inbound media arrives as a webhook with a media ID; you resolve it to a URL and download it with authorisation.
- Read the media ID from the inbound message event.
- Request the media URL for that ID. Meta's response includes
url,mime_type,sha256andfile_size. - Send a
GETto that URL with anAuthorization: Bearer <token>header. Without the token the request fails. - Check the
Content-Typeheader and thesha256value, then store the file. - On a
404, request a new URL and retry; if that still fails, renew the access token.
Meta's maximum inbound media size on the Cloud API is 100 MB. A larger file triggers a webhook with error code 131052; ask the customer to send a smaller file or share it another way. Scan every file before opening it internally. See the webhooks guide, and confirm with your onboarding engineer how inbound media is delivered on your account.
Worked example: a dental clinic sending reports
"Nile Smile Clinic" (synthetic) in Cairo sends appointment cards and X-ray reports.
- Appointment cards are 300 KB PNG images with a caption of two lines. Well under 5 MB.
- Treatment reports are PDFs of 2 to 8 MB, named
report-2026-0381.pdf, sent as documents. - A 25 MB clinic tour video is too large for video. The team re-encodes it as H.264/AAC MP4 at under 16 MB with
faststart. - Patients send photos of prescriptions. The inbox downloads each file immediately, because the inbound ID expires after 7 days.
- A voice greeting is exported as mono Opus OGG, since other OGG variants are rejected.
What are the common mistakes?
- Judging by size alone. A 3 MB image in the wrong colour format or a video with the wrong codec still fails.
- MIME mismatch. A
.jpgserved asapplication/octet-streamis a classic cause of error 131053. - Linking to a slow or private URL, such as a signed link that has expired or a page behind a login.
- Relying on an old media ID. IDs expire after 30 days.
- Ignoring inbound expiry. Customer files must be saved within 7 days.
- Animated WebP as an image. It is rejected; use a sticker or a video.
- Limits change. Re-check Meta's reference before you hard-code validation.
How OmniChannels.ai helps
OmniChannels.ai sends WhatsApp image, video, audio, document and sticker messages through one API, with a public link or an uploaded file and a caption, and shows media and attachments in the shared inbox. BroadNet is an official Meta Business Solution Provider, so templates with image, video or document headers can be created and tracked with approval status. Read the WhatsApp API docs and errors and limits, or see the WhatsApp channel.
Frequently asked questions
What is the WhatsApp API file size limit?
It depends on the type. Meta's documentation lists 5 MB for images, 16 MB for video and audio, 100 MB for documents, and 500 KB for animated or 100 KB for static stickers. The Cloud API ceiling for media is 100 MB. Limits can change, so confirm them in Meta's current media reference before building validation rules.
Which file types does the WhatsApp Business API support?
Images: JPEG, PNG and static WebP. Video: MP4 and 3GPP with H.264 video and AAC audio. Audio: AAC, AMR, MP3, M4A and Opus-coded OGG. Documents: TXT, XLS, XLSX, DOC, DOCX, PPT, PPTX and PDF. Stickers: WebP only. Anything outside these lists is rejected, so convert before sending.
Should I send media by link or by media ID?
Meta's documentation recommends an uploaded media ID for better performance. A link must point to a file on a public server, so the platform has to fetch it at send time. An ID refers to a file already stored with Meta. IDs from an upload are valid for 30 days, after which you must upload again.
How long does a WhatsApp media ID stay valid?
Meta documents 30 days for IDs returned when you upload media, and 7 days for media IDs received in inbound webhooks. Uploaded files persist for 30 days unless deleted earlier. The download URL you get from a media ID expires after 5 minutes, so request a fresh URL whenever you need the file.
Can I add a caption to a WhatsApp image or video?
Yes. Meta's message reference lists an optional caption of up to 1,024 characters for image, video and document messages. Audio and sticker messages have no caption. If you need text with a sticker or voice note, send a separate text message after it.
What does WhatsApp error 131053 mean?
Meta describes it as being unable to upload the media used in the message. The usual cause is a MIME type that does not match the file extension, or an unsupported type. Check the error details in the related webhook, confirm the format against Meta's supported media types, and re-encode the file if needed.
Sources
- Media — WhatsApp Business Platform, Meta for Developers
- Image messages — WhatsApp Business Platform, Meta for Developers
- Video messages — WhatsApp Business Platform, Meta for Developers
- Document messages — WhatsApp Business Platform, Meta for Developers
- Error codes — WhatsApp Business Platform, Meta for Developers
Keep reading
More guidesWhatsApp
Free WhatsApp Business API Messages in 2026: What Costs Nothing
Which WhatsApp Business API messages are free in 2026: 1,000 free service messages per number, the 72-hour free entry point window, and what is charged.
9 min read
WhatsApp
Best WhatsApp Business API Provider in Cairo: A City Guide
Choosing a WhatsApp Business API provider in Cairo: COD order confirmation, ar_EG templates, call-centre teams, wallet payments and a local BroadNet office.
9 min read
Integration
WhatsApp Webhooks Guide: Events, Security and Retries
How WhatsApp webhooks work: message and status events, a reliable handler, Meta's signature check, retries, idempotency and recovery when events go missing.
10 min read
