WhatsApp Link API: wa.me & api.whatsapp.com Explained

WhatsApp Click-to-Chat Links

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

A WhatsApp link is a URL, not an API. This guide gives you the exact wa.me und api.whatsapp.com/send formats, the text parameter, a free generator, and the point where the link stops and an actual integration has to start.
7-day free trial, no credit card required
Just a URL
No auth, no code
wa.me/1XXXXXXXXXX?text=Hi...
Hi! I have a question about your product. Pre-filled, still editable
Opens the chat. A human still has to press send.
Definition

What is a WhatsApp link API?

There is no WhatsApp link API. https://wa.me/<number> und https://api.whatsapp.com/send?phone=<number> are click-to-chat URLs: clicking one opens a conversation in WhatsApp. They require no authentication, no developer account and no code. The WhatsApp APIs are a separate layer, and they begin exactly where the link stops.
Kriterium
A WhatsApp API
Format
APIAn authenticated HTTP endpoint
Einrichtung
APIAccount linking, an API key, a client library
What happens on click / call
APISends, receives and lists messages programmatically
Who acts
APIYour software acts on behalf of the linked account
Format

What is the exact wa.me link format?

The documented format is https://wa.me/<number>, where <number> is a full phone number in international format. WhatsApp's Help Center states you must omit any zeroes, brackets or dashes.
wa.me-format.txt
Use: https://wa.me/1XXXXXXXXXX Don't use: https://wa.me/+001-(XXX)XXXXXXX
What to keep
Country code plus subscriber number, digits only. No leading +.
What to strip
Leading zeroes, spaces, dashes, parentheses. None of them belong in the path.
Source: WhatsApp Help Center, "How to use click to chat"
Vergleich

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

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, still in wide use, that carries the number as a query parameter.
URL anatomy, segment by segment
https://wa.me/1XXXXXXXXXX?text=Hi
https://api.whatsapp.com/send?phone=1XXXXXXXXXX&text=Hi
Host
Fixed path
The number
The message
Kriterium
wa.me
api.whatsapp.com/send
Where the number lives
wa.meIn the URL path
api.whatsapp.comIm phone query parameter
Documented in WhatsApp's Help Center
wa.meYes, this exact format
api.whatsapp.comNot on the current help page we could find
Observed behavior
wa.meOpens the chat
api.whatsapp.comOpens the same chat
A documentation gap, not a deprecation. We could not find a current, official WhatsApp or Meta page that documents api.whatsapp.com/send. That does not mean it stopped working: both formats redirect to the same conversation today. It means WhatsApp's own Help Center only covers wa.me. Build new links on the documented format.
The text parameter

How do you add a pre-filled message to a WhatsApp link?

Append ?text= followed by the URL-encoded message: https://wa.me/<number>?text=<urlencodedtext>. The text lands in the chat input field, pre-filled and editable.
prefilled-variants.txt
https://wa.me/1XXXXXXXXXX?text=I'm%20interested%20in%20your%20car%20for%20sale // no number: opens a contact picker instead https://wa.me/?text=I'm%20inquiring%20about%20the%20apartment%20listing
Without a number, WhatsApp opens the sender's contact list instead of a specific chat. The text still pre-fills once a contact is picked.
Encoding, the certain mappings
Character
Space
New line
&
#
Encoded as
%20
%0A
%26
%23
Also worth knowing: + encodes to %2B. For everything else, emoji included, don't build the table yourself: call encodeURIComponent() in JavaScript or urllib.parse.quote() in Python.
Build the link in code
build-link.js
// JavaScript const number = "1XXXXXXXXXX"; const text = "Hi! I have a question."; const link = `https://wa.me/${number}?text=${encodeURIComponent(text)}`;
build_link.py
# Python from urllib.parse import quote number, text = "1XXXXXXXXXX", "Hi! I have a question." link = f"https://wa.me/{number}?text={quote(text)}"
Free tool

Generate your WhatsApp link

Enter a number and a message. Get the wa.me link, the api.whatsapp.com equivalent, the encoded text, an HTML snippet and the official button, all at once.
Runs entirely in your browser. No number is ever sent to a server.
Full international number. No +, no 0, no spaces or dashes.
Optional. Lands in the chat input field, still editable by the sender.
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, ready to paste
<a href="https://wa.me/15550123456?text=Hi!%20I%20have%20a%20question%20about%20your%20product." target="_blank" rel="noopener" aria-label="Chat on WhatsApp">Chat on WhatsApp</a>
Official "Chat on WhatsApp" button
Chat on WhatsApp
<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>
This link opens a chat. It does not send the message, and your product will not see the reply.

Does a WhatsApp link send the message?

Nein. A click-to-chat link opens the conversation and pre-fills the text field. Nothing is delivered until the person holding the phone presses send.
The honest part

What can a WhatsApp link not do?

A click-to-chat link is stateless. Your product never learns whether the link was clicked, whether the message was sent, or whether the recipient replied.
Where the link stops
Link clicked
Chat opens
Message pre-filled
Manual send
Linkstopshier
Reply received
Conversation history
Webhook event
Per-user attribution
No delivery or read confirmation
No reply routed back to your application
No conversation history
No attachments
No server-side trigger. It takes a human and a click
No per-user attribution in a multi-tenant product
Silent failure if the number has no active WhatsApp account
Different behavior across desktop, WhatsApp Web and mobile
No group creation or management. A link only opens a one-to-one chat, see the WhatsApp Group API limits for anything group-related
A link cannot report clicks, replies or history. An API can. Build a real WhatsApp integration
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's Cloud API, which requires a verified Business account, or a connected-account API such as Unipile, where the end user links their own WhatsApp account on behalf of the authenticated user, by QR code or pairing code.
Meta Cloud APIVerified business
Requires a verified WhatsApp Business account
Billed per message since July 1, 2025, see the Preise für die WhatsApp Business API breakdown
The 24-hour customer service window still exists, it determines what's free, not what's billed
Built for templated notifications at scale
Connected account, UnipileNo verification
Each end user links their own WhatsApp account, on behalf of the authenticated user
By QR code or pairing code, no Meta Business verification
Reads and sends from the actual linked inbox, replies included
Same connect, send, list, listen pattern as LinkedIn, Instagram, Telegram, Gmail, Outlook and IMAP
connected-account-flow.js
// 1. Link the account, on behalf of the authenticated user const { qrCodeString } = await Kunde.Konto.connectWhatsapp(); // 2. Send a message once linked POST /api/v1/chats/{chat_id}/messages { "Text": "Hi! Your order has shipped." } // 3. Receive replies through a webhook, no polling{ "Ereignis": "message_received", "chat_id": "chat_182...", "Nachricht": "Is this still available?"}
For the full sending guide, payloads and webhook handling, see how to send WhatsApp messages via API. Endpoint reference: developer.unipile.com/docs/whatsapp.
Entscheidung

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

Use a link when a human initiates the conversation from a page you control. Use the Cloud API when a verified business sends templated notifications at scale. Use a connected-account API when your product must read and send from the user's own WhatsApp inbox.
Kriterium
Link
Meta Cloud API
Connected account
Who initiates
LinkA human, from a page you control
Cloud-APIYour business sends first, templated
Connected accountEither side, from the linked inbox
Autorisierung erforderlich
LinkNichts
Cloud-APIVerified Meta Business account
Connected accountQR code or pairing code, no Business verification
Kosten
LinkKostenlos
Cloud-APIPer message, since July 1, 2025
Connected accountUnipile plan pricing, not billed per message
Receives replies
LinkNein
Cloud-APIYes, via webhook
Connected accountYes, via webhook
Conversation history
LinkNein
Cloud-APIJa
Connected accountJa
Multi-tenant products
LinkBreaks, one hardcoded number
Cloud-APINeeds custom routing per business number
Connected accountNative, one linked account per end user
Einrichtungszeit
LinkProtokoll
Cloud-APIDays to weeks, Business verification
Connected accountMinutes to hours
Just need a link
Verwenden Sie die generator above. No account, no setup.
Sending templated notifications
Reading and sending per user
Beginnen Sie mit dem complete WhatsApp API guide.
Most products outgrow the link within a week. Start where you'll actually end up. Beginnen Sie mit dem Bau
Umsetzung

How do you embed a WhatsApp link in a product?

Generate the link server-side, per user, and never hardcode a phone number in a multi-tenant product. The link is just an anchor, so it belongs in your template layer, not in your API layer.
chat-button.html
<!-- template layer, not your API layer --> <a href="https://wa.me/{{ user.whatsapp_number }}?text={{ prefilled_text | url_encode }}" target="_blank" rel="noopener" aria-label="Chat on WhatsApp"> Chat on WhatsApp </a>
Official button
WhatsApp publishes a ready-made "Chat on WhatsApp" badge, green and white, in a few fixed sizes, meant to be used without modification.
Chat on WhatsApp
QR-Code
Any QR code generator that accepts a URL turns a wa.me link into a scannable code for print, packaging or in-person signage.
Mobil Opens the WhatsApp app directly, with the chat and pre-filled text ready.
Desktop, app installed Opens the WhatsApp desktop app instead of the browser.
Desktop, no app Opens WhatsApp Web in the browser, and prompts a QR sign-in if the session isn't already active.
Why the link breaks in multi-tenant products: a single hardcoded number cannot tell your customers apart. Generate the link from the specific user or workspace record every time, so it carries whichever number that user actually owns, not a number pasted once into a template.
Fehlerbehebung

Why is my WhatsApp link not working?

The two most common causes are a phone number that is not in plain international format, and a text parameter that was not URL-encoded.
UrsachePhone number not in plain international format
KorrigierenUse the full international number, digits only: no +, no leading 0, no spaces, dashes or brackets.
UrsacheThe text parameter was not URL-encoded
KorrigierenRun the message through encodeURIComponent() in JavaScript or urllib.parse.quote() in Python before appending it.
UrsacheThe number has no active WhatsApp account
KorrigierenThe link still opens, but the chat fails silently. Verify the number is actually registered on WhatsApp first.
UrsacheOpened inside a third-party app's in-app browser
KorrigierenIn-app browsers from social or ad platforms sometimes block or mishandle the redirect. Open the link in the system browser instead.
UrsacheA link preview crawler rewrote the URL
KorrigierenSome platforms wrap outbound links in their own redirect, which can drop the query string. Test the raw wa.me URL directly.

WhatsApp Link API - FAQ

Everything developers ask about wa.me, api.whatsapp.com, the text parameter, and where the link stops.

No single WhatsApp link API exists. wa.me und api.whatsapp.com/send are click-to-chat URLs: opening one starts a conversation in WhatsApp, with no authentication, developer account or code required. WhatsApp's own APIs are a separate layer that begins exactly where the link stops, once a person has to reply.

The documented format is https://wa.me/<number>, where <number> is the full phone number in international format. WhatsApp's Help Center instructs omitting any 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 URL path. api.whatsapp.com/send?phone=<number> is the long form, still widely used, that carries the number as a query parameter instead.

No. A click-to-chat link opens the conversation and can pre-fill the text field, but nothing is delivered until the person holding the phone presses send.

Yes. Append ?text= followed by a URL-encoded message, for example https://wa.me/1XXXXXXXXXX?text=Hi%2C%20I%20have%20a%20question. The text lands in the chat input field, pre-filled and still editable before sending. Try it in the generator above.

The two most common causes are a phone number that isn't in plain international format and a text parameter that wasn't URL-encoded. Also check that the number has an active WhatsApp account and that the link wasn't opened inside a third-party app's in-app browser.

No. A wa.me oder api.whatsapp.com/send link requires no Business account, no verification and no API access. The WhatsApp Business Platform, or Cloud API, is a separate verified product for businesses that need to send templated notifications at scale or receive replies programmatically. See the complete WhatsApp API guide.

A link itself cannot report replies back to your app, it is stateless. To read and send from an actual inbox, you need an API that holds a WhatsApp session: either Meta's Cloud API with a verified Business account, or a connected-account API such as Unipile, where each end user links their own WhatsApp account on behalf of the authenticated user, by QR code or pairing code. See how to send WhatsApp messages via API.

Still not sure whether you need a link or an API? Our team can help you decide.

Sprechen Sie mit einem Experten
de_DEDE