Sending media: images, video, audio and documents
Media is sent either by uploading the file first and referencing the id it returns, or by giving Meta a public link to fetch. Uploading is more reliable, and the size limits differ by type in ways that catch people out.
The image size ceiling on the Cloud API.
The ceiling for video and audio.
The ceiling for documents.
The limits, by type
Different for each, and exceeding one returns error 131053 rather than anything descriptive.
- Images: 5 MB. JPEG and PNG.
- Video: 16 MB. MP4 and 3GPP, with H.264 video and AAC audio.
- Audio: 16 MB. AAC, AMR, MP3, MP4 audio and OGG with Opus.
- Documents: 100 MB. Most common document types, including PDF and Office formats.
- Stickers: 100 KB animated, 500 KB static, WebP only.
Uploading versus linking
Two ways to send the same file, and they fail differently.
Uploading posts the file to Meta first and returns a media id you reference when sending. Linking gives Meta a URL to fetch at send time. The link route looks simpler and adds a failure mode you cannot see: a URL that loads in your browser may be unreachable from Meta's infrastructure because of geography, a firewall rule or a session cookie your browser already holds.
Upload. It is one extra request and it removes an entire class of failure.
Receiving media
Inbound media arrives as a media id rather than as bytes. Your handler fetches the file separately using that id.
- Fetch promptly. Ids do not stay valid indefinitely.
- A failed fetch returns error 131052, which usually means the sender's upload was incomplete.
- Store the file yourself if you need it later. Meta is not an archive.
- Record the message even when the media fetch fails, so the text and context survive.
What Coexistence changes
Media on a Coexistence number works exactly as on any other Cloud API number, with the same limits.
The one difference worth knowing is history. When a number first connects, Meta synchronises recent messages from the WhatsApp Business app, and that synchronisation covers message text rather than being a full media archive. Media from before the connection is on the phone, where it always was.
Common mistakes
- Sending a link because it looks simpler. Meta's network is not your browser.
- Fetching inbound media hours later. Media ids expire.
- Exporting video without checking the codec. Editing software defaults are often unsupported.
EasyCoexistence delivers inbound message events straight from Meta to your endpoint, so media ids reach your system immediately and can be fetched while they are still valid.
Frequently asked questions
What is the largest file I can send?
100 MB, and only for documents. Video and audio cap at 16 MB and images at 5 MB.
Should I upload or send a URL?
Upload. It removes reachability as a cause of failure.
How long is a media id valid?
Not indefinitely, which is why inbound media should be fetched as soon as the event arrives.
Does old media sync when I connect?
No. History synchronisation covers recent message content; media from before the connection stays on the phone.
Keep reading
Ready to get started?
Set up WhatsApp Coexistence in minutes, not months. The app keeps working on the phone.
Start Free TrialVerified on