Test WhatsApp Business Cloud API messages directly from your browser. Send text, templates, images, and documents.
Privacy: Your access token is never stored or sent to our servers. All API calls are made directly from your browser to Meta's servers.
curl -X POST 'https://graph.facebook.com/v18.0//messages' \
-H 'Authorization: Bearer ' \
-H 'Content-Type: application/json' \
-d '{"messaging_product":"whatsapp","to":"","type":"text","text":{"body":""}}'{
"messaging_product": "whatsapp",
"to": "",
"type": "text",
"text": {
"body": ""
}
}The WhatsApp API Tester lets you send test messages through the WhatsApp Cloud API (Meta Graph API) directly from your browser, without writing a curl command or standing up a backend. You paste your Phone Number ID, a permanent or temporary access token, and a recipient number in international E.164 format, then fire a POST request to the /messages endpoint and inspect the raw JSON response and HTTP status.
It is built for developers integrating WhatsApp Business messaging, QA engineers verifying template approvals, and support teams confirming that their WABA (WhatsApp Business Account) is wired up correctly. You can send plain text messages or pre-approved template messages with named/positional variables, which is the only message type allowed outside the 24-hour customer service window.
Every message is an HTTPS POST to the Graph API endpoint https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages with an Authorization: Bearer {TOKEN} header and a JSON body. A text message body looks like {"messaging_product":"whatsapp","to":"919876543210","type":"text","text":{"body":"Hello"}}. The messaging_product field is mandatory and must equal "whatsapp".
Template messages replace the text object with a template object naming the template, its language, and a components array that supplies variable values. Meta enforces a 24-hour customer service window: after a user messages you, you have 24 hours to reply with freeform text; outside that window only approved template messages are delivered, which is why the tester defaults to surfacing both types.
A successful call returns HTTP 200 with a messages array containing a wamid (WhatsApp message ID). Common failures include 401 (expired or invalid token), 190 (token error), 131030 (recipient not in allowed list for a test number), and 132001 (template does not exist or is not approved) — the tester shows the full error object so you can act on the exact code and subcode.
Yes, it is completely free and runs in your browser. Your access token and phone numbers are used only to build the request; they are not stored on our servers. Because it calls Meta's Graph API directly, treat any token you paste as a live secret.
Test phone numbers provided by Meta can only message numbers you have explicitly added as recipients in the API Setup page. Add and verify the destination number there, or move to a registered production number to message anyone who has opted in.
Only within the 24-hour customer service window that opens when a user messages your business. Outside that window, WhatsApp rejects freeform text and you must use an approved template message instead.
In the Meta for Developers dashboard under your app's WhatsApp > API Setup section. It lists the Phone Number ID, a temporary 24-hour token, and instructions for generating a permanent System User token for production.
The token shown on the API Setup page is temporary and expires after 24 hours. For anything lasting longer, create a System User in Business Settings and generate a permanent access token with the whatsapp_business_messaging permission.
The tester focuses on text and template messages, which cover most integration checks. For media or interactive payloads you can copy the generated request structure and extend the JSON body per Meta's documentation.
Requests are sent to a recent stable version such as v21.0. Meta versions the Graph API, so if a field is rejected, confirm your app is configured for a compatible version in the dashboard.