Already built on WhatsApp Cloud API? Change the host and the token.
This is not "we have an API too". It is the same API. The endpoint paths match Meta's, the request bodies match, the responses match, and errors come back in Meta's own envelope — so the error handling you already wrote keeps working. Point your client at a different host, swap the token, and stop.
Included inWiz BotWiz CampaignWiz Pro
- A host and a token. The rest of your integration is untouched
- Two changes
- Failures come back in Meta's own error envelope, so existing handling still applies
- Same errors
- The version in your URL keeps working after Meta retires it
- Version-proof
Who it's for
The business or agency that already paid a developer to integrate Meta's Cloud API — and is not paying again to migrate.
The worry it answers
"Switching platforms means re-integrating." Not when the endpoints, the payloads and the error shapes are identical.
How the migration works
Create a key
Generate an API key in the dashboard. It is presented in the same header shape as a Meta token.
Change the base URL
Point your existing client at the compatible host instead of Meta's.
Swap the token
Use your key as the bearer token. Nothing about your request construction changes.
Run your existing tests
Same paths, same bodies, same responses, same error envelope — your suite is the migration check.
What is mirrored
The endpoints most integrations actually use, at the paths Meta documents.
- Sending messages at the same message endpoint you already call
- Marking messages read and sending typing indicators, with the same request body
- Media upload, returning an id in the shape you already parse
- Listing message templates
- Media metadata, download and delete — the metadata returns a working URL your client can fetch without knowing whose it is
- An allow-listed passthrough for the remaining documented paths
- Errors in Meta's own envelope, so existing error handling keeps working
Version pinning that outlives Meta's deprecations
The version segment in the URL is accepted and then ignored. That sounds like a shortcut and is actually a benefit worth saying out loud: a client pinned to an older version keeps working after Meta retires it, and pinning a newer one cannot opt you into behaviour that is not deployed. The version in your code stops being a maintenance chore.
An allow-list, not a blind proxy
Only the documented paths exist, and each one checks that the identifier in the path belongs to the key calling it. That keeps the surface auditable — you can state exactly what this endpoint can reach — and it means a mistake in your client gets an honest error instead of being forwarded somewhere unexpected. Every send still routes through the platform, so the same rate limiting and account protections apply as anywhere else.
Good to know
Where this feature stops, in plain words — so nothing here surprises you after you buy.
- Requires an active subscription and passes the same entitlement and rate-limit checks as the rest of the API.
- This is an allow-list, not an open proxy. Only the documented paths exist, and each asserts the identifier in the path belongs to your key.
- The version segment is matched and then ignored — calls always go to the configured platform version. That is deliberate, and it is why an old pin keeps working.
- GET, POST and DELETE only. There is no PUT or PATCH, because answering those with a plausible error would be less honest than a 404.
- Sends still route through the platform gateway rather than straight out, so account-level rate limiting and protections still apply.
Included in
This feature is part of the plans below.
- Wiz Bot
- Wiz Campaign
- Wiz Pro
Frequently Asked Questions
How much of my code has to change?
The base URL and the token. Paths, request bodies, responses and error shapes are the same, which is the entire point of the feature.
Is this really the same API, or just similar?
The same paths, the same request bodies, the same responses, and the same error envelope. "Similar" would still cost you a rewrite; this is designed so your existing tests pass unchanged.
What about the version number in my URLs?
It is accepted and ignored, so a client pinned to an older version keeps working after Meta retires that version. You do not have to chase deprecations.
Which HTTP methods are supported?
GET, POST and DELETE. There is no PUT or PATCH — we would rather return an honest 404 than a convincing error for something that does not exist.
Is everything Meta offers available?
No. This is a deliberate allow-list of the documented paths, not a blind proxy, so the surface stays auditable.
Do I still get the platform's own features?
Yes. Sends route through the same platform your dashboard uses, so the inbox, analytics, account protections and rate limiting all still apply.
Explore More Features
Discover other tools that make WizMessage the complete WhatsApp platform.
- API ManagementAPI keys you control and can revoke, a webhook with a test button and delivery logs, a playground, and generated code snippets.
- Message TemplatesCreate approved templates, track their status, and personalise them from your contact data — without learning Meta's Business Manager.
- Failure VisibilityA visible log of what went wrong on your account: a failed send, a rejected call, a broken integration. With a detail view per incident.
- WhatsApp CoexistenceConnect the WhatsApp Business number you already use, through Meta's own onboarding. Your phone keeps working; automation runs alongside it.
- Wiz CopilotAn in-app assistant that operates the dashboard by conversation — and stops at an approval you can read and edit before anything changes.
- Website Chat WidgetOne script tag puts the same chatbot on your site — with its own inbox and its own handoff queue.