<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://whatsgate.org/docs/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Whatsapp API api</title>
        <description></description>
        <link>https://whatsgate.org/docs/</link>
        <lastBuildDate>Sun, 14 Jun 2026 04:24:35 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://whatsgate.org/docs/_media/favicon.ico</url>
            <title>Whatsapp API</title>
            <link>https://whatsgate.org/docs/</link>
        </image>
        <item>
            <title>Check whether a number is registered</title>
            <link>https://whatsgate.org/docs/api/check</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;check-whether-a-number-is-registered&quot;&gt;Check whether a number is registered&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command checks whether a number is registered in WhatsApp.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Check whether a number is registered&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;check-whether-a-number-is-registered&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-136&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To check a number, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/check&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;137-259&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain the following object:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;number&amp;quot;: &amp;quot;79991112233&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;number&lt;/strong&gt; - phone number in digits only, including country code, for example 79991112233&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;260-577&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;: true
}&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;data&lt;/strong&gt; - if &lt;strong&gt;true&lt;/strong&gt;, the number is registered in WhatsApp; if &lt;strong&gt;false&lt;/strong&gt;, it is not.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;578-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:37 +0000</pubDate>
        </item>
        <item>
            <title>Incoming events processing (events-get)</title>
            <link>https://whatsgate.org/docs/api/events-get</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;incoming-events-processing-events-get&quot;&gt;Incoming events processing (events-get)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command is used to request and retrieve a list of incoming events, such as:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; incoming messages (action = message)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; message read/update (action = ack)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; incoming media file (action = media)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; message sent (action = sent) - this event appears only for asynchronous sending&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; error (action = error)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WhatsApp disconnect and session removal (action = disconnect)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Incoming events processing (events-get)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;incoming-events-processing-events-get&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;22-456&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve the event list, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/events-get&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;457-593&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body accepts the following object:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot; : &amp;quot;XXXXXXXXXXXXX&amp;quot;,
  &amp;quot;date&amp;quot; : &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;,
  &amp;quot;action&amp;quot; : &amp;quot;message&amp;quot;,
  &amp;quot;page_cnt&amp;quot; : &amp;quot;10&amp;quot;,
  &amp;quot;page&amp;quot; : &amp;quot;1&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
All fields in this object are &lt;strong&gt;optional&lt;/strong&gt;, meaning an empty object is enough to get the full list of events. Fields &lt;strong&gt;WhatsappID&lt;/strong&gt; and &lt;strong&gt;action&lt;/strong&gt; are filters, and &lt;strong&gt;date&lt;/strong&gt; limits events by date. The date is typically used like this: after reading events, take the date of the last event and pass it in the next request as &lt;strong&gt;date&lt;/strong&gt; to fetch only newer events.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - filter by WhatsApp identifier; uses exact match and returns events for the specified session. If omitted, the system returns events for all sessions, including deleted ones.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;date&lt;/strong&gt; - limits events by the specified date. A common pattern is to reuse the latest received event date in the next request to get fresh events only.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;action&lt;/strong&gt; - event type filter. Can be one of:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; message - incoming message.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ack - message status update.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; media - incoming media file.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; sent - message sent (only when sending asynchronously)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; error - error&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; disconnect - WhatsApp disconnect and session deletion&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; create - outgoing message&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page_cnt&lt;/strong&gt; - maximum number of events per response page. Default is 10, maximum is 100.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - response page number. Default is 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;594-2009&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;pages&amp;quot; : 1,
  &amp;quot;elements&amp;quot; : 2,
  &amp;quot;page&amp;quot; : 1,
  &amp;quot;data&amp;quot; : [
     // 
  ]
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pages&lt;/strong&gt; - number of pages for the given filters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;elements&lt;/strong&gt; - number of matching elements (event count)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - current page number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains an array of &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;objects representing events&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2010-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:10 +0000</pubDate>
        </item>
        <item>
            <title>Chat information</title>
            <link>https://whatsgate.org/docs/api/get-chats</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;chat-information&quot;&gt;Chat information&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command returns information about all active chats for the client. The response includes the contact list (including groups) and group participants with their permissions.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Chat information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;chat-information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-229&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve chat info, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/get-chats&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;230-360&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;361-536&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;: [
    { ... CHAT_CONTACT_OBJECT ... }
    ...
  ]
}&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;data&lt;/strong&gt; - contains an array of chat contact objects or chat group objects
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;537-767&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;chat-contact-object&quot;&gt;Chat contact object&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot; : &amp;quot;79991112233@c.us&amp;quot;,
  &amp;quot;name&amp;quot; : &amp;quot;Vasily&amp;quot;,
  &amp;quot;isGroup&amp;quot; : false,
  &amp;quot;isReadOnly&amp;quot; : false,
  &amp;quot;unreadCount&amp;quot; : 0,
  &amp;quot;timestamp&amp;quot; : 1662710454,
  &amp;quot;pinned&amp;quot; : false,
  &amp;quot;isMuted&amp;quot; : false,
  &amp;quot;muteExpiration&amp;quot; : 0
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - contact identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - contact name&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isGroup&lt;/strong&gt; - whether this is a group; false for contacts&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isReadOnly&lt;/strong&gt; - whether sending messages to this recipient is blocked; true = blocked, false = allowed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;unreadCount&lt;/strong&gt; - number of unread messages in this chat&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;timestamp&lt;/strong&gt; - time of last activity in Unix timestamp format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pinned&lt;/strong&gt; - whether the chat is pinned; true = yes, false = no&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isMuted&lt;/strong&gt; - whether notifications are muted for this chat; true = muted, false = enabled&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;muteExpiration&lt;/strong&gt; - number of seconds until notifications are enabled again (if muted)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Chat contact object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;chat-contact-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;768-1645&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;chat-group-object&quot;&gt;Chat group object&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot; : &amp;quot;4239048293082@g.us&amp;quot;,
  &amp;quot;name&amp;quot; : &amp;quot;Test group&amp;quot;,
  &amp;quot;isGroup&amp;quot; : true,
  &amp;quot;isReadOnly&amp;quot; : false,
  &amp;quot;unreadCount&amp;quot; : 0,
  &amp;quot;timestamp&amp;quot; : 1662616476,
  &amp;quot;pinned&amp;quot; : false,
  &amp;quot;isMuted&amp;quot; : false,
  &amp;quot;muteExpiration&amp;quot; : 0
  &amp;quot;groupMetadata&amp;quot; : {... GROUP_METADATA_OBJECT ...}
 }&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - group identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - group name&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isGroup&lt;/strong&gt; - whether this is a group; true for groups&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isReadOnly&lt;/strong&gt; - whether sending messages to this group is blocked; true = blocked, false = allowed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;unreadCount&lt;/strong&gt; - number of unread messages in this group&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;timestamp&lt;/strong&gt; - time of last activity in Unix timestamp format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pinned&lt;/strong&gt; - whether the group is pinned; true = yes, false = no&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isMuted&lt;/strong&gt; - whether notifications are muted for this group; true = muted, false = enabled&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;muteExpiration&lt;/strong&gt; - number of seconds until notifications are enabled again (if muted)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;groupMetadata&lt;/strong&gt; - group metadata object&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Chat group object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;chat-group-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1646-2616&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;group-metadata-object&quot;&gt;Group metadata object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot; : &amp;quot;4239048293082@g.us&amp;quot;,
  &amp;quot;creation&amp;quot; : 1658328976,
  &amp;quot;owner&amp;quot; : &amp;quot;79991112233@c.us&amp;quot;,
  &amp;quot;size&amp;quot; : 3,
  &amp;quot;participants&amp;quot; : [
     { ... PARTICIPANT_OBJECT ...}
     ...
  ]
}
  
  &lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - group identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;creation&lt;/strong&gt; - group creation date in Unix timestamp format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;owner&lt;/strong&gt; - group owner identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;size&lt;/strong&gt; - number of group participants&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;participants&lt;/strong&gt; - array of participant objects&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Group metadata object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;group-metadata-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2617-3079&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;group-participant-object&quot;&gt;Group participant object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot; : &amp;quot;79156666555@c.us&amp;quot;,
  &amp;quot;isAdmin&amp;quot; : true,
  &amp;quot;isSuperAdmin&amp;quot; : false
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - participant contact identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isAdmin&lt;/strong&gt; - whether this contact is a group admin; true = yes, false = no&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isSuperAdmin&lt;/strong&gt; - whether this contact is a super admin; true = yes, false = no&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Group participant object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;group-participant-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3080-3421&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit9&quot; id=&quot;full-response-example&quot;&gt;Full response example&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;:&amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot; : [
    { 
      &amp;quot;id&amp;quot; : &amp;quot;79999999999@c.us&amp;quot;, 
      &amp;quot;name&amp;quot; : &amp;quot;+7 999 999-99-99&amp;quot;, 
      &amp;quot;isGroup&amp;quot; : false,
      &amp;quot;isReadOnly&amp;quot; : false,
      &amp;quot;unreadCount&amp;quot; : 0,
      &amp;quot;timestamp&amp;quot; : 1662710454,
      &amp;quot;pinned&amp;quot; : false,
      &amp;quot;isMuted&amp;quot; : false,
      &amp;quot;muteExpiration&amp;quot; : 0
    },
    {
      &amp;quot;id&amp;quot; : &amp;quot;4239048293082@g.us&amp;quot;,
      &amp;quot;name&amp;quot; : &amp;quot;Test group&amp;quot;,
      &amp;quot;isGroup&amp;quot; : true,
      &amp;quot;isReadOnly&amp;quot; : false,
      &amp;quot;unreadCount&amp;quot; : 0,
      &amp;quot;timestamp&amp;quot; : 1662616476,
      &amp;quot;pinned&amp;quot; : false,
      &amp;quot;isMuted&amp;quot; : false,
      &amp;quot;muteExpiration&amp;quot; : 0,
      &amp;quot;groupMetadata&amp;quot; : {
         &amp;quot;id&amp;quot; : &amp;quot;4239048293082@g.us&amp;quot;,
         &amp;quot;creation&amp;quot; : 1658328976,
         &amp;quot;owner&amp;quot; : &amp;quot;79999999999@c.us&amp;quot;,
         &amp;quot;size&amp;quot; : 0,
         &amp;quot;participants&amp;quot; : [
           {
             &amp;quot;id&amp;quot; : &amp;quot;79999999999@c.us&amp;quot;,
             &amp;quot;isAdmin&amp;quot; : true,
             &amp;quot;isSuperAdmin&amp;quot; : false
           },
           { 
             &amp;quot;id&amp;quot; : &amp;quot;79991112233@c.us&amp;quot;,
             &amp;quot;isAdmin&amp;quot; : false,
             &amp;quot;isSuperAdmin&amp;quot;:false
           }
        ]
      }
    }
  ]
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Full response example&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;full-response-example&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3422-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:06 +0000</pubDate>
        </item>
        <item>
            <title>Retrieving chat message history</title>
            <link>https://whatsgate.org/docs/api/get-history</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;retrieving-chat-message-history&quot;&gt;Retrieving chat message history&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command retrieves message history from the specified chat. You can get up to 100 messages, no older than 90 days.
The request is synchronous, meaning the response is returned directly to the request, not to a WebHook.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Retrieving chat message history&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;retrieving-chat-message-history&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-290&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve chat history, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/get-history&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;291-426&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;recipient&amp;quot;: {
    &amp;quot;id&amp;quot;: &amp;quot;79999999999@c.us&amp;quot;
  }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;recipient&lt;/strong&gt; - points to a chat (or group) whose history should be retrieved. &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;Recipient object description&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;427-779&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;
  &amp;quot;data&amp;quot;: [
        {
            &amp;quot;id&amp;quot;: &amp;quot;false_79999999999@c.us_17AC61BFA5A561B7EE42F98810EDFFC4&amp;quot;,
            &amp;quot;ack&amp;quot;: 0,
            &amp;quot;hasMedia&amp;quot;: false,
            &amp;quot;mediaKey&amp;quot;: &amp;quot;&amp;quot;,
            &amp;quot;body&amp;quot;: &amp;quot;Hello world!&amp;quot;,
            &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,
            &amp;quot;timestamp&amp;quot;: 1667296242,
            &amp;quot;from&amp;quot;: &amp;quot;79999999999@c.us&amp;quot;,
            &amp;quot;to&amp;quot;: &amp;quot;79999999999@c.us&amp;quot;,
            &amp;quot;isForwarded&amp;quot;: false
        }
    ]
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - has value OK on success&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - array of message objects. &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;Detailed message object description.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;780-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:19 +0000</pubDate>
        </item>
        <item>
            <title>Working with media files (deprecated)</title>
            <link>https://whatsgate.org/docs/api/get-media</link>
            <description>

&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_center wrap_round wrap_important plugin_wrap&quot; style=&quot;width: 60%;&quot;&gt;
&lt;p&gt;
This command is deprecated and will be removed over time.
&lt;/p&gt;

&lt;p&gt;
Use the &lt;a href=&quot;https://whatsgate.org/docs/api/get-messagemedia&quot; class=&quot;wikilink1&quot; title=&quot;api:get-messagemedia&quot; data-wiki-id=&quot;api:get-messagemedia&quot;&gt;get-messagemedia&lt;/a&gt; method
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;working-with-media-files-deprecated&quot;&gt;Working with media files (deprecated)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This command lets you retrieve a media file attached to a received message. If a message contains media, the message field “hasMedia” is set to true, and the “mediaKey” field contains the media identifier used by this command.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Working with media files (deprecated)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;working-with-media-files-deprecated&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;180-459&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To request media, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/get-media&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;460-585&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;mediaKey&amp;quot;: &amp;quot;TuM9wXQZBmERUCzwnIZe80GwZ5lPDIDsNE+vewnAxho=&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;mediaKey&lt;/strong&gt; - media file identifier&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;586-864&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;media&amp;quot;: {
    &amp;quot;mimetype&amp;quot;: &amp;quot;image/jpeg&amp;quot;,
    &amp;quot;filename&amp;quot; : &amp;quot;image.jpg&amp;quot;,
    &amp;quot;data&amp;quot;: &amp;quot;&amp;lt;base64_encoded_data&amp;gt;&amp;quot;
  }
}&lt;/pre&gt;

&lt;p&gt;
In the response, the “media” field contains a &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;media file object&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;865-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:17 +0000</pubDate>
        </item>
        <item>
            <title>Working with media files</title>
            <link>https://whatsgate.org/docs/api/get-messagemedia</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;working-with-media-files&quot;&gt;Working with media files&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command lets you get a media file from any message. If a message has media, its “hasMedia” field is set to true, and to fetch the media you must provide the full message id in the format false_79999999999@c.us_17AC61BFA5A561B7EE42F98810EDFFC4.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Working with media files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;working-with-media-files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-309&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To request media, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/get-messagemedia&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;310-442&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;MessageID&amp;quot;: &amp;quot;false_79999999999@c.us_17AC61BFA5A561B7EE42F98810EDFFC4&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;MessageID&lt;/strong&gt; - message identifier&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;443-731&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;media&amp;quot;: {
    &amp;quot;mimetype&amp;quot;: &amp;quot;image/jpeg&amp;quot;,
    &amp;quot;filename&amp;quot; : &amp;quot;image.jpg&amp;quot;,
    &amp;quot;data&amp;quot;: &amp;quot;&amp;lt;base64_encoded_data&amp;gt;&amp;quot;
  }
}&lt;/pre&gt;

&lt;p&gt;
In the response, the “media” field contains a &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;media file object&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
If the message is not found, or if it has no media, an error is returned.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;732-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:16 +0000</pubDate>
        </item>
        <item>
            <title>API requests</title>
            <link>https://whatsgate.org/docs/api/request</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;api-requests&quot;&gt;API requests&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; requests are sent to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/&amp;lt;command&amp;gt;&lt;/pre&gt;

&lt;p&gt;
List of commands for WhatsApp instance management:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;send&lt;/a&gt; - send messages&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/seen&quot; class=&quot;wikilink1&quot; title=&quot;api:seen&quot; data-wiki-id=&quot;api:seen&quot;&gt;seen&lt;/a&gt; - marks latest chat messages as seen for the other participant&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/typing&quot; class=&quot;wikilink1&quot; title=&quot;api:typing&quot; data-wiki-id=&quot;api:typing&quot;&gt;typing&lt;/a&gt; - sends the “typing” status to the other participant for 15 seconds&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/get-chats&quot; class=&quot;wikilink1&quot; title=&quot;api:get-chats&quot; data-wiki-id=&quot;api:get-chats&quot;&gt;get-chats&lt;/a&gt; - request chat list&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/get-media&quot; class=&quot;wikilink1&quot; title=&quot;api:get-media&quot; data-wiki-id=&quot;api:get-media&quot;&gt;get-media&lt;/a&gt; - request media file&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/check&quot; class=&quot;wikilink1&quot; title=&quot;api:check&quot; data-wiki-id=&quot;api:check&quot;&gt;check&lt;/a&gt; - check whether a number is registered in WhatsApp&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/events-get&quot; class=&quot;wikilink1&quot; title=&quot;api:events-get&quot; data-wiki-id=&quot;api:events-get&quot;&gt;events-get&lt;/a&gt; - request incoming events to receive incoming messages&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
List of session management commands:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/session-create&quot; class=&quot;wikilink1&quot; title=&quot;api:session-create&quot; data-wiki-id=&quot;api:session-create&quot;&gt;session-create&lt;/a&gt; - create a new WhatsApp session&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/session-delete&quot; class=&quot;wikilink1&quot; title=&quot;api:session-delete&quot; data-wiki-id=&quot;api:session-delete&quot;&gt;session-delete&lt;/a&gt; - delete a WhatsApp session and log out&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/sessions-get&quot; class=&quot;wikilink1&quot; title=&quot;api:sessions-get&quot; data-wiki-id=&quot;api:sessions-get&quot;&gt;sessions-get&lt;/a&gt; - retrieve session list&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/set-name&quot; class=&quot;wikilink1&quot; title=&quot;api:set-name&quot; data-wiki-id=&quot;api:set-name&quot;&gt;set-name&lt;/a&gt; - change session name&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;set-hook&lt;/a&gt; - set a webhook for incoming messages&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;API requests&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;api-requests&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;19-1043&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-headers&quot;&gt;Request headers&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; authorization is done via the &lt;strong&gt;X-Api-Key&lt;/strong&gt; request header.
The &lt;strong&gt;Content-type: application/json&lt;/strong&gt; header is also required.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;X-Api-Key: YOUR_API_KEY
Content-type: application/json&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request headers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-headers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1044-1272&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body&quot;&gt;Request body&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A JSON object is sent in the request body, with &lt;strong&gt;WhatsappID&lt;/strong&gt; as a required parameter.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;number&amp;quot;: &amp;quot;79999999999&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1273-1469&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response&quot;&gt;Response&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
If everything succeeds, the response code is 200 and the body contains a JSON object. JSON fields depend on the command used.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;: true
}&lt;/pre&gt;

&lt;p&gt;
On error, the response code is 500. The returned object contains:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - error name&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;message&lt;/strong&gt; - more detailed error information&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;code&lt;/strong&gt; - error code&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;name&amp;quot;: &amp;quot;Unauthorized&amp;quot;,
  &amp;quot;message&amp;quot;: &amp;quot;Your request was made with invalid credentials.&amp;quot;,
  &amp;quot;code&amp;quot;: 0
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1470-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:14 +0000</pubDate>
        </item>
        <item>
            <title>Sending seen flag</title>
            <link>https://whatsgate.org/docs/api/seen</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sending-seen-flag&quot;&gt;Sending seen flag&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
The seen flag is sent for a specific contact. After that, the latest messages in the chat sent by that contact are marked as seen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sending seen flag&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sending-seen-flag&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-184&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To send this request, issue a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/seen&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;185-310&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;recipient&amp;quot;: {
    &amp;quot;id&amp;quot;: &amp;quot;79999999999@c.us&amp;quot;
  }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;recipient&lt;/strong&gt; - &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;recipient object&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;311-587&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;588-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:23 +0000</pubDate>
        </item>
        <item>
            <title>Sending messages</title>
            <link>https://whatsgate.org/docs/api/send</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sending-messages&quot;&gt;Sending messages&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sending messages&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sending-messages&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-51&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To send a message, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/send&lt;/pre&gt;

&lt;p&gt;
The request body must contain a &lt;a href=&quot;https://whatsgate.org/docs/api/send#message-send-object&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;message send object&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;52-259&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;sending-mode&quot;&gt;Sending mode&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A message can be sent through the &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; in two modes:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Synchronous: the response is returned only after sending, and includes the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;sent message object&lt;/a&gt; with identifier. In this mode, the webhook does not receive a &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#sent&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;&amp;quot;Sent&amp;quot;&lt;/a&gt; event.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Asynchronous: the &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; response returns queueing result (usually “OK”), and the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;sent message object&lt;/a&gt; is delivered to webhook (if configured). Event type: &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#sent&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;&amp;quot;Sent&amp;quot;&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
The &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#ack&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;&amp;quot;Ack&amp;quot;&lt;/a&gt; event is always sent to webhook, regardless of synchronous or asynchronous mode.
&lt;/p&gt;

&lt;p&gt;
Sending mode depends on the “async” field: if true, sending is asynchronous; otherwise it is synchronous.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sending mode&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sending-mode&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;260-1001&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;message-send-object&quot;&gt;Message send object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The message send request body has 4 main fields:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;async&amp;quot;: false,
  &amp;quot;recipient&amp;quot;: { ... RECIPIENT_OBJECT ... },
  &amp;quot;message&amp;quot;: { ... MESSAGE_OBJECT ... }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the service&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;async&lt;/strong&gt; - controls request synchrony&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;recipient&lt;/strong&gt; - &lt;a href=&quot;https://whatsgate.org/docs/api/send#recipient-message-recipient-object&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;message recipient object&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;message&lt;/strong&gt; - &lt;a href=&quot;https://whatsgate.org/docs/api/send#message-message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;message object&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message send object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message-send-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1002-1509&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;recipient-message-recipient-object&quot;&gt;Recipient - message recipient object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A WhatsApp message recipient can be specified in several ways.
&lt;/p&gt;

&lt;p&gt;
1. By WhatsApp identifier. The identifier scheme is simple: for contacts, identifier = phone number + @c.us, for example &lt;strong&gt;79991112233@c.us&lt;/strong&gt;. For groups, identifier = internal group number + @g.us, for example &lt;strong&gt;AA11223344@g.us&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
If recipient is provided by identifier, the object looks like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;//for contact
&amp;quot;recipient&amp;quot; : {
  &amp;quot;id&amp;quot; : &amp;quot;79991112233@c.us&amp;quot;
}

//for group
&amp;quot;recipient&amp;quot; : {
  &amp;quot;id&amp;quot; : &amp;quot;AA11223344@g.us&amp;quot;
}
&lt;/pre&gt;

&lt;p&gt;
2. By number and type. Type can be &lt;strong&gt;contact&lt;/strong&gt; or &lt;strong&gt;group&lt;/strong&gt;. Default is &lt;strong&gt;contact&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;recipient&amp;quot; : {
  &amp;quot;type&amp;quot; : &amp;quot;contact&amp;quot;,
  &amp;quot;number&amp;quot; : &amp;quot;79991112233&amp;quot;
}

//equivalent

&amp;quot;recipient&amp;quot; : {
  &amp;quot;number&amp;quot; : &amp;quot;79991112233&amp;quot;
}

//or for group

&amp;quot;recipient&amp;quot; : {
  &amp;quot;type&amp;quot; : &amp;quot;group&amp;quot;,
  &amp;quot;number&amp;quot; : &amp;quot;AA11223344&amp;quot;
}

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Recipient - message recipient object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;recipient-message-recipient-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1510-2372&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;message-message-object&quot;&gt;Message - message object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The message object consists of the following fields:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;message&amp;quot; : {
  &amp;quot;type&amp;quot; : &amp;quot;&amp;lt;string&amp;gt;&amp;quot;,
  &amp;quot;body&amp;quot; : &amp;quot;&amp;lt;string&amp;gt;&amp;quot;,
  &amp;quot;quote&amp;quot; : &amp;quot;&amp;lt;string&amp;gt;&amp;quot;,
  &amp;quot;media&amp;quot; : { ... MEDIA_OBJECT ...}
}&lt;/pre&gt;

&lt;p&gt;
The &lt;strong&gt;type&lt;/strong&gt; field defines message type. Supported message types:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send#text-text-message&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;text&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send#image-sticker-document-or-voice-message&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;image&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send#image-sticker-document-or-voice-message&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;sticker&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send#image-sticker-document-or-voice-message&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;doc&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/send#image-sticker-document-or-voice-message&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;voice&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Required fields depend on message type. By default, type is “text”.
The quote field is optional and can be used with any message type. It contains the long message identifier returned in synchronous send responses or delivered via webhook for asynchronous sending (or for incoming messages). When set, the sent message is marked as a reply to the referenced message.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;message&amp;quot; : {
  ...
  &amp;quot;quote&amp;quot; : &amp;quot;true_79991112233@c.us_3EB0EBC34954F8976AA6&amp;quot;
  ...
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message - message object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message-message-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2373-3433&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;text-text-message&quot;&gt;Text - text message&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A “text” message is a plain text message.
Field type is either omitted or set to “text”.
Field body is required.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;message&amp;quot; : {
  &amp;quot;body&amp;quot; : &amp;quot;Hello world!&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Text - text message&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;text-text-message&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3434-3636&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;image-sticker-document-or-voice-message&quot;&gt;Image, sticker, document, or voice message&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
When one of the media types is used, body becomes optional and media becomes required. You can still provide body text, which will be shown with the media message.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Image, sticker, document, or voice message&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;image-sticker-document-or-voice-message&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3637-3855&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;media-media-file-object&quot;&gt;Media - media file object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The media file object has 3 fields:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;media&amp;quot; : {
  &amp;quot;mimetype&amp;quot; : &amp;quot;&amp;lt;mimetype_list_value&amp;gt;&amp;quot;,
  &amp;quot;data&amp;quot; : &amp;quot;&amp;lt;base64_encoded_data&amp;gt;&amp;quot;,
  &amp;quot;filename&amp;quot; : &amp;quot;&amp;lt;string&amp;gt;&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;mimetype&lt;/strong&gt; - value from the &lt;a href=&quot;https://whatsgate.org/docs/api/send#list-of-available-mimetype&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;available mimetype list&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - file content encoded in base64&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;filename&lt;/strong&gt; - file name as displayed to recipient; used for doc and image types&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Voice messages must be in OGG format.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Media - media file object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;media-media-file-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3856-4332&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit10&quot; id=&quot;message-send-object-examples&quot;&gt;Message send object examples&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message send object examples&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message-send-object-examples&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4333-4376&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;text-message&quot;&gt;Text message&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;async&amp;quot;: false,
  &amp;quot;recipient&amp;quot;: {
    &amp;quot;number&amp;quot; : &amp;quot;79999999999&amp;quot;
  },
  &amp;quot;message&amp;quot;: {
    &amp;quot;body&amp;quot; : &amp;quot;Hello, world!&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Text message&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;text-message&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;4377-4575&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;media-message-with-image&quot;&gt;Media message with image&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;async&amp;quot;: false,
  &amp;quot;recipient&amp;quot;: {
    &amp;quot;type&amp;quot; : &amp;quot;group&amp;quot;,
    &amp;quot;number&amp;quot; : &amp;quot;AA11223344&amp;quot;
  },
  &amp;quot;message&amp;quot;: {
    &amp;quot;type&amp;quot; : &amp;quot;image&amp;quot;,
    &amp;quot;body&amp;quot; : &amp;quot;You received a little bird!&amp;quot;,
    &amp;quot;quote&amp;quot; : &amp;quot;true_79991112233@c.us_3EB0EBC34954F8976AA6&amp;quot;,
    &amp;quot;media&amp;quot; : {
       &amp;quot;mimetype&amp;quot; : &amp;quot;image/png&amp;quot;,
       &amp;quot;data&amp;quot; : &amp;quot;iVBORw0KG....5CYII=&amp;quot;,
       &amp;quot;filename&amp;quot; : &amp;quot;bird.png&amp;quot;
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Media message with image&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;media-message-with-image&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;4576-5030&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;list-of-available-mimetype&quot;&gt;List of available mimetype&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/ogg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/pdf&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/zip&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/gzip&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/msword&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audio/mp4&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audio/aac&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audio/mpeg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audio/ogg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audio/webm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/gif&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/jpeg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/pjpeg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/png&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/svg+xml&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/tiff&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; image/webp&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/mpeg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/mp4&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/ogg&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/quicktime&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/webm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/x-ms-wmv&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; video/x-flv&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/vnd.ms-excel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/vnd.ms-powerpoint&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; application/msword&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;List of available mimetype&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;list-of-available-mimetype&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;5031-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:34 +0000</pubDate>
        </item>
        <item>
            <title>Creating a session via API</title>
            <link>https://whatsgate.org/docs/api/session-create</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;creating-a-session-via-api&quot;&gt;Creating a session via API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command opens a WhatsApp session to link it to the service. After opening, you must authorize WhatsApp through the mobile app and QR code. If the session is no longer needed, close it using &lt;a href=&quot;https://whatsgate.org/docs/api/session-delete&quot; class=&quot;wikilink1&quot; title=&quot;api:session-delete&quot; data-wiki-id=&quot;api:session-delete&quot;&gt;session-delete&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Creating a session via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;creating-a-session-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-295&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To create a session, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/session-create&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;296-429&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object-for-qr-authorization&quot;&gt;Request body object for QR authorization&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;name&amp;quot; : &amp;quot;My WhatsApp&amp;quot;,
  &amp;quot;callback&amp;quot; : &amp;quot;https://callback.my/script.handler&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - WhatsApp name in the system (for easier identification)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler (optional, can be set later via &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;set-hook&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object for QR authorization&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object-for-qr-authorization&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;430-813&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;request-body-object-for-code-authorization&quot;&gt;Request body object for CODE authorization&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;name&amp;quot; : &amp;quot;My WhatsApp&amp;quot;,
  &amp;quot;callback&amp;quot; : &amp;quot;https://callback.my/script.handler&amp;quot;,
  &amp;quot;auth_type&amp;quot; : &amp;quot;CODE&amp;quot;,
  &amp;quot;number&amp;quot; : &amp;quot;79999999999&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - WhatsApp name in the system (for easier identification)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler (optional, can be set later via &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;set-hook&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;auth_type&lt;/strong&gt; - authorization type set to code. In this mode, phone number becomes required.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;number&lt;/strong&gt; - phone number to connect in 7XXXXXXXXXX format&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object for CODE authorization&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object-for-code-authorization&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;814-1411&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot; : {
     &amp;quot;id&amp;quot;: 151,
     &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp&amp;quot;,
     &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
     &amp;quot;status&amp;quot;: &amp;quot;PENDING&amp;quot;,
     &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;,
     &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
     &amp;quot;qr&amp;quot;: null,
     &amp;quot;status_name&amp;quot;: &amp;quot;Initialization&amp;quot;,
     &amp;quot;pushname&amp;quot;: null,
     &amp;quot;wid&amp;quot;: null,
     &amp;quot;qr_link&amp;quot;: &amp;quot;https://whatsgate.org/qr/6345454545454&amp;quot;
  }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains created session object including its unique identifier &lt;strong&gt;unique_id&lt;/strong&gt; and QR authorization link &lt;strong&gt;qr_link&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;qr&lt;/strong&gt; or &lt;strong&gt;code&lt;/strong&gt; depends on selected authorization type. If code authorization is selected, the code is returned in &lt;strong&gt;code&lt;/strong&gt;. Field &lt;strong&gt;qr_link&lt;/strong&gt; points to the authorization code page.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1412-2259&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;qr-authorization-window&quot;&gt;QR authorization window&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The QR authorization window is available at:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/qr/&amp;lt;unique_id&amp;gt;&lt;/pre&gt;

&lt;p&gt;
For convenience, this link is returned in &lt;strong&gt;qr_link&lt;/strong&gt; when creating a session. The QR code in this window is updated periodically and changes to a success or error image after authorization.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/feature-image-success.jpg?id=api%3Asession-create&quot; class=&quot;media&quot; title=&quot;api:feature-image-success.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/feature-image-success.jpg?w=100&amp;amp;tok=0a1150&quot; class=&quot;medialeft&quot; align=&quot;left&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://whatsgate.org/docs/_detail/api/feature-image-error.jpg?id=api%3Asession-create&quot; class=&quot;media&quot; title=&quot;api:feature-image-error.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/feature-image-error.jpg?w=100&amp;amp;tok=f63f73&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;QR authorization window&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;qr-authorization-window&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2260-2665&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;embedding-the-qr-page&quot;&gt;Embedding the QR page&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This page can be embedded into your app via iframe, and parent page can receive messages from it. Embedding example:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;h1&amp;gt;QR test code&amp;lt;/h1&amp;gt;

&amp;lt;iframe src=&amp;quot;https://whatsgate.org/qr/6345454545454&amp;quot; width=&amp;quot;310&amp;quot; height=&amp;quot;310&amp;quot; style=&amp;quot;border: none;&amp;quot;&amp;gt;

&amp;lt;/iframe&amp;gt;

&amp;lt;div class=&amp;quot;log&amp;quot; id=&amp;quot;log&amp;quot;&amp;gt;

&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    window.addEventListener(&amp;quot;message&amp;quot;, function(event) {

        console.log(event);

        if (event.origin !== &amp;#039;https://whatsgate.org&amp;#039;) {
            // something came from an unknown domain; ignore it
            return;
        }

        if(typeof event.data !== &amp;#039;object&amp;#039;) {
            // message must be an object
            return;
        }

        if(!(&amp;#039;module&amp;#039; in event.data) &amp;amp;&amp;amp; event.data.module !== &amp;#039;qr&amp;#039;){
            // object must contain module field with value qr
            return;
        }

        //if we&amp;#039;re here, the message is valid; output it
        console.log( &amp;quot;received: &amp;quot; + event.data.message);
        //append message to parent-page log
        document.getElementById(&amp;#039;log&amp;#039;).append(&amp;quot;received: &amp;quot; + event.data.message, document.createElement(&amp;quot;br&amp;quot;));
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
The message object is in &lt;strong&gt;event.data&lt;/strong&gt; and has this format:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;module&amp;quot; : &amp;quot;qr&amp;quot;,
  &amp;quot;message&amp;quot; : &amp;quot;&amp;lt;message&amp;gt;&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;module&lt;/strong&gt; - always has value qr, to identify relevant messages&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;message&lt;/strong&gt; - can have the following values:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;loading&lt;/strong&gt; - session initialization and QR code loading; sent at page load start&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;qr&lt;/strong&gt; - QR code has been generated and displayed; sent each time code refreshes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;success&lt;/strong&gt; - device authorized successfully; QR code is hidden&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;error&lt;/strong&gt; - authorization error occurred; try again&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;broken&lt;/strong&gt; - attempt to open a window with non-existing or closed session identifier&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Embedding the QR page&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;embedding-the-qr-page&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2666-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:13:04 +0000</pubDate>
        </item>
        <item>
            <title>Deleting a session via API</title>
            <link>https://whatsgate.org/docs/api/session-delete</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;deleting-a-session-via-api&quot;&gt;Deleting a session via API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Deleting a session means WhatsApp authorization is terminated, all session data is removed from Whatsgate servers, and resources are released (for example, if your plan allows only 1 session, you cannot create a new one until the current session is deleted).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Deleting a session via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;deleting-a-session-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-321&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To send this request, issue a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/session-delete&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;322-457&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;458-633&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;: {
        &amp;quot;id&amp;quot;: 456,
        &amp;quot;name&amp;quot;: &amp;quot;My Whatsapp&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;DESTROYING&amp;quot;,
        &amp;quot;callback&amp;quot;: null,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-12 07:10:49&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Deleting&amp;quot;,
        &amp;quot;pushname&amp;quot;: &amp;quot;Vasya&amp;quot;,
        &amp;quot;wid&amp;quot;: &amp;quot;79991234567@c.us&amp;quot;,
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;634-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:32 +0000</pubDate>
        </item>
        <item>
            <title>Getting the session list</title>
            <link>https://whatsgate.org/docs/api/sessions-get</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;getting-the-session-list&quot;&gt;Getting the session list&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command is used to get the list of sessions for an account.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Getting the session list&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;getting-the-session-list&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;21-126&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve the session list, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/sessions-get&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;127-267&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body accepts:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;name&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;status&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;page_cnt&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;page&amp;quot; : &amp;quot;&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
All fields in this object are optional, so an empty object is enough to get the full list of active sessions. Fields &lt;strong&gt;WhatsappID&lt;/strong&gt;, &lt;strong&gt;name&lt;/strong&gt;, and &lt;strong&gt;status&lt;/strong&gt; are filters.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - filter by WhatsApp identifier, exact match; returns one session with the specified identifier.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - filter by name, partial match.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;status&lt;/strong&gt; - session status filter. Can be one of:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; AUTH - sessions in authorization status.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; READY - sessions in working state.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ERROR - sessions in error state.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; CLOSED - closed sessions (due to error or end of paid period)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page_cnt&lt;/strong&gt; - maximum sessions returned per page. Default is 50, maximum is 100.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - page number. Default is 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;268-1145&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;pages&amp;quot; : 1,
  &amp;quot;elements&amp;quot; : 2,
  &amp;quot;page&amp;quot; : 1,
  &amp;quot;data&amp;quot; : [
     {
        &amp;quot;id&amp;quot;: 151,
        &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp 1&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;AUTH&amp;quot;,
        &amp;quot;callback&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Authorization&amp;quot;,
        &amp;quot;pushname&amp;quot;: null,
        &amp;quot;wid&amp;quot;: null,
        &amp;quot;qr_link&amp;quot;: &amp;quot;https://whatsgate.org/qr/6345454545454&amp;quot;
     },
     {
        &amp;quot;id&amp;quot;: 152,
        &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp 2&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545455&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;READY&amp;quot;,
        &amp;quot;callback&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-12 10:35:01&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Working&amp;quot;,
        &amp;quot;pushname&amp;quot;: &amp;quot;Vasya&amp;quot;,
        &amp;quot;wid&amp;quot;: &amp;quot;79991234567@c.us&amp;quot;,
        &amp;quot;qr_link&amp;quot;: &amp;quot;&amp;quot;
     },
  ]
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pages&lt;/strong&gt; - number of pages for the selected filters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;elements&lt;/strong&gt; - number of elements in the filtered result (number of WhatsApp sessions returned)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - current page number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains an array of WhatsApp session objects&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1146-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:30 +0000</pubDate>
        </item>
        <item>
            <title>Changing session name</title>
            <link>https://whatsgate.org/docs/api/set-name</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;changing-session-name&quot;&gt;Changing session name&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command changes the &lt;strong&gt;name&lt;/strong&gt; of the specified WhatsApp session.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Changing session name&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;changing-session-name&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;21-127&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To change a session name, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/set-name&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;128-260&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;name&amp;quot;: &amp;quot;new name&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - new session name&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;261-490&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;:  {
     &amp;quot;id&amp;quot;: 151,
     &amp;quot;name&amp;quot;: &amp;quot;new name&amp;quot;,
     &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
     &amp;quot;status&amp;quot;: &amp;quot;READY&amp;quot;,
     &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;,
     &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
     &amp;quot;status_name&amp;quot;: &amp;quot;Working&amp;quot;,
     &amp;quot;pushname&amp;quot;: &amp;quot;Vasya&amp;quot;,
     &amp;quot;wid&amp;quot;: &amp;quot;79991234567@c.us&amp;quot;,
  }
}&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;data&lt;/strong&gt; - session object
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;491-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:08 +0000</pubDate>
        </item>
        <item>
            <title>Sending typing status</title>
            <link>https://whatsgate.org/docs/api/typing</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sending-typing-status&quot;&gt;Sending typing status&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Typing status is sent for a specific contact; after that, the recipient will see the “typing” indicator from this number for 15 seconds.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sending typing status&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sending-typing-status&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-194&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To send this request, issue a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/typing&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;195-322&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;recipient&amp;quot;: {
    &amp;quot;id&amp;quot;: &amp;quot;79999999999@c.us&amp;quot;
  }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;recipient&lt;/strong&gt; - &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;recipient object&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;323-599&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;600-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:21 +0000</pubDate>
        </item>
        <item>
            <title>Incoming processing (Webhook)</title>
            <link>https://whatsgate.org/docs/api/webhook</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;incoming-processing-webhook&quot;&gt;Incoming processing (Webhook)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Webhook is used to process incoming events, asynchronous request responses, and error information. For example, when an incoming message is received in the messenger, a POST request is sent to the configured webhook:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;message&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot; : &amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;p&gt;
To confirm successful event receipt, your webhook must return a JSON object containing the incoming event identifier and status OK.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot; : &amp;quot;OK&amp;quot;,
  &amp;quot;id&amp;quot; : 18
}&lt;/pre&gt;

&lt;p&gt;
If the system does not receive a valid response, it retries the request 3 times every 20 seconds.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Incoming processing (Webhook)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;incoming-processing-webhook&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-1095&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;webhook-setup&quot;&gt;Webhook setup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1096-1124&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;webhook-setup-in-account-dashboard&quot;&gt;Webhook setup in account dashboard&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To set a Webhook handler &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;, open your account dashboard, choose the linked WhatsApp block, click the 3 dots, then click edit.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/hook1.jpg?id=api%3Awebhook&quot; class=&quot;media&quot; title=&quot;api:hook1.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/hook1.jpg?w=400&amp;amp;tok=4b6188&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In the opened window, specify the &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; to your Webhook handler script.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/hook2.jpg?id=api%3Awebhook&quot; class=&quot;media&quot; title=&quot;api:hook2.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/hook2.jpg?w=400&amp;amp;tok=d1fa27&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Click “Save”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup in account dashboard&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup-in-account-dashboard&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1125-1437&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;webhook-setup-via-api&quot;&gt;Webhook setup via API&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To enable or disable WebHook via &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;, use the set-hook method.
Send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/set-hook&lt;/pre&gt;

&lt;p&gt;
Request body:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1438-1923&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;event-types&quot;&gt;Event types&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#ready&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;ready&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#sent&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;sent&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#ack&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;ack&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#disconnect&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;disconnect&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#error&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;error&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#create&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;create&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Event types&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;event-types&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1924-2185&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;ready&quot;&gt;Ready&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent after authorization, when the client is fully ready to send and receive messages. Session status changes from AUTH to READY.
Field event_action contains “ready”.
Field event_data contains authorized account data: number and name.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pushname&lt;/strong&gt; - client&amp;#039;s name in messenger&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;number&lt;/strong&gt; - authorized phone number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - WhatsApp identifier in @c.us format&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot; : &amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot; : &amp;quot;ready&amp;quot;,
  &amp;quot;event_date&amp;quot; : &amp;quot;2023-01-24 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot; : null,
  &amp;quot;event_data&amp;quot; :
  {
    &amp;quot;pushname&amp;quot;: &amp;quot;vasya&amp;quot;,
    &amp;quot;number&amp;quot; : &amp;quot;79991234567&amp;quot;,
    &amp;quot;id&amp;quot; : &amp;quot;79991234567@c.us&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ready&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2186-2858&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;message&quot;&gt;Message&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent for any incoming message in a chat or group.
Field event_action contains “message”.
Field event_data contains a &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;message&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2859-3586&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;sent&quot;&gt;Sent&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent after successful message delivery when an asynchronous send command was used.
&lt;/p&gt;

&lt;p&gt;
Field event_action contains “sent”.
Field event_data contains the delivered &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;sent&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3587-4351&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;ack&quot;&gt;Ack&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when a message status changes in a chat or group.
Field event_action contains “ack”.
Field event_data contains the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt; whose status changed.
Message status is in message field ack and can be: 1 - sent, 2 - delivered, 3 - read.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;ack&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ack&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ack&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4352-5181&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;disconnect&quot;&gt;Disconnect&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when the client disconnects and closes. This happens when you remove the client from your account dashboard or revoke the link in the WhatsApp mobile app.
Field event_action contains “disconnect”.
Field event_data contains an object with field reason describing the disconnect cause.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;disconnect&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;reason&amp;quot;: &amp;quot;Client disconnected&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Disconnect&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;disconnect&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5182-5722&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;error&quot;&gt;Error&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when any error occurs. For example, when you try to send asynchronously to a number outside your contact list on the Light plan.
Field event_action contains “error”.
Field event_data contains an object describing the error.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;error&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;error&amp;quot;:&amp;quot;Specified number not in your contact list&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5723-6213&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;create&quot;&gt;Create&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent for any outgoing message in a chat or group. It lets you track sent messages via webhook, including messages sent from the mobile client or other linked applications.
&lt;/p&gt;

&lt;p&gt;
Field event_action contains “create”.
&lt;/p&gt;

&lt;p&gt;
Field event_data contains a &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;create&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;true_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;6214-7061&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;message-object&quot;&gt;Message object&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
   &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
   &amp;quot;id&amp;quot;:&amp;quot;false_79999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
   &amp;quot;ack&amp;quot;:1,
   &amp;quot;hasMedia&amp;quot;:false,
   &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
   &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
   &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
   &amp;quot;timestamp&amp;quot;:1662575377,
   &amp;quot;from&amp;quot;:&amp;quot;79999999999@c.us&amp;quot;,
   &amp;quot;to&amp;quot;:&amp;quot;79991112233@c.us&amp;quot;,
   &amp;quot;isForwarded&amp;quot;:false,
   &amp;quot;quoted&amp;quot;: {
       &amp;quot;_id&amp;quot;: &amp;quot;3EB07621A4D08F9F59E0&amp;quot;,
       &amp;quot;from&amp;quot;: &amp;quot;79537226631@c.us&amp;quot;,
       &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,
       &amp;quot;body&amp;quot;: &amp;quot;Hello!&amp;quot;
   }
}&lt;/pre&gt;

&lt;p&gt;
Message object fields:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;_id&lt;/strong&gt; - message identifier in WhatsApp.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - WhatsApp message identifier that can be passed in the “&lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;quote&lt;/a&gt;” field to mark a message as a reply.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;ack&lt;/strong&gt;  - (int) status flag showing message state: 1 - sent, 2 - delivered, 3 - read&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;hasMedia&lt;/strong&gt; - flag indicating whether message contains a media file&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;mediaKey&lt;/strong&gt; - media file key used in &lt;a href=&quot;https://whatsgate.org/docs/api/get-media&quot; class=&quot;wikilink1&quot; title=&quot;api:get-media&quot; data-wiki-id=&quot;api:get-media&quot;&gt;get-media&lt;/a&gt; to fetch media.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;body&lt;/strong&gt; - message text&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;type&lt;/strong&gt; - message type&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;timestamp&lt;/strong&gt; - message date in Unix timestamp format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;from&lt;/strong&gt; - sender identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;to&lt;/strong&gt; - recipient identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isForwarded&lt;/strong&gt; - indicates whether the message was forwarded from another chat&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;quoted&lt;/strong&gt; - if this message quotes (replies to) another message, quoted contains the quoted message object.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;_id&lt;/strong&gt; - quoted message identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;from&lt;/strong&gt; - quoted message author identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;type&lt;/strong&gt; - quoted message type&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;body&lt;/strong&gt; - quoted message text&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;7062-8526&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;php-code-for-webhook-request-handling&quot;&gt;PHP code for webhook request handling&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//buffer output&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/ob_start&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ob_start&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/var_dump&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;var_dump&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'----------------------'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'d.m.Y H:i:s'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'----------------'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//extract request data&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'php://input'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/var_dump&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;var_dump&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_action'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//@TODO process incoming message&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_action'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;//@TODO process delivery or read status&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_data'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//@TODO delivered&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_data'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//@TODO read&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//save log&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/fopen&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fopen&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'webhook.log'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'a'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/fwrite&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fwrite&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/ob_get_clean&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ob_get_clean&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/fclose&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fclose&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//build and output response&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$answer_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'id'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'id'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'result'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'OK'&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$answer_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PHP code for webhook request handling&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php-code-for-webhook-request-handling&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;8527-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>api</category>
            <pubDate>Wed, 10 Jun 2026 21:12:25 +0000</pubDate>
        </item>
    </channel>
</rss>
