WhatsApp API – Official (Meta Cloud API) & Unofficial v5.0.1
Unified WhatsApp API: connect via the Official WhatsApp Cloud API (Meta) or the Unofficial API (QR Code) — same platform, same SDK, same webhook format. WAME is a Meta Business Partner. Send and receive messages, manage contacts, run official templates and automate conversations. Unlike unofficial-only providers (e.g. Z-API) and self-hosted projects (Evolution, Baileys), WAME offers both models together. The unofficial layer is independent and not affiliated with, endorsed, or supported by WhatsApp Inc.; the official layer runs on Meta's WhatsApp Cloud API.
Client SDK Reference
Official client libraries for integrating with this API:
- PHP: https://raw.githubusercontent.com/raphaelvserafim/client-php-api-wa-me/refs/heads/main/llms.txt
- Node.js / JavaScript / TypeScript: https://raw.githubusercontent.com/raphaelvserafim/client-api-whatsapp/refs/heads/main/llms.txt
Base URLs
- https://us.api-wa.me
- https://server.api-wa.me
- http://0.0.0.0:3002 — Development
Webhooks
Format of the events delivered to the instance's url — envelope, webhookFormat and all models:
https://us.api-wa.me/llms/webhook
Instance
GET /{key}/instance
Get instance details Returns the current instance status, connection state, QR code availability, and profile information.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/instance
Connect via QR Code Initiates a new WhatsApp connection. Returns a QR code that must be scanned with the WhatsApp mobile app to authenticate.
Path parameters:
key(string) (required)
Responses:
200: Success
PATCH /{key}/instance
Update instance settings Configures instance behavior: auto-read messages, media saving, status message reception, and presence tracking.
Path parameters:
key(string) (required)
Query parameters:
markMessageRead(boolean) (required)saveMedia(boolean) (required)receiveStatusMessage(boolean) (required)receivePresence(boolean) (required)
Responses:
200: Success
PUT /{key}/instance
Configure webhooks Sets up webhook URLs for receiving real-time events (messages, connection changes, QR codes, etc.). Use allowWebhook to enable/disable and allowNumber to filter by phone numbers.
Path parameters:
key(string) (required)
Request body:
allowWebhook(boolean) (required) [true, false] e.g.trueallowNumber(string) — Use "all" to receive events from any number, or specify numbers separated by commas to filter events (e.g. "5566999999,5511888888"). e.g.allwebhookMessage(string) e.g. ``webhookGroup(string) e.g. ``webhookConnection(string) e.g. ``webhookQrCode(string) e.g. ``webhookMessageFromMe(string) e.g. ``webhookHistory(string) e.g. ``webhookFormat(string) [native, meta, both] — Formato do payload de saída: "native" (atual, default), "meta" (envelope da WhatsApp Cloud API) ou "both" (envia os dois). e.g.native
Responses:
200: Success
DELETE /{key}/instance
Disconnect and logout Disconnects the WhatsApp session and removes authentication data. The instance will need to re-authenticate via QR code or pairing code.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/instance/web-session
Import a WhatsApp Web session (WAME Passkey app) Receives a session exported by the WAME Passkey desktop app (passkey linking) and connects the instance without a QR code. Body: { session }.
Path parameters:
key(string) (required)
Request body:
session(object)
Responses:
200: Success
POST /{key}/instance/pairing-code
Connect via pairing code Initiates a WhatsApp connection using a pairing code instead of QR code. Requires the phone number registered on WhatsApp.
Path parameters:
key(string) (required)
Request body:
phoneNumber(string)
Responses:
200: Success
POST /{key}/instance/mongodb
Configure cloud MongoDB storage Attaches a MongoDB database for cloud-based session and message storage. Provide the connection URI and database name.
Path parameters:
key(string) (required)
Request body:
uri(string)dbName(string)
Responses:
200: Success
POST /{key}/instance/proxy
Configure connection proxy Sets an HTTP proxy for the WhatsApp connection. Recommended format: http://username:password@ip:port or http://ip:port
Path parameters:
key(string) (required)
Request body:
proxy(string)
Responses:
200: Success
POST /{key}/instance/resync
Force full data resync Forces a complete resynchronization of messages, contacts, and chats from WhatsApp servers. Use when data appears outdated or incomplete.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/instance/restart
Restart the instance (works even if it is not loaded)
Path parameters:
key(string) (required)
Responses:
200: Success
PUT /{key}/instance/status
Update profile status text Changes the "About" text displayed on your WhatsApp profile. Supports emojis.
Path parameters:
key(string) (required)
Request body:
text(string) e.g.😃
Responses:
200: Success
PUT /{key}/instance/profile/picture
Update profile picture Sets a new profile picture from a publicly accessible image URL.
Path parameters:
key(string) (required)
Request body:
url(string)
Responses:
200: Success
DELETE /{key}/instance/profile/picture
Remove profile picture Removes the current profile picture, reverting to the default placeholder.
Path parameters:
key(string) (required)
Responses:
200: Success
PUT /{key}/instance/profile/name
Update profile display name Changes the display name shown on your WhatsApp profile.
Path parameters:
key(string) (required)
Request body:
name(string)
Responses:
200: Success
POST /{key}/instance/mobile/prepare
Prepare mobile registration Generate keys and prepare for mobile registration. This is step 1 of 3. The MCC (Mobile Country Code) is resolved automatically from the country code.
Path parameters:
key(string) (required)
Request body:
phoneNumberCountryCode(string) e.g.55phoneNumberNationalNumber(string) e.g.11999999999phoneNumberMobileNetworkCode(string) e.g.11
Responses:
200: Success
POST /{key}/instance/mobile/request-code
Request mobile verification code Request SMS or voice verification code. This is step 2 of 3. Must call /mobile/prepare first.
Path parameters:
key(string) (required)
Request body:
method(string) e.g.sms
Responses:
200: Success
POST /{key}/instance/mobile/verify
Verify mobile code and register Verify the code received via SMS/voice and register the device. This is step 3 of 3.
Path parameters:
key(string) (required)
Request body:
code(string) e.g.123456
Responses:
200: Success
GET /{key}/instance/webhook/statistics
Get webhook delivery statistics Returns webhook delivery metrics including success/failure counts, response times, and recent delivery history.
Path parameters:
key(string) (required)
Responses:
200: Success
Message
POST /{key}/message/presence
Send typing or recording indicator Sends a presence update (composing, recording, paused) to a chat. The recipient will see "typing..." or "recording audio...".
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417status(string) (required) [unavailable, available, composing, recording, paused] e.g.composing
Responses:
200: Success
POST /{key}/message/text
Send a text message to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417text(string) (required) e.g.Hey !
Responses:
200: Success
POST /{key}/message/button_reply
Send interactive button message (reply type) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send a message with buttons and call to action and media attachment.
Header with media attachment example:
{
"header": {
"title": "Example Header With media",
"hasMediaAttachment": true,
"imageMessage": {
"url": "https://raphaelvserafim.com/og-image.png"
},
"documentMessage": {
"url": "https://raphaelvserafim.com/RaphaelSerafimResume.pdf",
"mimetype": "application/pdf",
"fileName": "Raphael.pdf"
}
}
}
Fields:
- header: Optional. Can contain image, video OR document (only one media type)
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
Responses:
200: Success
POST /{key}/message/button_action
Send interactive button message (call-to-action) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send a message with buttons and call to action and media attachment.
Header with media attachment example:
{
"header": {
"title": "Example Header With media",
"hasMediaAttachment": true,
"imageMessage": {
"url": "https://raphaelvserafim.com/og-image.png"
},
"documentMessage": {
"url": "https://raphaelvserafim.com/RaphaelSerafimResume.pdf",
"mimetype": "application/pdf",
"fileName": "Raphael.pdf"
}
}
}
Fields:
- header: Optional. Can contain image, video OR document (only one media type)
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
Responses:
200: Success
POST /{key}/message/pix
Send a Pix payment message Sends a Brazilian Pix payment message with QR code or copy-paste code. Requires Pix permission.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417title(string) (required) e.g.Pizzatext(string) (required) e.g.PizzareferenceId(string) (required) e.g.apiwamecode(string) e.g.0020101021226700014br.gov.bcb.pix2548pix.example.comkey(string) (required) e.g.23711695000115merchantName(string) (required) e.g.CACHE SISTEMAS WEBkeyType(string) (required) e.g.CNPJitems(array) e.g.[object Object],[object Object]id(string) e.g.id-123name(string) e.g.Pizzaprice(number) e.g.10quantity(number) e.g.1
subtotal(number) (required) e.g.90totalAmount(number) (required) e.g.100
Responses:
200: Success
POST /{key}/message/list
Send an interactive list message to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417buttonText(string) e.g.Ver opçõestext(string) e.g.Selecione uma opção:title(string) e.g.Menu Principaldescription(string) e.g.Selecione uma opção:footer(string) e.g.Wame APIsections(array) e.g.[object Object],[object Object]title(string) e.g.Serviçosrows(array)title(string) e.g.Suportedescription(string) e.g.Falar com atendenterowId(string) e.g.support
Responses:
200: Success
POST /{key}/message/survey
Send a poll/survey message Sends a poll message with selectable options. Recipients can vote directly in the chat.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417name(string) (required) e.g.Do you like PHP?options(array) (required) e.g.Yes,No- type: string
Responses:
200: Success
POST /{key}/message/title
Send a rich text message with title and footer Sends a formatted message with a bold title, body text, and a smaller footer section.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417title(string) (required) e.g.Raphael Serafimtext(string) (required) e.g.Hey !footer(string) (required) e.g.# 123
Responses:
200: Success
POST /{key}/message/audio
Send an audio file to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Supports URL to audio files (mp3, ogg, etc). Audio is sent as a voice message (PTT).
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://url-audio
Responses:
200: Success
POST /{key}/message/image
Send an image file to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Supports URL to image files (jpg, png, webp, gif). Optional caption text.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://a.cdn-hotels.com/gdcs/production190/d988/1071675e-1bd7-4a81-8b40-735eb9241410.jpgcaption(string) e.g.Toronto
Responses:
200: Success
POST /{key}/message/video
Send a video file to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Supports URL to video files (mp4, 3gp). Optional caption text.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3schools.com/html/mov_bbb.mp4caption(string) e.g.Big Buck Bunny
Responses:
200: Success
POST /{key}/message/document
Send a document/file to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Supports any file type via URL. The file name and MIME type are detected automatically.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdfmimetype(string) (required) e.g.application/pdffileName(string) e.g.document.pdfcaption(string) e.g.Example document
Responses:
200: Success
POST /{key}/message/contact
Send a contact card (vCard) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417contact(object) (required)fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
Responses:
200: Success
POST /{key}/message/contacts
Send multiple contact cards to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Sends a batch of contact cards in a single message.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417displayName(string) (required) e.g.My Contactscontacts(array) (required) e.g.[object Object],[object Object]fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
Responses:
200: Success
POST /{key}/message/location
Send a static location pin to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417location(object) (required)latitude(number) (required) e.g.37.7749longitude(number) (required) e.g.-122.4194name(string) e.g.Google Brasiladdress(string) e.g.Av. Brg. Faria Lima, 3477 - Itaim Bibi, São Paulo - SP
Responses:
200: Success
POST /{key}/message/location-request
Request the recipient to share their location to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Sends a native "request location" button asking the recipient to share their location.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417text(string) (required) e.g.Compartilhe sua localização, por favor
Responses:
200: Success
POST /{key}/message/ad
Send a message with ad context to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Sends a message carrying ad (Click-to-WhatsApp) context — the outbound counterpart of the inbound referral.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417text(string) (required) e.g.Confira nossa promoção!url(string) e.g.https://example.com/promosourceId(string) e.g.AD123sourceUrl(string) e.g.https://fb.me/xyztitle(string) e.g.Promoção de verãobody(string) e.g.Clique e fale com a gentementions(array) e.g.14375223417@s.whatsapp.net- type: string
Responses:
200: Success
POST /{key}/message/live-location
Send a real-time live location to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Shares your live location that updates in real-time for the recipient.
Path parameters:
key(string) (required)
Request body:
to(string) e.g.5511999999999latitude(number) e.g.-23.5505longitude(number) e.g.-46.6333caption(string) e.g.I am here!
Responses:
200: Success
POST /{key}/message/unpin
Unpin a message from chat Removes the pin from a previously pinned message in a chat.
Path parameters:
key(string) (required)
Request body:
id(string) e.g.ABCDEF123456
Responses:
200: Success
POST /{key}/message/link
Send a custom link preview message Sends a URL with a customized preview (title, description, thumbnail). To send a plain URL, use the text endpoint instead.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417title(string) (required) e.g.Raphael Serafimtext(string) (required)description(string) e.g.Software DeveloperthumbnailUrl(string) (required) e.g.https://avatars.githubusercontent.com/u/68257896sourceUrl(string) (required) e.g.https://github.com/raphaelvserafim
Responses:
200: Success
POST /{key}/message/reaction
React to a message with emoji to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send an empty reaction to remove a previous reaction.
Path parameters:
key(string) (required)
Request body:
text(string) (required) e.g.👽msgId(string) (required) e.g.ABSHDGHRYA
Responses:
200: Success
POST /{key}/message/sticker
Send a sticker to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Converts the image URL to a WebP sticker automatically.
Path parameters:
key(string) (required)
Request body:
to(string)url(string)
Responses:
200: Success
POST /{key}/message/video-note
Send a circular video note (PTV) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Sends a short circular video (like Telegram video messages). Also known as PTV (Push-To-View).
Path parameters:
key(string) (required)
Request body:
to(string) e.g.5511999999999url(string) e.g.https://www.w3schools.com/html/mov_bbb.mp4
Responses:
200: Success
POST /{key}/message/poll
Send a poll message Creates an interactive poll with multiple choice options. Set selectableCount to limit how many options each person can choose.
Path parameters:
key(string) (required)
Request body:
to(string) e.g.5511999999999name(string) e.g.What is your favorite color?values(array) e.g.Red,Blue,Green- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
selectableCount(number) e.g.1
Responses:
200: Success
POST /{key}/message/event
Send an event/calendar invite Sends an event message with name, description, date/time, and optional location. Recipients can view event details inline.
Path parameters:
key(string) (required)
Request body:
to(string) e.g.5511999999999name(string) e.g.Team Meetingdescription(string) e.g.Weekly sync with the teamstartTime(string) e.g.2026-06-10T14:00:00ZlocationName(string) e.g.Office HQlocationAddress(string) e.g.123 Main St, São Paulo
Responses:
200: Success
POST /{key}/message/pin
Pin a message in chat Pins a message to the top of a chat. Duration is in seconds (default: 7 days = 604800).
Path parameters:
key(string) (required)
Request body:
id(string) e.g.ABCDEF123456duration(number) e.g.604800
Responses:
200: Success
POST /{key}/message/call-link
Send a call link invitation Generates and sends a WhatsApp call link (audio or video) to a contact with an optional caption.
Path parameters:
key(string) (required)
Request body:
to(string) e.g.5511999999999type(string) e.g.audiocaption(string) e.g.Let's talk!
Responses:
200: Success
GET /{key}/message/{messageId}
Get message by ID Retrieves the full message object including metadata, content, and delivery status by its unique message ID.
Path parameters:
key(string) (required)messageId(string) (required)
Responses:
200: Success
GET /{key}/message/{messageId}/media
Download media from a message Downloads media from a message by its ID. Use ?format=binary for raw file download, or ?format=json (default) for base64 JSON response.
Path parameters:
key(string) (required)messageId(string) (required)
Query parameters:
format(string)
Responses:
200: Success
POST /{key}/message/base64/image
Send an image from base64 data to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send an image encoded as a base64 string instead of a URL.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417base64(string) (required)caption(string)
Responses:
200: Success
POST /{key}/message/base64/audio
Send audio from base64 data Send an audio file encoded as a base64 string instead of a URL.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417base64(string) (required)
Responses:
200: Success
POST /{key}/message/base64/document
Send a document from base64 data Send a document encoded as a base64 string instead of a URL.
Path parameters:
key(string) (required)
Request body:
to(string) (required) e.g.14375223417base64(string) (required)mimetype(string) (required)fileName(string)caption(string)
Responses:
200: Success
POST /{key}/message/product
Send a product catalog card Sends a product card from a WhatsApp Business catalog. Requires the business owner JID and product ID.
Path parameters:
key(string) (required)
Request body:
to(string)businessOwnerJid(string)productId(string)catalogId(string)body(string)footer(string)
Responses:
200: Success
POST /{key}/message/group-invite
Send a group invite link message Sends a rich group invite message with group name and join link. The recipient can tap to join directly.
Path parameters:
key(string) (required)
Request body:
to(string)groupJid(string)groupName(string)inviteCode(string)inviteExpiration(number)caption(string)
Responses:
200: Success
POST /{key}/message/request-phone
Request phone number from contact Sends a request to a contact asking them to share their phone number.
Path parameters:
key(string) (required)
Request body:
to(string)
Responses:
200: Success
POST /{key}/message/create-call-link
Generate a call link (without sending) Creates a WhatsApp call link (audio or video) and returns it without sending to anyone. Useful for embedding in external apps.
Path parameters:
key(string) (required)
Request body:
type(string) e.g.audio
Responses:
200: Success
Reply to a message
POST /{key}/message/{id}/text
Reply with text Sends a text message as a reply to a specific message, showing a quote of the original.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417text(string) (required) e.g.Hey !
Responses:
200: Success
POST /{key}/message/{id}/button_reply
Reply with interactive buttons (reply type) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send a message with buttons and call to action and media attachment.
Header with media attachment example:
{
"header": {
"title": "Example Header With media",
"hasMediaAttachment": true,
"imageMessage": {
"url": "https://raphaelvserafim.com/og-image.png"
},
"documentMessage": {
"url": "https://raphaelvserafim.com/RaphaelSerafimResume.pdf",
"mimetype": "application/pdf",
"fileName": "Raphael.pdf"
}
}
}
Fields:
- header: Optional. Can contain image, video OR document (only one media type)
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
Responses:
200: Success
POST /{key}/message/{id}/button_action
Reply with interactive buttons (call-to-action) to a specific recipient.
- Phone number must include the country code, and should be in the following format: 'countryCodePhoneNumber' (e.g., '5566996852025' for Brazil).
- Group should be in the format: 'groupId@g.us'.
- ID should be in the format: 'id@lid'. Send a message with buttons and call to action and media attachment.
Header with media attachment example:
{
"header": {
"title": "Example Header With media",
"hasMediaAttachment": true,
"imageMessage": {
"url": "https://raphaelvserafim.com/og-image.png"
},
"documentMessage": {
"url": "https://raphaelvserafim.com/RaphaelSerafimResume.pdf",
"mimetype": "application/pdf",
"fileName": "Raphael.pdf"
}
}
}
Fields:
- header: Optional. Can contain image, video OR document (only one media type)
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
Responses:
200: Success
POST /{key}/message/{id}/pix
Reply with a Pix payment Replies to a message with a Brazilian Pix payment message.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417title(string) (required) e.g.Pizzatext(string) (required) e.g.PizzareferenceId(string) (required) e.g.apiwamecode(string) e.g.0020101021226700014br.gov.bcb.pix2548pix.example.comkey(string) (required) e.g.23711695000115merchantName(string) (required) e.g.CACHE SISTEMAS WEBkeyType(string) (required) e.g.CNPJitems(array) e.g.[object Object],[object Object]id(string) e.g.id-123name(string) e.g.Pizzaprice(number) e.g.10quantity(number) e.g.1
subtotal(number) (required) e.g.90totalAmount(number) (required) e.g.100
Responses:
200: Success
POST /{key}/message/{id}/title
Reply with rich text (title and footer) Replies with a formatted message containing title, body, and footer.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417title(string) (required) e.g.Raphael Serafimtext(string) (required) e.g.Hey !footer(string) (required) e.g.# 123
Responses:
200: Success
POST /{key}/message/{id}/audio
Reply with audio Replies to a message with an audio file sent as voice message.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://url-audio
Responses:
200: Success
POST /{key}/message/{id}/image
Reply with image Replies to a message with an image file. Supports caption.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://a.cdn-hotels.com/gdcs/production190/d988/1071675e-1bd7-4a81-8b40-735eb9241410.jpgcaption(string) e.g.Toronto
Responses:
200: Success
POST /{key}/message/{id}/video
Reply with video Replies to a message with a video file. Supports caption.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3schools.com/html/mov_bbb.mp4caption(string) e.g.Big Buck Bunny
Responses:
200: Success
POST /{key}/message/{id}/document
Reply with document Replies to a message with a document/file attachment.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdfmimetype(string) (required) e.g.application/pdffileName(string) e.g.document.pdfcaption(string) e.g.Example document
Responses:
200: Success
POST /{key}/message/{id}/contact
Reply with contact card Replies to a message with a contact vCard.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417contact(object) (required)fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
Responses:
200: Success
POST /{key}/message/{id}/location
Reply with location Replies to a message with a location pin.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) (required) e.g.14375223417location(object) (required)latitude(number) (required) e.g.37.7749longitude(number) (required) e.g.-122.4194name(string) e.g.Google Brasiladdress(string) e.g.Av. Brg. Faria Lima, 3477 - Itaim Bibi, São Paulo - SP
Responses:
200: Success
Chat
GET /{key}/chat
List all chats Returns all chats (individual and group) with their last message, unread count, and metadata.
Path parameters:
key(string) (required)
Responses:
200: Success
PATCH /{key}/chat
Modify chat properties Update chat attributes. Supported actions: "markRead" (mark messages as read/unread) and "pin" (pin/unpin chat to top).
Path parameters:
key(string) (required)
Query parameters:
id(string) (required)action(string) (required)value(boolean) (required)
Responses:
200: Success
DELETE /{key}/chat
Delete a chat Permanently deletes a chat and its local message history. The chat ID must be in JID format (e.g., 5511999999999@s.whatsapp.net).
Path parameters:
key(string) (required)
Query parameters:
chatId(string)
Responses:
200: Success
GET /{key}/chat/messages
Get paginated chat messages Retrieves messages from a specific chat with pagination. Returns up to 100 messages per page (default: 50).
Path parameters:
key(string) (required)
Query parameters:
chatId(string)page(number)limit(number)
Responses:
200: Success
POST /{key}/chat/presence/subscribe
Subscribe to contact presence Subscribes to real-time presence updates (online/offline/typing) for a specific contact. Updates are delivered via webhook.
Path parameters:
key(string) (required)
Request body:
jid(string)
Responses:
200: Success
POST /{key}/chat/disappearing
Toggle disappearing messages Enables or disables disappearing messages for a 1:1 chat. Set expiration in seconds (0 to disable, 86400 for 24h, 604800 for 7 days, 7776000 for 90 days).
Path parameters:
key(string) (required)
Request body:
jid(string)expiration(number)
Responses:
200: Success
GET /{key}/chat/privacy
Get privacy settings Returns the current privacy settings including who can see your last seen, profile photo, about, status, and read receipts.
Path parameters:
key(string) (required)
Responses:
200: Success
Call
POST /{key}/call
Make a voice call Initiates a voice call to a contact. Requires call permission enabled on the instance.
Path parameters:
key(string) (required)
Request body:
to(string) e.g.to
Responses:
200: Success
DELETE /{key}/call/{id}/{from}
Reject an incoming call Rejects an incoming call by its call ID and caller JID.
Path parameters:
key(string) (required)id(string) (required)from(string) (required)
Responses:
200: Success
POST /{key}/call/accept
Accept an incoming call Accepts a pending incoming call using the call ID and caller JID.
Path parameters:
key(string) (required)
Request body:
callId(string)callFrom(string)
Responses:
200: Success
POST /{key}/call/end
End an active call Terminates an ongoing call by its call ID and peer JID.
Path parameters:
key(string) (required)
Request body:
callId(string)peerJid(string)
Responses:
200: Success
POST /{key}/call/{callId}/audio
Send audio into an active call
Path parameters:
key(string) (required)callId(string) (required)
Request body:
file(string)url(string)base64(string)
Responses:
200: Success
Labels
GET /{key}/labels
List all labels Returns all custom labels created for organizing chats. Labels include name, color, and ID.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/labels
Create a new label Creates a custom label for organizing chats. Optionally specify a label ID for updating an existing label.
Path parameters:
key(string) (required)
Request body:
name(string)labelId(string)
Responses:
200: Success
GET /{key}/labels/{id}
List chats with a specific label Returns all chats that have been tagged with the specified label ID.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
POST /{key}/labels/{id}
Assign a label to a chat Tags a chat with a label. Provide the contact/group number in the "to" field.
Path parameters:
key(string) (required)id(string) (required)
Request body:
to(string) e.g.14375223417
Responses:
200: Success
DELETE /{key}/labels/{id}
Delete a label Permanently deletes a label. All chats tagged with this label will be untagged.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
DELETE /{key}/labels/{id}/chat/{to}
Remove a label from a chat Removes the specified label from a chat.
Path parameters:
key(string) (required)id(string) (required)to(string) (required)
Responses:
200: Success
Actions
GET /{key}/actions/registered
Check if number is on WhatsApp Verifies whether a phone number is registered on WhatsApp. Returns the JID if registered.
Path parameters:
key(string) (required)
Query parameters:
number(string)
Responses:
200: Success
POST /{key}/actions/download/media
(Deprecated) Download media from message Downloads media content from a WhatsApp message. Deprecated: use GET /message/:messageId/media instead.
Path parameters:
key(string) (required)
Query parameters:
type(string) (required)
Request body:
mediaKey(string) (required)directPath(string) (required)url(string) (required)
Responses:
200: Success
DELETE /{key}/actions/storage
Delete stored media files Permanently deletes all saved media files for this instance from S3/storage.
Path parameters:
key(string) (required)
Responses:
200: Success
Contacts
GET /{key}/contacts
List all contacts Returns the complete contact list with names, phone numbers, and profile information.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/contacts
Add a new contact Saves a contact to the device address book with the specified name and phone number.
Path parameters:
key(string) (required)
Request body:
number(string) e.g.5511999999999name(string) e.g.João SilvafirstName(string) e.g.JoãosaveOnPrimaryAddressbook(boolean) e.g.truelidJid(string)
Responses:
200: Success
GET /{key}/contacts/{number}
Get contact profile Returns the profile information for a specific contact including name, profile picture URL, and status text.
Path parameters:
key(string) (required)number(string) (required)
Responses:
200: Success
DELETE /{key}/contacts/{number}
Remove a contact Deletes a contact from the device address book. This does not delete the chat history.
Path parameters:
key(string) (required)number(string) (required)
Responses:
200: Success
PATCH /{key}/contacts/{number}
Block or unblock a contact Toggles the block status of a contact. Blocked contacts cannot send you messages or see your profile updates.
Path parameters:
key(string) (required)number(string) (required)
Query parameters:
action(string) (required)
Responses:
200: Success
DELETE /{key}/contacts/{number}/session
Clear contact session (chat history will not be deleted) This endpoint is useful when you want to clear the session of a contact without deleting the chat history. It will remove the session from the device, but the messages will still be available in the chat history.
Path parameters:
key(string) (required)number(string) (required)
Responses:
200: Success
GET /{key}/contacts/{number}/status
Get contact status text Returns the "About" status text of a specific contact.
Path parameters:
key(string) (required)number(string) (required)
Responses:
200: Success
GET /{key}/contacts/blocked
List blocked contacts Returns all contacts that have been blocked by this instance.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/contacts/resolve-lids
Resolve LID JIDs to phone numbers Converts LID (Linked Identity) JIDs to their corresponding phone numbers in batch. Useful for resolving anonymous group participants.
Path parameters:
key(string) (required)
Request body:
lids(array)- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
Groups
GET /{key}/groups
List all groups Returns all WhatsApp groups the instance is a member of, including group metadata.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/groups
Create a new group Creates a new WhatsApp group with a subject (name) and optional initial participants.
Path parameters:
key(string) (required)
Request body:
name(string) (required) e.g.Devsparticipants(array) (required) e.g.14375223417
Responses:
200: Success
GET /{key}/groups/{id}
Get group details Returns detailed information about a specific group including subject, description, participants, and settings. The ID must be in group JID format (e.g., 120363XXXXX@g.us).
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/groups/{id}
Update group subject and description Updates the group name (subject) and/or description text.
Path parameters:
key(string) (required)id(string) (required)
Request body:
name(string) (required) e.g.Devsdescription(string) (required) e.g.is description
Responses:
200: Success
PATCH /{key}/groups/{id}
Update group settings Changes group settings such as who can send messages (announcement mode) and who can edit group info.
Path parameters:
key(string) (required)id(string) (required)
Query parameters:
setting(string) (required)
Responses:
200: Success
DELETE /{key}/groups/{id}
Leave a group Removes the instance from the specified group. This action cannot be undone without a new invite.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
GET /{key}/groups/{id}/members
List group members Returns all participants of a group with their roles (admin, superadmin, or member).
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
GET /{key}/groups/invite/info
Get group info from invite code Retrieves group metadata using an invite code (the part after chat.whatsapp.com/).
Path parameters:
key(string) (required)
Query parameters:
code(string)
Responses:
200: Success
GET /{key}/groups/{id}/invite
Get group invite link Generates and returns the invite link for a group. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/groups/{id}/picture
Update group picture Sets a new group profile picture from a publicly accessible image URL. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
url(string)
Responses:
200: Success
DELETE /{key}/groups/{id}/picture
Remove group picture Removes the group profile picture, reverting to the default placeholder. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
POST /{key}/groups/{id}/participants
Add participants to group Adds one or more users to a group. Requires admin privileges. Provide participant phone numbers in JID format.
Path parameters:
key(string) (required)id(string) (required)
Request body:
participants(array) (required) e.g.14375223417
Responses:
200: Success
DELETE /{key}/groups/{id}/participants
Remove participants from group Removes one or more users from a group. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
participants(array) (required) e.g.14375223417
Responses:
200: Success
PATCH /{key}/groups/{id}/role
Change participant role (promote/demote) Promotes a participant to admin or demotes an admin to regular member. Requires superadmin privileges.
Path parameters:
key(string) (required)id(string) (required)
Query parameters:
action(string) (required)
Request body:
participants(array) (required) e.g.14375223417
Responses:
200: Success
GET /{key}/groups/{id}/request_participants_list
List pending join requests Returns the list of users who have requested to join the group and are waiting for admin approval.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/groups/{id}/request_participants_list
Approve or reject join requests Approves or rejects pending group join requests. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
participants(array) (required) e.g.14375223417action(string) (required) [reject, approve] e.g.approve
Responses:
200: Success
Community
GET /{key}/community
List all communities Returns all WhatsApp communities the instance is a member of.
Path parameters:
key(string) (required)
Responses:
200: Success
POST /{key}/community
Create a new community Creates a new WhatsApp community with a name, description, and initial groups.
Path parameters:
key(string) (required)
Request body:
name(string) (required) e.g.Community api-wa.mesubject(string) (required) e.g.is subject
Responses:
200: Success
GET /{key}/community/{id}
Get community details Returns detailed information about a community including linked groups and member counts.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/community/{id}
Update community info Updates the community name and/or description.
Path parameters:
key(string) (required)id(string) (required)
Request body:
subject(string) (required) e.g.is subject updateddescription(string) (required) e.g.is description updated
Responses:
200: Success
DELETE /{key}/community/{id}
Leave a community Removes the instance from the community. You will also leave all community-linked groups.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/community/{id}/picture
Update community picture Sets a new profile picture for the community from a URL. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
url(string)
Responses:
200: Success
POST /{key}/community/{id}/invite
Get community invite link Generates and returns the invite link for the community. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
DELETE /{key}/community/{id}/participants
Remove community members Removes one or more members from the community. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
participants(array) (required) e.g.14375223417
Responses:
200: Success
GET /{key}/community/{id}/request_participants_list
List pending join requests Returns users who have requested to join the community and are awaiting approval.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/community/{id}/request_participants_list
Approve or reject join requests Processes pending community join requests. Requires admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
participants(array) (required) e.g.14375223417action(string) (required) [reject, approve] e.g.approve
Responses:
200: Success
POST /{key}/community/invite/accept
Accept a community invite Joins a community using an invite code.
Path parameters:
key(string) (required)
Request body:
code(string)
Responses:
200: Success
GET /{key}/community/invite/info
Get community info from invite code Retrieves community metadata using an invite code.
Path parameters:
key(string) (required)
Query parameters:
code(string)
Responses:
200: Success
POST /{key}/community/{id}/group
Create a group within the community Creates a new group linked to the community with a subject and optional initial participants.
Path parameters:
key(string) (required)id(string) (required)
Request body:
subject(string)participants(array)- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
POST /{key}/community/{id}/ephemeral
Toggle disappearing messages Enables or disables disappearing messages for all community groups. Set expiration in seconds (0 to disable).
Path parameters:
key(string) (required)id(string) (required)
Request body:
expiration(number)
Responses:
200: Success
PATCH /{key}/community/{id}/settings
Update community settings Changes community settings such as announcements and restrictions.
Path parameters:
key(string) (required)id(string) (required)
Request body:
setting(string)
Responses:
200: Success
PATCH /{key}/community/{id}/member-add-mode
Set member addition permissions Controls who can add new members to the community: "admin_add" (admins only) or "all_member_add" (any member).
Path parameters:
key(string) (required)id(string) (required)
Request body:
mode(string)
Responses:
200: Success
PATCH /{key}/community/{id}/join-approval
Toggle join approval requirement When enabled ("on"), new members must be approved by an admin before joining. Set to "off" to allow instant joins.
Path parameters:
key(string) (required)id(string) (required)
Request body:
mode(string)
Responses:
200: Success
Business
GET /{key}/business/collections
List product collections Returns product collections from the WhatsApp Business catalog.
Path parameters:
key(string) (required)
Query parameters:
limit(number)
Responses:
200: Success
GET /{key}/business/catalog
List catalog products Returns paginated products from the WhatsApp Business catalog. Use cursor for pagination.
Path parameters:
key(string) (required)
Query parameters:
limit(number)cursor(string)
Responses:
200: Success
POST /{key}/business/catalog/product
Create a catalog product Adds a new product to the WhatsApp Business catalog with name, price, description, and images.
Path parameters:
key(string) (required)
Request body:
name(string) e.g.Ovodescription(string) e.g.Ovo BrancooriginCountryCode(string) e.g.BRcurrency(string) e.g.BRLprice(number) e.g.20images(array) e.g.[object Object]
Responses:
200: Success
PUT /{key}/business/catalog/product/{product_id}
Update a catalog product Updates an existing product in the WhatsApp Business catalog by its product ID.
Path parameters:
key(string) (required)product_id(string) (required)
Request body:
name(string) e.g.Ovodescription(string) e.g.Ovo BrancooriginCountryCode(string) e.g.BRcurrency(string) e.g.BRLprice(number) e.g.20images(array) e.g.[object Object]
Responses:
200: Success
DELETE /{key}/business/catalog/product/{product_id}
Delete a catalog product Permanently removes a product from the WhatsApp Business catalog.
Path parameters:
key(string) (required)product_id(string) (required)
Responses:
200: Success
GET /{key}/business/order/{order_id}
Get order details Returns details of a specific order by its ID. Requires the order token.
Path parameters:
key(string) (required)order_id(string) (required)
Query parameters:
token(string)
Responses:
200: Success
Newsletter
POST /{key}/newsletter
Create a newsletter channel Creates a new WhatsApp Channel (newsletter) with a name and optional description.
Path parameters:
key(string) (required)
Request body:
name(string)description(string)
Responses:
200: Success
GET /{key}/newsletter/metadata
Get newsletter metadata Retrieves newsletter details by invite code or JID. Set type to "invite" for invite codes or "jid" for direct JID lookup.
Path parameters:
key(string) (required)
Query parameters:
type(string)id(string)
Responses:
200: Success
GET /{key}/newsletter/{id}/subscribers
Get subscriber count Returns the total number of followers for a newsletter.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
GET /{key}/newsletter/{id}/admins
Get admin count Returns the number of administrators managing the newsletter.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
POST /{key}/newsletter/{id}/follow
Follow a newsletter Subscribes the instance to a newsletter channel to receive its updates.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
POST /{key}/newsletter/{id}/unfollow
Unfollow a newsletter Unsubscribes the instance from a newsletter channel.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/newsletter/{id}/name
Update newsletter name Changes the display name of a newsletter. Requires owner/admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
name(string)
Responses:
200: Success
PUT /{key}/newsletter/{id}/description
Update newsletter description Changes the description text of a newsletter. Requires owner/admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
description(string)
Responses:
200: Success
PUT /{key}/newsletter/{id}/picture
Update newsletter picture Sets a new profile picture for the newsletter from a URL. Requires owner/admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Request body:
url(string)
Responses:
200: Success
DELETE /{key}/newsletter/{id}/picture
Remove newsletter picture Removes the newsletter profile picture. Requires owner/admin privileges.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
PUT /{key}/newsletter/{id}/owner
Transfer newsletter ownership Transfers ownership of the newsletter to another user. This action is irreversible.
Path parameters:
key(string) (required)id(string) (required)
Request body:
newOwnerJid(string)
Responses:
200: Success
PUT /{key}/newsletter/{id}/demote
Demote a newsletter admin Removes admin privileges from a newsletter administrator.
Path parameters:
key(string) (required)id(string) (required)
Request body:
userJid(string)
Responses:
200: Success
GET /{key}/newsletter/{id}/messages
Get newsletter messages Fetches newsletter messages with pagination. Use "since" for messages after a timestamp, "after" for messages after a specific server ID.
Path parameters:
key(string) (required)id(string) (required)
Query parameters:
count(number)since(number)after(number)
Responses:
200: Success
POST /{key}/newsletter/{id}/react
React to a newsletter message Adds or removes a reaction emoji on a newsletter message. Send without reaction to remove.
Path parameters:
key(string) (required)id(string) (required)
Request body:
serverId(string)reaction(string)
Responses:
200: Success
POST /{key}/newsletter/{id}/mute
Mute newsletter notifications Silences push notifications for a newsletter while staying subscribed.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
POST /{key}/newsletter/{id}/unmute
Unmute newsletter notifications Re-enables push notifications for a previously muted newsletter.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
DELETE /{key}/newsletter/{id}
Delete a newsletter Permanently deletes a newsletter and all its messages. Requires owner privileges. This action cannot be undone.
Path parameters:
key(string) (required)id(string) (required)
Responses:
200: Success
Status
POST /{key}/status/text
Send a text status/story Publish a text-only status. Optionally limit visibility with statusJidList (array of JIDs who can see it). If omitted, all contacts will see.
Path parameters:
key(string) (required)
Request body:
text(string) e.g.Hello World! This is my status.statusJidList(array) e.g.5511999999999@s.whatsapp.net- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
POST /{key}/status/image
Send an image status/story Publish an image status. Supports URL to any image format (jpg, png, webp, etc).
Path parameters:
key(string) (required)
Request body:
url(string) e.g.https://a.cdn-hotels.com/gdcs/production190/d988/1071675e-1bd7-4a81-8b40-735eb9241410.jpgcaption(string) e.g.Beautiful view!statusJidList(array) e.g.5511999999999@s.whatsapp.net- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
POST /{key}/status/video
Send a video status/story Publish a video status. Max 30 seconds recommended. Supports mp4 format.
Path parameters:
key(string) (required)
Request body:
url(string) e.g.https://www.w3schools.com/html/mov_bbb.mp4caption(string) e.g.Check this out!statusJidList(array) e.g.5511999999999@s.whatsapp.net- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
POST /{key}/status/audio
Send an audio status/story Publish an audio status as a voice note (PTT).
Path parameters:
key(string) (required)
Request body:
url(string) e.g.https://url-audiostatusJidList(array) e.g.5511999999999@s.whatsapp.net- oneOf:
- type: integer
- type: number
- type: string
- type: boolean
- array of:
- type: object
- oneOf:
Responses:
200: Success
POST /{key}/status/mention
Mention a contact in a status Send a mention to a contact referencing a specific status message.
Path parameters:
key(string) (required)
Request body:
jid(string) e.g.5511999999999@s.whatsapp.netstatusMsgId(string) e.g.ABCDEF123456
Responses:
200: Success
Data Models
SchemaWebhook
allowWebhook(boolean) (required) [true, false] e.g.trueallowNumber(string) — Use "all" to receive events from any number, or specify numbers separated by commas to filter events (e.g. "5566999999,5511888888"). e.g.allwebhookMessage(string) e.g. ``webhookGroup(string) e.g. ``webhookConnection(string) e.g. ``webhookQrCode(string) e.g. ``webhookMessageFromMe(string) e.g. ``webhookHistory(string) e.g. ``webhookFormat(string) [native, meta, both] — Formato do payload de saída: "native" (atual, default), "meta" (envelope da WhatsApp Cloud API) ou "both" (envia os dois). e.g.native
SchemaSendingPresence
to(string) (required) e.g.14375223417status(string) (required) [unavailable, available, composing, recording, paused] e.g.composing
SchemaSendingText
to(string) (required) e.g.14375223417text(string) (required) e.g.Hey !
SchemaButtonMessageReply
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
SchemaButton
type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
SchemaButtonMessage
to(string) (required) e.g.14375223417header(object) (required) e.g.[object Object]text(string) (required) e.g.This is a testfooter(string) e.g.choose an optionbuttons(array) e.g.[object Object],[object Object],[object Object]type(string) e.g.quick_replyid(string) e.g.click_1text(string) e.g.Click here 001url(string) e.g.https://api-wa.mecopy_code(string) e.g.1234567890phone_number(string) e.g.+14375223417
SchemaSendingPix
to(string) (required) e.g.14375223417title(string) (required) e.g.Pizzatext(string) (required) e.g.PizzareferenceId(string) (required) e.g.apiwamecode(string) e.g.0020101021226700014br.gov.bcb.pix2548pix.example.comkey(string) (required) e.g.23711695000115merchantName(string) (required) e.g.CACHE SISTEMAS WEBkeyType(string) (required) e.g.CNPJitems(array) e.g.[object Object],[object Object]id(string) e.g.id-123name(string) e.g.Pizzaprice(number) e.g.10quantity(number) e.g.1
subtotal(number) (required) e.g.90totalAmount(number) (required) e.g.100
Item
id(string) e.g.id-123name(string) e.g.Pizzaprice(number) e.g.10quantity(number) e.g.1
SchemaSendingList
to(string) (required) e.g.14375223417buttonText(string) e.g.Ver opçõestext(string) e.g.Selecione uma opção:title(string) e.g.Menu Principaldescription(string) e.g.Selecione uma opção:footer(string) e.g.Wame APIsections(array) e.g.[object Object],[object Object]title(string) e.g.Serviçosrows(array)title(string) e.g.Suportedescription(string) e.g.Falar com atendenterowId(string) e.g.support
ListSection
title(string) e.g.Serviçosrows(array)title(string) e.g.Suportedescription(string) e.g.Falar com atendenterowId(string) e.g.support
ListRow
title(string) e.g.Suportedescription(string) e.g.Falar com atendenterowId(string) e.g.support
SchemaSendingSurvey
to(string) (required) e.g.14375223417name(string) (required) e.g.Do you like PHP?options(array) (required) e.g.Yes,No- type: string
SchemaSendWithTitleAndFooter
to(string) (required) e.g.14375223417title(string) (required) e.g.Raphael Serafimtext(string) (required) e.g.Hey !footer(string) (required) e.g.# 123
SchemaSendingAudio
to(string) (required) e.g.14375223417url(string) (required) e.g.https://url-audio
SchemaSendingImage
to(string) (required) e.g.14375223417url(string) (required) e.g.https://a.cdn-hotels.com/gdcs/production190/d988/1071675e-1bd7-4a81-8b40-735eb9241410.jpgcaption(string) e.g.Toronto
SchemaSendingVideo
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3schools.com/html/mov_bbb.mp4caption(string) e.g.Big Buck Bunny
SchemaSendingDocument
to(string) (required) e.g.14375223417url(string) (required) e.g.https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdfmimetype(string) (required) e.g.application/pdffileName(string) e.g.document.pdfcaption(string) e.g.Example document
SchemaSendingContact
to(string) (required) e.g.14375223417contact(object) (required)fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
SchemaContact
fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
SchemaSendingContacts
to(string) (required) e.g.14375223417displayName(string) (required) e.g.My Contactscontacts(array) (required) e.g.[object Object],[object Object]fullName(string) (required) e.g.Raphael Serafimorganization(string) e.g.api-wa.mephoneNumber(string) (required) e.g.14375223417
SchemaSendingLocation
to(string) (required) e.g.14375223417location(object) (required)latitude(number) (required) e.g.37.7749longitude(number) (required) e.g.-122.4194name(string) e.g.Google Brasiladdress(string) e.g.Av. Brg. Faria Lima, 3477 - Itaim Bibi, São Paulo - SP
SchemaLocation
latitude(number) (required) e.g.37.7749longitude(number) (required) e.g.-122.4194name(string) e.g.Google Brasiladdress(string) e.g.Av. Brg. Faria Lima, 3477 - Itaim Bibi, São Paulo - SP
SchemaSendingLocationRequest
to(string) (required) e.g.14375223417text(string) (required) e.g.Compartilhe sua localização, por favor
SchemaSendingAd
to(string) (required) e.g.14375223417text(string) (required) e.g.Confira nossa promoção!url(string) e.g.https://example.com/promosourceId(string) e.g.AD123sourceUrl(string) e.g.https://fb.me/xyztitle(string) e.g.Promoção de verãobody(string) e.g.Clique e fale com a gentementions(array) e.g.14375223417@s.whatsapp.net- type: string
SchemaSendingLink
to(string) (required) e.g.14375223417title(string) (required) e.g.Raphael Serafimtext(string) (required)description(string) e.g.Software DeveloperthumbnailUrl(string) (required) e.g.https://avatars.githubusercontent.com/u/68257896sourceUrl(string) (required) e.g.https://github.com/raphaelvserafim
SchemaSendingReaction
text(string) (required) e.g.👽msgId(string) (required) e.g.ABSHDGHRYA
SchemaSendingImageBase64
to(string) (required) e.g.14375223417base64(string) (required)caption(string)
SchemaSendingAudioBase64
to(string) (required) e.g.14375223417base64(string) (required)
SchemaSendingDocumentBase64
to(string) (required) e.g.14375223417base64(string) (required)mimetype(string) (required)fileName(string)caption(string)
DownloadableMessage
mediaKey(string) (required)directPath(string) (required)url(string) (required)
SchemaGroupCreate
name(string) (required) e.g.Devsparticipants(array) (required) e.g.14375223417
SchemaGroupUpdate
name(string) (required) e.g.Devsdescription(string) (required) e.g.is description
SchemaGroupParticipants
participants(array) (required) e.g.14375223417
GroupParticipants
participants(array) (required) e.g.14375223417action(string) (required) [reject, approve] e.g.approve
SchemaCommunityCreate
name(string) (required) e.g.Community api-wa.mesubject(string) (required) e.g.is subject
SchemaCommunityUpdate
subject(string) (required) e.g.is subject updateddescription(string) (required) e.g.is description updated
SchemaProduct
name(string) e.g.Ovodescription(string) e.g.Ovo BrancooriginCountryCode(string) e.g.BRcurrency(string) e.g.BRLprice(number) e.g.20images(array) e.g.[object Object]