EN
WhatsApp click-to-chat

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.

How it works

WhatsApp Link API: How wa.me and api.whatsapp.com Links Actually Work

Both open a chat, then a person takes over.

  1. 1Someone opens the URL
  2. 2WhatsApp opens the chat
  3. 3A person presses send
Definition

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.

A WhatsApp link
Setup
None
On click
Opens a chat, pre-fills text
Who acts
A human presses send
A WhatsApp API
Setup
Account linking and an API key
On call
Sends, receives and lists messages
Who acts
Your software, on behalf of the linked account
Format

What is the exact wa.me link format?

The documented format is https://wa.me/<number>, with the full phone number in international format.

URL anatomy
https://wa.me/1XXXXXXXXXX
Host. Always the same.
Number. Country code first, digits only.
Usehttps://wa.me/1XXXXXXXXXX
Don't usehttps://wa.me/+001-(XXX)XXXXXXX
Strip before you build+Leading 0SpacesDashesBrackets

Source: WhatsApp Help Center, "How to use click to chat"

Comparison

What is the difference between wa.me and api.whatsapp.com/send?

Both open the same conversation. Only the place of the number changes.

wa.meDocumented
https://wa.me/1XXXXXXXXXX?text=Hi

Number in the path. Documented by WhatsApp.

api.whatsapp.com/sendStill in wide use
https://api.whatsapp.com/send?phone=1XXXXXXXXXX&text=Hi

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.

The text parameter

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.

Characters to encode
Space%20
New line%0A
&%26
#%23
+%2B

Emoji and the rest: encodeURIComponent().

No number? https://wa.me/?text=... opens the contact picker.

build-link.js
const number = "1XXXXXXXXXX";
const text = "Hi! I have a question.";
const link = `https://wa.me/${number}` +
  `?text=${encodeURIComponent(text)}`;
https://wa.me/1XXXXXXXXXX?text=Hi!%20I%20have%20a%20question.
Free tool

Generate your WhatsApp link

Type a number and a message, copy what you need.

Digits only, country code first.
Optional, still editable.

Runs in your browser. No number is sent to a server.

wa.me link
https://wa.me/15550123456?text=Hi!%20I%20have%20a%20question%20about%20your%20product.
api.whatsapp.com equivalent
https://api.whatsapp.com/send?phone=15550123456&text=Hi!%20I%20have%20a%20question%20about%20your%20product.
text parameter, encoded
Hi!%20I%20have%20a%20question%20about%20your%20product.
HTML snippet
<a href="https://wa.me/15550123456?text=Hi!%20I%20have%20a%20question%20about%20your%20product." target="_blank" rel="noopener" aria-label="Chat on WhatsApp with 15550123456">Chat on WhatsApp</a>
"Chat on WhatsApp" button
<a href="https://wa.me/15550123456?text=Hi!%20I%20have%20a%20question%20about%20your%20product." target="_blank" rel="noopener"><img src="whatsapp-icon.svg" alt=""> Chat on WhatsApp</a>

A link opens a chat. It does not send, and your product never sees the reply.

Short answer

Does a WhatsApp link send the message?

No. Nothing is delivered until the person holding the phone presses send.

Chat opened
Text pre-filled
Delivered only after a tap on send
Where the link stops

What can a WhatsApp link not do?

A click-to-chat link is stateless: your app never learns what happened next.

What the link does
  • Link clicked
  • Chat opens
  • Message pre-filled
  • Manual send
Link stops here
What needs an API
  • Reply received
  • Conversation history
  • Webhook event
  • Per-user attribution
No delivery or read status
No attachments
No server-side trigger
Silent failure on a number without WhatsApp
Different behavior per device
No groups, see the WhatsApp Group API limits
Past the link

How do you get the reply back into your app?

You need an API that holds a WhatsApp session. Two routes exist.

Meta Cloud APIVerified business
  • 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
Linked account, UnipileNo Business verification
  • 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
With Unipile
  1. 1Link the account by QR code or pairing code
  2. 2Send from your app
  3. 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.

Decision

Link, Cloud API or connected account: which one do you need?

Pick by who writes first.

A link

A human starts the chat from your page.

Auth
None
Cost
Free
Replies
Not visible to your app
Use the generator above
Meta Cloud API

A verified business sends templates.

Auth
Verified Meta Business account
Cost
Per message, since July 1, 2025
Replies
Yes, via webhook
WhatsApp Cloud API integration guide
Linked account

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
Complete WhatsApp API guide
Implementation

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.

Link template
https://wa.me/{{ user.whatsapp_number }}?text={{ prefilled_text | url_encode }}
Number. From the user record.
Text. URL-encoded at render.
Official button

WhatsApp's green "Chat on WhatsApp" badge, used as is.

QR code

Any QR generator turns a wa.me link into a printable code.

Where it opens
Mobile
The WhatsApp app
Desktop, app installed
The desktop app
Desktop, no app
WhatsApp Web
Troubleshooting

Why is my WhatsApp link not working?

Most often: the number format or unencoded text.

1 The number is not in plain international format
https://wa.me/+001-(XXX)XXXXXXX
https://wa.me/1XXXXXXXXXX

Fix: digits only, country code first.

2 The text parameter was not URL-encoded
?text=Hi there & welcome
?text=Hi%20there%20%26%20welcome

Fix: encodeURIComponent() or urllib.parse.quote().

3 No active WhatsApp account

The chat fails silently.

4 Opened in an in-app browser

Use the system browser.

5 A link preview rewrote the URL

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 expert