Jul 10, 2026

WhatsApp Cloud API vs On-Premises API: What Changed and How to Migrate

The On-Premises API is fully retired. Here is exactly how Cloud API differs, why Meta killed the self-hosted client, and what to check in your codebase before you migrate.

Send bulk WhatsApp messages the safe way
Import a CSV, personalize each message, and broadcast on the official WhatsApp Business API. Free tier: 500 messages a month.
Start free →

The core difference: the On-Premises API was a client you hosted and maintained yourself on your own servers, while the WhatsApp Cloud API is hosted entirely by Meta with no infrastructure for you to run. The On-Premises client is now fully retired, so Cloud API is the only path forward.

Last updated July 2026.

What each API actually was

The On-Premises API (sometimes written "on premises API" or "on-prem") shipped as a Docker-based client you ran yourself. You stood up the containers, connected a Postgres or MySQL database for message state, registered your phone number against the client, and scheduled every version upgrade Meta released. Your servers held the connection to WhatsApp. If your database fell over at 2am, that was your pager, not Meta's.

The Cloud API removed all of that. It is hosted by Meta on Meta's servers and built on the Graph API, so you send messages by making HTTPS calls to graph.facebook.com. No container to run, no database cluster to keep alive, no client version to patch. You send a request, Meta handles delivery, and Meta streams status updates back to your webhook.

Why Meta retired the On-Premises API

Meta closed new On-Premises sign-ups after July 1, 2024 and set a hard sunset. The final supported version of the On-Premise API client expired on October 23, 2025. It is fully retired and can no longer send messages. If you still have on-prem containers running, they are dead weight now. The official notice is at developers.facebook.com/docs/whatsapp/on-premises/sunset.

The reasoning is straightforward. A self-hosted client meant thousands of businesses running their own copies, each on a different version, each a separate support and security surface. Consolidating everyone onto one Meta-hosted platform lets Meta ship features and patch security once. For most teams the migration is a net simplification, since a whole category of ops work disappears.

Cloud API vs On-Premises API at a glance

DimensionOn-Premises API (retired)Cloud API
Who hosts itYou, on your own serversMeta, on Meta's servers
Cost of hostingYour infrastructure bill (containers, database, uptime)None; no infrastructure to run
Client upgradesYou scheduled and applied every versionMeta updates the platform for you
ThroughputDepended on your hardware and tuningUp to 80 messages per second by default, upgrades available
Media storageStored and managed on your own databaseHandled by Meta; you fetch by media ID
ScalingProvision more servers yourselfAutomatic tier increases based on quality and volume
Status todayFully retired as of Oct 23, 2025The only supported Meta WhatsApp API

What actually changes for engineers migrating

If you are moving "migrate from on-premises to cloud API" from a wishlist item to a shipped project, here is what to check in your codebase.

Endpoint host

On-prem code pointed at your own hostname or IP. Cloud API calls go to graph.facebook.com instead. Swap the base URL, add your access token as a bearer header, and route through your WhatsApp Business Account ID and phone number ID. Do not hardcode a Graph API version you think is current; Meta rolls versions, so read the docs for the version string when you build.

Webhook payload shape

Both APIs push inbound messages and delivery statuses to a webhook, but the payload structure differs. Point your webhook at the new Cloud API configuration and re-parse. Test inbound text, media, status callbacks (sent, delivered, read, failed), and error notifications against real payloads before you cut over. Do not assume your old parser maps cleanly.

Media handling

This trips people up. On-prem stored media in your database, so your code likely read bytes locally. Cloud API stores media on Meta's side: you upload media to get a media ID, send the ID, and to receive media you fetch it by ID from the Graph API before the URL expires. Rework any code that assumed media lived on your own disk.

Template management

Templates move to being managed through the WhatsApp Business Account rather than registered against a client you host. Audit your existing templates, recreate or re-map them, and confirm each one's category (marketing, utility, or authentication), because category now drives both billing and deliverability.

One planning note. A sunset date like October 23 is really a program to track across every team that touches the integration, not a single ticket, since billing, deliverability, webhooks, and template ownership often sit with different people.

The pricing model changed too

Since July 1, 2025, Meta bills per message. You are charged only when a template message is delivered, and the rate depends on the template's category and the recipient's country calling code. All non-template messages are free (sendable only inside an open 24-hour customer service window). Utility templates delivered within an open customer service window are free, and messages are free for 72 hours when the chat starts from a Click to WhatsApp ad or a Page call-to-action.

Important warning: the older "conversation-based" model, with 24-hour conversations and a free first-1,000-conversations allowance, was deprecated on July 1, 2025. Plenty of blog posts still describe it as current. It is not. Ignore any guide that talks about conversation pricing. Meta does not publish exact per-message dollar figures in its developer docs either; it provides downloadable rate cards and an interactive pricing tool, so pull your real numbers from there. For a fuller breakdown of what Meta actually bills you for, check the current rate card for the categories and countries you send to.

Messaging limits and scaling

Cloud API caps how many unique customers you can message in a rolling 24-hour window, in tiers: 250, then 2,000, then 10,000, then 100,000, then unlimited. New business portfolios start at 250. You reach 2,000 by completing a scaling path such as business verification. Above 2,000, tiers advance automatically by one level within 6 hours when you send high-quality messages and use at least half of your current limit within 7 days. Note there is no 1,000 tier, despite what some older posts claim. See our guide to how WhatsApp messaging limits actually scale for the full ladder.

Separately from the daily unique-customer cap, throughput is up to 80 messages per second by default with upgrades available, and a business number can send at most 1 message every 6 seconds to the same WhatsApp user.

The US marketing block you need to know about

If you send to United States numbers, this matters. Since April 1, 2025, Meta does not deliver marketing-category templates to US phone numbers, and Cloud API returns error 131049 when you try. No resume date has been announced as of July 2026. Utility templates, authentication templates, and any replies inside the open 24-hour customer service window do still deliver to US numbers. So plan US messaging around utility and authentication flows plus session replies, not marketing blasts.

Solution Partner or go direct?

Both a Solution Partner and a Tech Provider use the exact same Cloud API, so this is not a technical choice. The difference is financial: a Solution Partner can extend you a credit line and invoice you for API usage, while a Tech Provider cannot. ("Business Solution Provider" or BSP is the old name for the partner role.) If you want consolidated billing, credit terms, or hands-on onboarding, a Solution Partner is worth it. If you are comfortable managing your own Meta billing, going direct is fine. Either way, registering a phone number to the WhatsApp Business Platform removes it from the WhatsApp and WhatsApp Business consumer apps permanently, so use a number you can dedicate.

Frequently asked questions

Is the WhatsApp On-Premise API being deprecated?

It is already gone, not just deprecated. New sign-ups closed after July 1, 2024, and the final supported On-Premise API client version expired on October 23, 2025. It is fully retired and can no longer send messages. Cloud API is the only supported Meta WhatsApp API today.

What is the difference between WhatsApp Business API and Cloud API?

"WhatsApp Business API" is the general platform name. Historically it had two hosting options: the self-hosted On-Premises API and the Meta-hosted Cloud API. Since the On-Premises client retired in October 2025, Cloud API is the only remaining implementation, so in practice the two terms now point to the same thing.

Is WhatsApp Cloud API free?

The platform has no hosting fee and Meta does not run infrastructure for you to pay for, but messaging is not entirely free. Since July 1, 2025, Meta charges per delivered template message based on category and country. Non-template replies inside an open 24-hour customer service window are free.

Do I need a phone number for WhatsApp Cloud API?

Yes. Every Cloud API setup requires a phone number registered to your WhatsApp Business Account. Registering it removes that number from the regular WhatsApp and WhatsApp Business consumer apps permanently, so pick a dedicated number you are not using for personal or in-app business chats.

Can I still send WhatsApp marketing messages to US numbers?

Not as marketing-category templates. Since April 1, 2025, Meta does not deliver marketing templates to US numbers and returns error 131049. Utility templates, authentication templates, and replies inside the open 24-hour customer service window do deliver to US numbers. No resume date has been announced as of July 2026.