All articles
Operations

WhatsApp Message Limits 2026: Characters & File Sizes

WhatsApp API limits: 4,096-char text, 1,024-char template body, 5 MB image, 16 MB video/audio, 100 MB PDF. Full cheat sheet + fixes for Indian businesses.

RichAutomate Team
10 min read 1 view
WhatsApp Message Limits 2026: Characters & File Sizes

On the WhatsApp Business API, a free-form session text message can be up to 4,096 characters, while an approved template body is capped at 1,024 characters, with 60-character headers and footers. For media, images can be up to 5 MB, video and audio up to 16 MB, and documents such as PDF invoices up to 100 MB.

Those are the numbers that matter most, but they are not the whole story. Buttons, list rows, captions, stickers and codecs all have their own limits, and most "WhatsApp is not sending" tickets we see from Indian businesses come from one of them. This guide puts every common limit in one place, explains how Hindi and regional scripts are counted, and ends with a pre-send checklist your team can use before every campaign.

A note on accuracy: the figures below are Meta's published Cloud API limits at the time of writing (October 2026). Meta revises them from time to time, so verify against Meta's developer documentation before you hard-code anything into your own integration.

Why WhatsApp limits matter more than you think

Exceeding a limit rarely fails gracefully. Depending on where you break the rule, you will see one of four outcomes:

  • The template is rejected at submission because a component is too long or a sample is invalid.
  • The API call fails with a validation error, usually because a variable pushed the final body past its limit.
  • The message is accepted but never delivered, which is typical for videos with the wrong codec or files over the size cap.
  • The message delivers but performs badly, because the customer only sees the first line in the notification and never opens it.

The first three cost you money and time. The fourth quietly costs you read rate on every campaign. Knowing the limits up front avoids all four.

Text character limits by message component

WhatsApp treats each part of a message as a separate field with its own cap. This table covers session messages (sent inside the 24-hour customer service window), template messages and interactive messages.

ComponentLimitNotes
Session (free-form) text message4,096 charactersOnly inside the 24-hour window after the customer messages you
Media caption (image, video, document)1,024 charactersShown under the media; keep the key line first
Template header (text)60 charactersCan include one variable; variable counts toward the 60
Template body1,024 charactersLimit applies after variables are filled in
Template footer60 charactersNo variables allowed
Template button text25 charactersApplies to quick-reply, URL and phone-number buttons
URL button targetUp to 2,000 charactersOne variable allowed at the end of the URL (dynamic URL)
Template buttons, totalUp to 10 combinedQuick-reply and call-to-action buttons together; Meta caps URL and phone buttons separately
Interactive reply buttonsMax 3 buttonsEach button title up to 20 characters
Interactive list: button label20 charactersThe label that opens the list, such as "View plans"
Interactive list: rowsUp to 10 rows totalSpread across sections
Interactive list: section title24 charactersRequired when you use more than one section
Interactive list: row title24 charactersKeep it scannable
Interactive list: row description72 charactersOptional secondary line

Templates vs interactive messages

Teams often confuse the two button systems. Template buttons are defined when you submit the template to Meta and go out with that template, including outside the 24-hour window. Interactive reply buttons and lists are built at send time and can only be used inside an open session. If you need structured choices in a first-touch marketing message, you need a template with quick-reply buttons. Our guide to reply buttons, list messages and flow templates walks through which format fits which journey.

For product showcases, carousel templates add another layer: each card has its own short body and buttons, and every card must use the same header media type. See the WhatsApp carousel template guide for the card-level rules.

Media file-size limits by type

Media limits are enforced on the file you upload or link. A file one kilobyte over the cap fails, so leave headroom.

Media typeSupported formatsMax sizePractical notes
ImageJPEG, PNG5 MB8-bit RGB or RGBA; no transparency surprises in JPEG
VideoMP4, 3GPP16 MBH.264 video codec with AAC audio; a single audio stream or none
AudioAAC, MP3, AMR, OGG (Opus codec only)16 MBOGG with Opus plays as a voice note
DocumentPDF, DOCX, XLSX, PPTX, TXT and similar100 MBPDF gives the most reliable preview on phones
StickerWebP100 KB static / 500 KB animatedExactly 512 x 512 pixels

Product videos under 16 MB

Most Indian D2C brands shoot product videos on a modern phone at 4K, which produces roughly 50 to 100 MB per minute. That will never go through. Export at 720p, H.264, a bitrate around 1.5 to 2 Mbps and AAC audio at 128 kbps, and a 45-second clip lands comfortably near 8 to 10 MB. Shorter is also better for watch-through. The WhatsApp video messages guide covers encoding settings and template headers in detail.

GST invoices and long PDFs

The 100 MB document cap is generous; a GST tax invoice is usually under 300 KB. The real issues are elsewhere: scanned invoices saved as high-resolution images inside a PDF can balloon to 20 MB or more and load slowly on 4G, and files without a sensible filename look suspicious to customers. Generate invoices as text-based PDFs, name them clearly (for example, Invoice-INV-2026-0142.pdf), and send them as a document, not an image. Our guide to sending PDF documents through the WhatsApp API has the full workflow, including template document headers.

How Hindi, regional scripts and emoji are counted

WhatsApp counts characters, not bytes. A Devanagari, Tamil or Bengali message is not penalised because each character takes more bytes to store. But "character" is less obvious in Indic scripts than it looks.

Stop overpaying on WhatsApp

Get a 1-minute BSP audit on WhatsApp

Drop your WhatsApp number — we line-item your current invoice against Meta India rates in under 60 seconds. India-hosted, DPDP-compliant.

DPDP-compliant · India-hosted · 1-min reply
  • Conjuncts and matras count separately. A syllable that looks like one letter, such as "क्ष" or "कि", is made of several Unicode code points. A Hindi sentence that looks like 80 letters may count as 110 or more.
  • Emoji can count as two or more characters. Many emoji are surrogate pairs, and skin-tone or flag emoji are sequences of several code points. A body full of emoji uses up the 1,024 budget faster than you expect.
  • Line breaks count. Every newline is a character. Heavy formatting with blank lines between every sentence adds up.
  • Formatting markers count. The asterisks for bold and underscores for italics are part of the text.

The safe approach is to measure the final text with a tool that counts Unicode code points, rather than eyeballing it in a word processor. RichAutomate validates template lengths and media before you submit, so a Hindi or Hinglish body that is over the limit gets flagged before it reaches Meta's review queue.

Template variables: the hidden length trap

The 1,024-character body limit applies to the message as delivered, after every variable has been replaced. A template that measures 950 characters with placeholders like {{1}} and {{2}} can fail at send time when {{1}} is a long customer name and {{2}} is a 120-character product title.

Three habits prevent this:

  1. Budget each variable. Decide a maximum length for every variable (for example, name 30, product 60, order ID 20) and add those maximums to the static text.
  2. Truncate in your data layer. Cut long product names to a fixed length with an ellipsis before they go into the payload.
  3. Use realistic samples. Meta reviews the sample values you provide. Short, realistic samples get approved faster and reflect what customers actually see.

For more on structuring variables, see our guide to WhatsApp template variables and personalisation.

Just because you can use 1,024 characters does not mean you should

On most Android phones, the notification shows only the first line or two of a message, roughly 40 to 60 characters before truncation. The lock-screen preview is often all a customer reads before deciding whether to open it.

In practice, we recommend:

  • Marketing bodies of about 300 to 600 characters. Long enough to give context and an offer, short enough to read in one glance after opening.
  • Utility messages as short as possible. An order confirmation or delivery update rarely needs more than 200 characters plus a button.
  • The hook in the first line. Put the offer, the order number or the reason for the message right at the top. "Your order #4821 has shipped" beats "Dear valued customer, we are pleased to inform you".
  • Details behind a button. Push long terms, size charts or catalogues to a URL button or a PDF rather than the body.

Symptom, cause and fix: troubleshooting limit errors

When something fails, start from what you observe. This table maps the most common symptoms to their usual causes.

SymptomLikely causeFix
Template rejected at submissionBody over 1,024 characters, header or footer over 60, or a button label over 25Trim the component; count Unicode characters, not visible letters
Template approved but send fails with a parameter errorVariables expanded the body past 1,024 characters, or a header variable pushed the header past 60Cap variable lengths and truncate long values before sending
Header image looks blurry or is rejectedLow-resolution source, wrong format (WebP, HEIC) or file over 5 MBUse JPEG or PNG around 1,125 x 600 pixels, compressed under 1 MB
Video accepted by API but never deliversWrong codec (HEVC/H.265 from iPhones), multiple audio tracks, or over 16 MBRe-encode to MP4 with H.264 video and AAC audio, under 16 MB
Audio does not play as a voice noteOGG file encoded with Vorbis instead of OpusRe-encode OGG with the Opus codec, or send as MP3/AAC
Document shows no preview or a generic iconMissing or wrong file extension, scanned image saved oddly, or no filename passedSend a text-based PDF with a clear filename and correct extension
Message truncated in notifications, low read rateKey information buried below the first lineLead with the hook in the first 40 to 60 characters
Interactive message fails to sendMore than 3 reply buttons, a button title over 20 characters, or more than 10 list rowsSwitch to a list for more options, or shorten titles
Sticker rejectedNot WebP, not 512 x 512, or over 100 KB static / 500 KB animatedExport to WebP at exactly 512 x 512 and compress

If the template is rejected for content rather than length, the causes are different. Our template rejection fixes guide covers policy and formatting reasons, and the WhatsApp Business API error codes decoded article explains the API errors you will see in webhook responses.

Pre-send checklist

Run through this before submitting a template or launching a campaign:

  1. Body measures under 1,024 characters with every variable at its maximum expected length.
  2. Header and footer are each under 60 characters; every button label is under 25.
  3. The first line carries the hook, order number or offer.
  4. Marketing body sits around 300 to 600 characters; utility messages are shorter.
  5. Header image is JPEG or PNG and under 5 MB (ideally under 1 MB).
  6. Video is MP4, H.264 plus AAC, single audio track and under 16 MB.
  7. Documents are text-based PDFs with a clear filename.
  8. Interactive messages use no more than 3 reply buttons or 10 list rows, with titles inside their limits.
  9. Hindi or regional-language text has been counted in Unicode characters, including emoji and line breaks.
  10. A test send to an internal number has been checked on both Android and iPhone.

What sending costs on RichAutomate

Message length and media size do not change the per-message price; WhatsApp charges per delivered template message by category. RichAutomate has ₹0 setup and ₹0 monthly on pay-as-you-go. With Client Pay you pay Meta's rate plus ₹0.10 per message (Meta's marketing rate is about ₹0.8631 and utility about ₹0.13). With SaaS Pay it is all-inclusive at ₹1.50 per marketing message and ₹0.50 per utility message. Full details are on the RichAutomate pricing page.

Ready to send templates that pass review the first time? RichAutomate checks character counts and media files before submission, so your team spends time on campaigns, not on rejections. Start free trial with 14 days and 100 free credits, no setup fee.

Ready to ship this?

Get the full migration playbook on WhatsApp

A founder-led 1-minute reply with the migration steps, template approval timeline, and a 14-day pilot offer. DPDP-compliant. India-hosted. No spam.

DPDP-compliant · India-hosted · 1-min reply
Tagged
WhatsApp Business APICharacter LimitsMedia File SizeWhatsApp TemplatesInteractive MessagesIndia
Written by
RichAutomate Team
Editorial team at RichAutomate. We build the WhatsApp Business automation platform Indian D2C brands, fintechs, and agencies use to ship campaigns and flows on the official Meta Cloud API.
FAQ

Frequently asked questions

What is the character limit for a WhatsApp Business API message?
A free-form session text message can be up to 4,096 characters and can only be sent inside the 24-hour customer service window. Template messages are stricter: the body is capped at 1,024 characters, and the header and footer at 60 characters each. Media captions allow up to 1,024 characters. These are Meta's published limits at the time of writing.
What is the maximum file size for images, videos and PDFs on WhatsApp API?
Images in JPEG or PNG can be up to 5 MB. Video in MP4 or 3GPP and audio in AAC, MP3, AMR or OGG with Opus can be up to 16 MB each. Documents such as PDF, DOCX, XLSX and PPTX can be up to 100 MB. Stickers must be WebP at 512 by 512 pixels, under 100 KB static or 500 KB animated.
Do template variables count toward the 1,024-character body limit?
Yes. The limit applies to the final message after every variable is filled in. A template that measures 950 characters with placeholders can fail at send time when a long customer name or product title is inserted. Set a maximum length for each variable, truncate long values in your system before sending, and use short, realistic samples when submitting the template.
How are Hindi and other Indian language characters counted on WhatsApp?
WhatsApp counts characters, not bytes, so Devanagari, Tamil or Bengali text is not penalised for using more storage. However, conjuncts and vowel signs are separate Unicode code points, so a Hindi sentence often counts longer than it looks. Emoji can count as two or more characters, and line breaks and formatting symbols also count toward the limit.
Why does my WhatsApp video fail to send through the API?
The most common causes are the wrong codec, multiple audio tracks or a file over 16 MB. Videos shot on iPhones often use HEVC, which WhatsApp does not accept. Re-encode to MP4 with H.264 video and AAC audio in a single track. Exporting at 720p with a bitrate around 1.5 to 2 Mbps keeps a 45-second clip comfortably under the limit.
RichAutomate · WhatsApp BSP for India 2026

Ship WhatsApp campaigns + flows on a transparent, compliance-ready BSP.

₹0 platform fee. DPDP audit log included. Visual flow builder. Multi-tenant from day one.

Start free trial
Want this for your brand?

Get a free 24-hour BSP audit

Send us your last invoice. We line-item it against Meta's published rates and benchmark against three alternatives.

Limited Spots Available

Get a Free
Automation Audit

Stop leaving revenue on the table. Get a custom roadmap to automate your growth.

Secure & Confidential