WhatsApp Link API: wa.me & api.whatsapp.com Explained
A WhatsApp link is a URL, not an API. Here are the exact formats, the text parameter, a free generator, and where the link stops.
WhatsApp Link API: How wa.me and api.whatsapp.com Links Actually Work
Both open a chat, then a person takes over.
- 1Someone opens the URL
- 2WhatsApp opens the chat
- 3A person presses send
What is a WhatsApp link API?
There is no WhatsApp link API. https://wa.me/<number> and https://api.whatsapp.com/send?phone=<number> are click-to-chat URLs. The APIs begin where the link stops.
- Setup
- None
- On click
- Opens a chat, pre-fills text
- Who acts
- A human presses send
- Setup
- Account linking and an API key
- On call
- Sends, receives and lists messages
- Who acts
- Your software, on behalf of the linked account
What is the exact wa.me link format?
The documented format is https://wa.me/<number>, with the full phone number in international format.
https://wa.me/1XXXXXXXXXXhttps://wa.me/+001-(XXX)XXXXXXXWhat is the difference between wa.me and api.whatsapp.com/send?
Both open the same conversation. Only the place of the number changes.
Number in the path. Documented by WhatsApp.
Number in the phone parameter. Not on the current help page we could find.
A documentation gap, not a deprecation. Build new links on wa.me.
How do you add a pre-filled message to a WhatsApp link?
Append ?text= and the URL-encoded message: https://wa.me/<number>?text=<urlencodedtext>. The text stays editable.
%20%0A%26%23%2BEmoji and the rest: encodeURIComponent().
No number? https://wa.me/?text=... opens the contact picker.
const number = "1XXXXXXXXXX";
const text = "Hi! I have a question.";
const link = `https://wa.me/${number}` +
`?text=${encodeURIComponent(text)}`;
Generate your WhatsApp link
Type a number and a message, copy what you need.
Runs in your browser. No number is sent to a server.
Remove the leading 0 and start with the country code. This number looks incomplete. (add a message above) CopiedA link opens a chat. It does not send, and your product never sees the reply.
Does a WhatsApp link send the message?
No. Nothing is delivered until the person holding the phone presses send.
What can a WhatsApp link not do?
A click-to-chat link is stateless: your app never learns what happened next.
- Link clicked
- Chat opens
- Message pre-filled
- Manual send
- Reply received
- Conversation history
- Webhook event
- Per-user attribution
How do you get the reply back into your app?
You need an API that holds a WhatsApp session. Two routes exist.
- Requires a verified WhatsApp Business account
- Billed per message since July 1, 2025, see the WhatsApp Business API pricing
- Replies in the 24-hour window: 1,000 free per number each month since October 1, 2026
- Each end user links their own WhatsApp account
- Your app acts on behalf of the authenticated user
- Reads and sends from the real inbox, replies included
- Same API as LinkedIn, Telegram, Gmail and more
- 1Link the account by QR code or pairing code
- 2Send from your app
- 3Receive replies by webhook:
message_received
See the Unipile WhatsApp API and how to send WhatsApp messages via API. Reference: developer.unipile.com/v1.0/docs/whatsapp.
Link, Cloud API or connected account: which one do you need?
Pick by who writes first.
A human starts the chat from your page.
- Auth
- None
- Cost
- Free
- Replies
- Not visible to your app
A verified business sends templates.
- Auth
- Verified Meta Business account
- Cost
- Per message, since July 1, 2025
- Replies
- Yes, via webhook
Your product works in each user's own inbox.
- Auth
- QR code or pairing code
- Cost
- Unipile plan, not billed per message
- Replies
- Yes, via webhook
How do you embed a WhatsApp link in a product?
Build it per user in your templates. Never hardcode one number in a multi-tenant product.
Any QR generator turns a wa.me link into a printable code.
- Mobile
- The WhatsApp app
- Desktop, app installed
- The desktop app
- Desktop, no app
- WhatsApp Web
Why is my WhatsApp link not working?
Most often: the number format or unencoded text.
https://wa.me/+001-(XXX)XXXXXXXhttps://wa.me/1XXXXXXXXXXFix: digits only, country code first.
?text=Hi there & welcome?text=Hi%20there%20%26%20welcomeFix: encodeURIComponent() or urllib.parse.quote().
The chat fails silently.
Use the system browser.
The query string got lost. Test the raw URL.
WhatsApp Link API - FAQ
Quick answers for developers.
No. wa.me and api.whatsapp.com/send are click-to-chat URLs: they open a WhatsApp chat, with no authentication or code. WhatsApp's APIs begin where the link stops.
https://wa.me/<number>, where <number> is the full number in international format, without leading zeroes, brackets, spaces or dashes. For example: https://wa.me/1XXXXXXXXXX.
Both open the same conversation. wa.me/<number> is the short form documented in WhatsApp's Help Center, with the number in the path. api.whatsapp.com/send?phone=<number> is the long form, with the number as a query parameter.
No. The link opens the conversation and can pre-fill the text field. Nothing is delivered until the person holding the phone presses send.
Yes. Append ?text= and a URL-encoded message, for example https://wa.me/1XXXXXXXXXX?text=Hi%2C%20I%20have%20a%20question. The text stays editable before sending. Try the generator above.
Usually the number is not in plain international format, or the text was not URL-encoded. Also check that the number is on WhatsApp and avoid in-app browsers.
No. A wa.me or api.whatsapp.com/send link needs no Business account or API access. The Cloud API is a separate, verified product. See the complete WhatsApp API guide.
Not with a link: it is stateless. Use Meta's Cloud API with a verified Business account, or Unipile, where each end user links their own account by QR code or pairing code and your app acts on behalf of the authenticated user. See how to send WhatsApp messages via API.
Link or API? Our team can help you decide.
Talk to an expertGo past the link with linked WhatsApp accounts
Send, then get replies by webhook.