WaAPI × Ambacti

Bring WaAPI into
the flow of work.

A little less busywork with WaAPI.

Roman aqueduct developing from a precise architectural drawing into marble.
Gather contextDo the workReview & share
Instances6 capabilities
  • list instances

    Retrieve a list of your instances.

  • create instance

    Create a new instance. Optionally set a name and webhook configuration.

  • retrieve instance

    Retrieve a single instance by its ID

  • update instance

    Update the instance.

  • delete instance

    delete an instance by ID

  • get async request status

    Retrieve the status or result of an async request by its reference UUID. Results are cached for up to 5 minutes after processing.

Webhooks3 capabilities
  • create webhook subscription

    Subscribe a URL to receive instance events. Up to 25 active subscriptions are allowed per instance. Subscribing an already-registered URL again returns the existing subscription with a 200 status instead of creating a duplicate.

  • list webhook subscriptions

    Retrieve the webhook subscriptions registered on an instance.

  • delete webhook subscription

    Remove a webhook subscription from an instance. A subscription id that does not belong to this instance is reported as not found, not forbidden.

Client25 capabilities
  • client status of instance

    retrieve the status of your running client

  • retrieve QR Code

    Retrieves a base64 encoded QR code image that can be used to authenticate and connect a account to this instance.

  • retrieve basic client information

    Retrieve general information of the user connected to your instance.

  • logout

    Logs out the client, closing the current session

  • reboot instance

    Reboots your instance. This will close the current session and restart the client. The instance will need to be re-authenticated if it was previously logged in.

  • send presence available

    Sets the client's presence status to 'available'/'online'

  • set status

    Sets the status text for the connected account

  • set display name

    Sets the display name for the account

  • request pairing code

    Request a pairing code for phone number registration. To prevent abuse and ensure system stability, pairing code requests are limited to 2 per minute. Multiple rapid requests may indicate automated abuse attempts.

  • send presence unavailable

    Sets the client's presence status to 'unavailable'/'offline'

  • [BETA] subscribe to and fetch current presence of a chat

    Subscribes to presence updates for the given chat and returns the current state. Subsequent changes emit presence_update webhook events (if enabled in webhook settings). **Important — subscription model:** - Presence in Web is subscription-based. You MUST call this action at least once per chat you want to track. Without a subscribe, the presence_update webhook never fires for that chat. - Calling this action again acts as a renewal. Subscriptions are lost on instance reconnect — re-subscribe after any 'ready' event if you want continuous tracking. - Privacy reciprocity: if the instance account hides its own last-seen in the settings, it cannot read others' last-seen either. Expect deny:true or hasData:false in that case. - High-frequency event — a single active chat can produce 10+ presence_update webhooks per minute. Debounce on your side. - Groups: chatstate is always null. Use typingParticipants and recordingParticipants instead. isOnline on a group = 'at least one member online'. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] read cached presence for a chat without subscribing

    Returns the locally cached presence for a chat without triggering a new subscription. Returns null if the chat has never been subscribed (via get-chat-presence) during the current session. Use get-chat-presence instead if you want to enable continuous tracking. Note: This endpoint is currently in beta and may change without notice.

  • set device name

    Sets the device name and/or browser name displayed for the Web session.

  • create call link

    Creates a call link for a scheduled call.

  • send event response

    Sends a response (RSVP) to a calendar event message.

  • revoke status message

    Revokes (deletes) a previously sent status message.

  • [BETA] get privacy settings

    Retrieve the authenticated account's privacy settings. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] set privacy setting

    Update a single privacy category. Allowed values depend on the category. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get business profile

    Retrieve a business profile. Defaults to the authenticated account. Only WhatsApp Business accounts expose a profile. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get business categories

    List available business categories. Pass parentId to drill down; omit for top level. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] set business profile

    Update the authenticated business account's profile. Only provided fields are changed. Profile picture is managed separately. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get quick replies

    List all quick replies configured on the business account. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] create quick reply

    Create a new quick reply. Returns the created quick reply with its generated id. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] update quick reply

    Update an existing quick reply by id. Only provided fields are changed. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] delete quick reply

    Delete a quick reply by id. Note: This endpoint is currently in beta and may change without notice.

Message25 capabilities
  • send a text message to a chat

    Send a text message to a chat. The chatId format varies depending on the chat type: - Individual chat: {phone_number}@c.us (e.g. 50664083362@c.us) - Group chat: {group_id}@g.us (e.g. 123456789-123456789@g.us) - Channel/Newsletter: {channel_id}@newsletter (e.g. 123456789@newsletter)

  • send a media message (image, video, audio, document)

    Send a media file to a chat. Provide either `mediaUrl` (a publicly accessible URL) or `mediaBase64` (base64-encoded file content with `mediaName`), but not both. The chatId format varies depending on the chat type: - Individual chat: {phone_number}@c.us (e.g. 123456789@c.us) - Group chat: {group_id}@g.us (e.g. 123456789-123456789@g.us) - Channel/Newsletter: {channel_id}@newsletter (e.g. 123456789@newsletter) Supported media types: - Images: jpg, jpeg, png, gif - Videos: mp4, 3gp, mov - Audio: mp3, wav, ogg, m4a - Documents: pdf, doc, docx, txt, xlsx, etc

  • send vCard

    Send a vCard to a contact or group.

  • send location

    Send a location message to a contact or group chat. The location can include additional details like name, address and URL.

  • fetch messages from a chat

    Retrieve messages from a specific chat with optional filtering and media inclusion

  • get message by ID

    Retrieve a specific message using its unique identifier. Optionally includes the media content if requested.

  • download media from message

    Downloads the media content from a message and returns a temporary download URL valid for 15 minutes. Use this instead of get-message-by-id with includeMedia when you only need the media file.

  • get message info by id

    get a message info by id

  • delete message by id

    delete a message by id

  • edit a message

    Edit a previously sent message.

  • forward a message

    Forward a message to another chat.

  • search messages

    Search for messages across all chats or within a specific chat. Returns paginated results with message details.

  • create poll message

    Creates and sends an interactive poll message to a specified chat. The poll can have between 2-12 options and optionally allow multiple selections.

  • get poll votes

    Retrieves the vote information for a specific poll message, including who voted for which options and the original poll message details.

  • get message reactions

    Get reactions for a specific message

  • react to message

    Add or remove a reaction emoji to/from a message

  • get message mentions

    Get mentions from a message

  • pin message

    Pin a message in a chat

  • unpin message

    Unpin a message in a chat

  • star message

    Star a message by its ID

  • unstar message

    Remove star from a message

  • send event message

    Creates and sends a calendar event message to a specified chat.

  • vote on poll

    Submits a vote on an existing poll message with the specified options.

  • edit scheduled event

    Edits an existing scheduled event message with updated details.

  • get pinned messages

    Retrieves all pinned messages from a specified chat.

Chat22 capabilities
  • mark chat messages as seen (blue ticks)

    Mark all messages in a chat as seen (read). This will show blue ticks (double check marks) to the sender only if both parties have read receipts enabled in their privacy settings. If read receipts are disabled by either party, the messages will be marked as delivered (gray ticks) instead.

  • get all chats

    Retrieves a list of all chats with their latest messages and metadata. Supports pagination.

  • mark chat as unread

    Marks a specified chat conversation as unread. This is useful for flagging important conversations for later attention.

  • mute chat

    Mute notifications for a specific chat either indefinitely or until a specified date

  • unmute chat

    Removes mute settings from a specified chat, allowing notifications to be received again.

  • pin chat

    Pins a chat to the top of the chat list. The operation may fail if the maximum number of pinned chats (3) has been reached.

  • unpin chat

    Removes a chat from pinned status. This endpoint allows you to unpin a previously pinned chat conversation.

  • get chat by id
  • delete chat by id
  • archive chat
  • unarchive chat
  • get chat labels

    Get chat labels by chat ID

  • get chats by labelId

    Get chats by label ID

  • send typing state

    Sends typing state indicator to a chat

  • clear chat messages

    Clears all messages from a specific chat

  • sync chat history

    Synchronizes the chat history for a specific chat

  • stop typing indicator

    Stops the typing indicator for a chat

  • add customer note

    Adds a note to a customer chat for internal reference.

  • get customer note

    Retrieves the note associated with a customer chat.

  • [BETA] get disappearing messages

    Return the current disappearing-messages timer for a chat. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] set disappearing messages

    Set the disappearing-messages timer on a chat. 0 disables; 86400 = 24h, 604800 = 7d, 7776000 = 90d. Groups require admin. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get disappearing durations

    Return the allowed disappearing-messages durations (in seconds). Server-controlled, may vary by account/region. Note: This endpoint is currently in beta and may change without notice.

Contact14 capabilities
  • get all contacts

    Retrieves a list of all contacts from the account, including saved contacts and users who have messaged you.

  • get formatted number

    Format a phone number into standardized format

  • is registered user

    Check if a given contactId is registered.

  • get profile picture URL

    Retrieves the profile picture URL for a contact, chat, group, or newsletter. Access is subject to privacy settings. Use appropriate suffixes: @c.us for contacts/chats, @g.us for groups, @newsletter for newsletters.

  • get contact details by ID

    Retrieves detailed contact information for a specific contact using their ID. Returns contact details including name, number, business status, and various contact flags.

  • get contact LID and phone

    Resolves the mapping between a contact's Linked ID (LID) and phone number. Works in both directions: pass phone-number IDs (number@c.us) to get their LID, or pass Linked IDs (number@lid) to get the phone number. Returns an array of contact objects with their LID and phone number (pn) mappings.

  • [BETA] add and update contact

    Creates a new contact or updates an existing one in the address book. The contact will be synchronized to the device's address book if syncToAddressbook is true. Note: This endpoint is currently in beta and may change without notice.

  • delete contact

    Deletes a contact from the address book.

  • block a contact

    Blocks a contact, preventing them from sending messages to the authenticated user. The contact will not be able to see the user's last seen, online status, or status updates.

  • unblock a contact

    Removes a contact from the blocked contacts list, allowing them to send messages and see your information again according to your privacy settings.

  • get blocked contacts

    Retrieves a list of all blocked contacts

  • get common groups with contact

    Get list of groups that are in common between you and the specified contact

  • get contact about info

    Retrieves the about/status info for a specific contact

  • get broadcast

    Retrieves broadcast list details for a specified contact.

Number2 capabilities
  • get chat ID from phone number

    Converts a phone number into the proper chat ID format. This is especially useful for countries that don't follow the standard chat ID format (like Brazil, Mexico and Argentina). The endpoint ensures you get the correct chat ID for any phone number.

  • get country code

    Get the country code for a given phone number

Story5 capabilities
  • [BETA] get stories

    Retrieves all available stories/status updates that are visible to the authenticated user. This includes both viewed and unviewed stories from contacts. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] post a text or media status/story

    Publishes a status update visible to contacts per the user's privacy settings. Provide `content` for a text status (with optional `backgroundColor` ARGB integer and `fontStyle` 0-7) or `mediaUrl` (plus optional `mediaCaption`) for an image/video/audio status. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] set the Status privacy

    Configure who can see Status posts from this instance. Set `type` to "all" for all contacts, "allow" to restrict visibility to a specific list of contacts, or "deny" to exclude specific contacts. ⚠️ This is a persistent account-level setting and is synchronized to all linked devices. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get the current Status privacy

    Retrieve the current Status privacy setting for the instance. Returns the audience type ("contact" for all contacts, "allow-list" for an allowlist, "deny-list" for a denylist) and the configured contacts (when type is allow-list or deny-list). Note: This endpoint is currently in beta and may change without notice.

  • revoke status

    Revokes (deletes) a previously posted status/story update.

Group14 capabilities
  • create group

    Creates a new group with specified name and participants

  • get group participants
  • get group info
  • update group info

    Update Group Information

  • update group settings
  • add group participant

    Add a participant to a group

  • remove group participant

    Remove a participant from a group

  • promote group participant

    Promote a participant to admin

  • demote group participant

    Demote a participant from admin to normal participant

  • approve group membership requests

    Approve pending group membership requests

  • deny group membership requests

    Deny pending group membership requests

  • get group membership requests

    Get pending group membership requests

  • accept group invite

    Accept a group invitation. Pass either inviteCode (the invite code or the full invite link) — identical to accept-invite — or inviteData, the invite object carried by a group invite message.

  • get group invite info

    Get information about a group invite code

Channel6 capabilities
  • create a channel
  • get channels

    get your channels

  • get channel by id
  • subscribe to channel
  • unsubscribe from channel
  • search channels

    Search for channels

Community8 capabilities
  • [BETA] create a community

    Create a new Community (parent group containing subgroups). When createGeneralChat is true (default), the service also provisions a default 'General' announcement subgroup. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get communities

    Retrieve all Communities the instance is a member of. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get community by id

    Retrieve a specific Community by its ID. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] get community subgroups

    Retrieve all joined subgroups of a Community as full chat instances. Avoids N+1 roundtrips when walking a community. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] send community announcement

    Post an announcement to a Community. Supports text (message), URL-based media (mediaUrl), and broadcast targeting. target='general' (default) posts only to the default announcement subgroup which reaches every community member and returns the message result synchronously. target='all' broadcasts sequentially to every linked subgroup and is ALWAYS dispatched asynchronously — the response contains a `reference` you can poll via GET /instances/{id}/request/{reference} instead of the message payload. If both message and mediaUrl are provided without mediaCaption, message is used as the media caption. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] link community subgroup

    Link one or more existing standalone groups to a Community as subgroups. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] unlink community subgroup

    Unlink one or more subgroups from a Community. They become standalone groups again. Note: This endpoint is currently in beta and may change without notice.

  • [BETA] leave community

    Leave a Community as the current user. Note: This endpoint is currently in beta and may change without notice.

Label3 capabilities
  • get all labels

    Retrieve all labels.

  • get label by id
  • change chat labels

    Add or remove labels on a chat.

Frequently asked
questions.

What could an Ambacti integration do with WaAPI?

The documented operations include Instances: list instances; Instances: create instance; Instances: retrieve instance; Instances: update instance.

Could I keep a workflow read-only?

For a read-only workflow, limit account permissions to reading data and exclude actions that create, update, or delete records.

Will every action run automatically?

Choose which steps could run on their own and which should pause for review. Changes should follow the permissions and approval rules you set.

Do I need to review actions in WaAPI?

Decide which work could run on its own and which steps need your review.