Raphael Serafim· Published on September 12, 2026· 6 min read

WhatsApp API endpoints: the reference you can hold in your head

The WAME WhatsApp API uses https://us.api-wa.me with the pattern /{key}/... where {key} is your instance key and doubles as authentication — no auth header. Endpoints group into instance, messages, groups, contacts and webhooks. Full list with curl examples.

View as Markdown

Base URL https://us.api-wa.me, pattern /{key}/..., where {key} is your instance key and also your authentication — there is no auth header to set. From there the surface splits into five groups: instance, messages, groups, contacts and webhooks.

That is genuinely the whole mental model. This page lists the routes so you can skim them in one sitting; the exhaustive parameter-by-parameter reference lives in /docs.

Ground rules

  • Base URL: https://us.api-wa.me
  • Auth: the instance key sits in the path — https://us.api-wa.me/YOUR_KEY/.... No header.
  • Format: JSON request bodies; phone numbers in international format, digits only.

Because the key is the credential, the full URL is a secret. Keep it server-side, out of logs, and out of screenshots.

Instance and connection

MethodEndpointWhat it does
GET/{key}/instanceConnection status and QR code
POST/{key}/instanceConnect (generates the QR code)
POST/{key}/instance/pairing-codeConnect by pairing code instead
PUT/{key}/instanceConfigure webhooks
PATCH/{key}/instanceSettings: auto-read, store media, and so on
DELETE/{key}/instanceDisconnect (logout)

Sending messages

MethodEndpointType
POST/{key}/message/textText
POST/{key}/message/imageImage
POST/{key}/message/videoVideo
POST/{key}/message/audioAudio
POST/{key}/message/documentDocument
POST/{key}/message/locationLocation
POST/{key}/message/contactContact card
POST/{key}/message/button_replyQuick reply buttons
POST/{key}/message/button_actionAction buttons (open URL / call / copy code)
POST/{key}/message/listList menu
POST/{key}/message/pixPix payment (Brazil)

The smallest thing that works:

bash
curl -X POST "https://us.api-wa.me/YOUR_KEY/message/text" \
  -H "Content-Type: application/json" \
  -d '{ "to": "14155550132", "text": "Hello!" }'

Groups and contacts

MethodEndpointWhat it does
GET/{key}/groupsList groups
POST/{key}/groupsCreate a group
POST/{key}/groups/{id}/participantsAdd participants
GET/{key}/contactsList contacts
GET/{key}/contacts/{number}Contact profile
GET/{key}/actions/registeredCheck whether a number is on WhatsApp

That last one is worth a note: checking registration before a send is the cheapest way to keep a list clean, and on the official API it is the difference between a delivered template and one you paid for that went nowhere.

Webhooks: receiving events

Incoming messages arrive by webhook. Register them with PUT /{key}/instance:

bash
curl -X PUT "https://us.api-wa.me/YOUR_KEY/instance" \
  -H "Content-Type: application/json" \
  -d '{
    "allowWebhook": true,
    "allowNumber": "all",
    "webhookMessage": "https://your-site.com/webhook",
    "webhookConnection": "https://your-site.com/webhook"
  }'

You can point each event type at a different URL — messages, connection changes, QR code, groups, your own outbound messages, history — and restrict which numbers fire them with allowNumber. Separate URLs are worth using: connection events and message events have very different failure modes, and mixing them into one handler is how a reconnect storm ends up in the same retry queue as customer replies.

Let an assistant do the integration

Two things make this API unusually easy to hand to a model:

  • Every page has a Markdown twin. Append .md to any URL on this site — this page, the docs, anything — and you get clean Markdown instead of HTML.
  • There is an llms.txt carrying the whole API surface in a form written for language models. Paste it into Claude, ChatGPT or Cursor and the assistant already knows every endpoint and parameter.

If you would rather the agent call the API itself instead of writing code for you, there is a hosted MCP server: see WhatsApp MCP server.

Next

Ready to automate your WhatsApp?

Create your free account and start sending messages through the API in minutes.

Start for free

Frequently asked questions

What is the base URL of the WAME WhatsApp API?+

https://us.api-wa.me. Every endpoint follows the pattern https://us.api-wa.me/{key}/... where {key} is your instance key.

How does authentication work?+

The instance key goes in the URL path itself, as /{key}/.... There is no authentication header to set. Because the key is the credential, treat the full URL as a secret: keep it out of client-side code, logs and screenshots.

What are the main endpoint groups?+

Five. Instance and connection at /{key}/instance; message sending at /{key}/message/text, /image, /button_action, /list and others; groups at /{key}/groups; contacts at /{key}/contacts; and webhook configuration through PUT /{key}/instance.

How do I send my first message?+

One POST. curl -X POST https://us.api-wa.me/YOUR_KEY/message/text -H 'Content-Type: application/json' -d '{"to": "14155550132", "text": "Hello!"}'. The number goes in international format, digits only.

How do I receive incoming messages?+

Configure webhooks with PUT /{key}/instance, setting allowWebhook to true and pointing webhookMessage at your HTTPS endpoint. You can register separate URLs per event type — messages, connection, QR code, groups, your own outbound messages, history — and filter which numbers trigger them with allowNumber.

Is there a machine-readable reference for AI assistants?+

Yes. Every page of the site is available as Markdown by appending .md to its URL, and there is an llms.txt context file with the full API surface written for language models. Paste it into Claude, ChatGPT or Cursor and the assistant already knows every endpoint and parameter.

Keep reading