Skip to content
OmniChannels.ai

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.

Updated 9 min read

By OmniChannels.ai Editorial Team · Reviewed by BroadNet Messaging Solutions Team

WhatsApp

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
  1. What are the WhatsApp API media file size limits?
  2. Which image and sticker formats are supported?
  3. Which video and audio formats are supported?
  4. Which document formats are supported?
  5. Should I upload media or send a link?
  6. How long do media IDs stay valid?
  7. Can I add captions to media messages?
  8. How does media work in message templates?
  9. How do I download media a customer sends?
  10. Worked example: a dental clinic sending reports
  11. What are the common mistakes?
  12. 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
PDF .pdf 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.

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.

  1. Read the media ID from the inbound message event.
  2. Request the media URL for that ID. Meta's response includes url, mime_type, sha256 and file_size.
  3. Send a GET to that URL with an Authorization: Bearer <token> header. Without the token the request fails.
  4. Check the Content-Type header and the sha256 value, then store the file.
  5. 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.

  1. Appointment cards are 300 KB PNG images with a caption of two lines. Well under 5 MB.
  2. Treatment reports are PDFs of 2 to 8 MB, named report-2026-0381.pdf, sent as documents.
  3. 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.
  4. Patients send photos of prescriptions. The inbox downloads each file immediately, because the inbound ID expires after 7 days.
  5. 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 .jpg served as application/octet-stream is 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

  1. Media — WhatsApp Business Platform, Meta for Developers
  2. Image messages — WhatsApp Business Platform, Meta for Developers
  3. Video messages — WhatsApp Business Platform, Meta for Developers
  4. Document messages — WhatsApp Business Platform, Meta for Developers
  5. Error codes — WhatsApp Business Platform, Meta for Developers