Returns QR-code for authorization in base64 format.
Resource URL:https://app.api-messenger.com/go
Parameter | Mandatory | Value |
---|---|---|
img | No | QR code in foto (img=true ) |
The output data structure is shown below.
{
"status": "{enum}",
"img": "{string}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
img | QR code in base64 format |
message | The parameter is displayed only in case of an error |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/go?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
echo '<img src="' . $data['img'] . '">';
} else {
echo 'ERROR: ' . $data['message'];
}
The method allows you to get the status of the instance.
Resource URL:https://app.api-messenger.com/status
The output data structure is shown below.
{
"status": "{enum}",
"account": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
account | Instance Status. Possible values:
|
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/status?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'].': '.$data['account'];
The method allows you to restart the instance from the Connected status.
Resource URL:https://app.api-messenger.com/reboot
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | The parameter is displayed only in case of an error |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/reboot?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
echo $result;
The method allows you to close the current instance.
Resource URL:https://app.api-messenger.com/exit
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | The parameter is displayed only in case of an error |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/exit?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to queue messages to be sent.
The message to be sent is stored in the queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendmessage
Structure of the POST request body:
[
{
"chatId": "{string}",
"message": "{string}",
"sendSeen": "{boolean}",
"customParametr": "{string}",
},
...
]
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Recipient of a message in WhatsApp API format: 71111111111@c.us , if the recipient is a group: 79261879777-1513760411@g.us |
message | Yes | Text message |
sendSeen | No | Mark messages as read. Enabled by default. Accepting values: true/false |
customParametr | No | Custom parametr. Comes in back in the hook |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error, or, if successful, the number of added messages in the format. Successfully added 10 |
$token = '1xmrd7YHjff5';
$array = array(
array(
'chatId' => '79999999999@c.us', // Recipient's phone number
'message' => 'Hello!', // Message
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendmessage?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to queue a message with a selection list to be sent.
The message to be sent is kept in queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendlist
Structure of the POST request body:
{
"chatId": "{string}",
"message": "{string}",
"title": "{string}",
"button": "{string}",
"customParametr": "{string}",
"sections": [
{
"title": "{string}",
"rows": [
{
"title": "{string}",
"id": "{string}",
"description": "{string}"
},
...
]
},
...
]
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Message recipient in WhatsApp API format: 71111111111@c.us , if the recipient is a group: 79261879777-1513760411@g.us |
message | Yes | Message text. |
title | Yes | Title of the post. |
button | Yes | Inscription on the button of the selection list. |
customParametr | No | Custom parametr. Comes in back in the hook |
Parameters embedded in sections |
||
title | Yes | Title of the selection list. |
rows | Yes | Select list values |
Parameters embedded in rows |
||
title | Yes | List value text. |
id | Yes | Id of the list value. |
description | Yes | Description of the list value. |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79999999999@c.us',
'message' => 'Message',
'title' => 'Title Custom',
'button' => 'Click',
'sections' => array(
array(
'title' => 'Title #1',
'rows' => array(
array(
'title' => 'option 1',
'id' => 'option_1',
'description' => 'Description 1'
),
array(
'title' => 'option 2',
'id' => 'option_2',
'description' => 'Description 2'
)
)
)
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendlist?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to queue a message with a contact for sending.
The message to be sent is stored in the queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendcontact
Structure of the POST request body:
[
{
"chatId": "{string}",
"contact": "{string}",
"name": "{string}",
"customParametr": "{string}"
},
...
]
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Recipient of a message in WhatsApp API format: 71111111111@c.us , if the recipient is a group: 79261879777-1513760411@g.us |
contact | Yes | Contact to be sent in the format 71111111111 |
name | No | Name of contact |
customParametr | No | Custom parametr. Comes in back in the hook |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error, or, if successful, the number of contacts added in the format. Successfully added 10 |
$token = '1xmrd7YHjff5';
$array = array(
array(
'chatId' => '79999999999@c.us', // Recipient's phone number
'contact' => '71111111111', // Sending contact
'name' => 'Name contact'
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendcontact?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to queue a message with a location for sending.
The message to be sent is kept in queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendlocation
Structure of the POST request body:
{
"chatId": "{string}",
"latitude": "{string}",
"longitude": "{string}",
"description": "{string}",
"customParametr": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Message recipient in WhatsApp API format: 71111111111@c.us , if recipient group: 79261879777-1513760411@g.us |
latitude | Yes | Latitude |
longitude | Yes | Longitude |
description | Yes | Description |
customParametr | No | Custom parametr. Comes in back in the hook |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79999999999@c.us',
'latitude' => '37.422',
'longitude' => '-122.084',
'description' => "Googleplex\nGoogle Headquarters"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendlocation?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to queue a file to be sent.
The file to be sent is stored in the queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendfile
Structure of the POST request body:
[
{
"chatId": "{string}",
"body": "{string}",
"filename": "{string}",
"caption": "{string}",
"customParametr": "{string}"
}
]
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Recipient of a message in WhatsApp API format: 71111111111@c.us , if the recipient is a group: 79261879777-1513760411@g.us |
body | Yes | String in base64 format |
filename | Yes | File name with extension. |
caption | No | A caption to the file that the recipient will see. |
customParametr | No | Custom parametr. Comes in back in the hook |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message about the successful addition or an error that occurred. |
$token = '1xmrd7YHjff5';
$array = array(
array(
'body' => 'data:image/jpeg;base64,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',
'filename' => 'filename_1.jpg',
'caption' => 'подпись',
'chatId' => '79999999999@c.us', // Recipient's phone number
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendfile?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to queue a file by URL to be sent.
The file to be sent is stored in the queue for 24 hours.
Instance authorization check is not performed.
https://app.api-messenger.com/sendfileurl
Structure of the POST request body:
{
"chatId": "{string}",
"url": "{string}",
"filename": "{string}",
"caption": "{string}",
"customParametr": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Recipient of a message in WhatsApp API format: 71111111111@c.us , if the recipient is a group: 79261879777-1513760411@g.us |
url | Yes | File link |
filename | Yes | File name with extension. |
caption | No | A caption to the file that the recipient will see. |
customParametr | No | Custom parametr. Comes in back in the hook |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'url' => 'https://img1.goodfon.ru/wallpaper/nbig/a/69/kartinka-3d-dikaya-koshka.jpg',
'filename' => 'filename_1.jpg',
'caption' => 'caption',
'chatId' => '79999999999@c.us', // Recipient's phone number
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendfileurl?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to retrieve all messages for the last 30 days.
Resource URL:https://app.api-messenger.com/messages
Parameter | Mandatory | Value |
---|---|---|
api | No | Receive messages sent via API. Accepts true values |
from | No | Receive messages starting from (>=). Filtering occurs based on the timestamp parameter |
to | No | Receive messages before (<=). Filtering occurs based on the timestamp parameter |
page | No | The number of the results page to be shown in the response. If a page number is specified that exceeds the total number of pages found, an error is returned. Default value: 1. |
The output data structure is shown below.
{
"status": "{enum}",
"pager":
{
"currentPage": {int32},
"pagesCount": {int32},
"pageSize": {int32},
"totalsMessage": {int32}
},
"messages":
[
{
"id": "{string}",
"body": "{string}",
"chatId": "{string}",
"formattedTitle": "{string}",
"fromMe": {boolean},
"imgURL": "{string}",
"notifyName": "{string}",
"sender": "{string}",
"timestamp": {int64},
"vCards": {array},
"location": {object},
"selectedRowId": "{string}",
"selectedButtonId": "{string}",
"api": {boolean},
"customParametr": "{string}",
"type": "{enum}"
},
...
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
pager | Summary of search results. |
messages | A list of messages matching the search conditions. |
Parameters embedded in pager
| |
currentPage | The number of the output results page. If no messages satisfying the search conditions specified in the request are found, the parameter is not output. |
pagesCount | The number of pages with results. If no messages satisfying the search conditions specified in the request are found, the parameter is not output. |
pageSize | The number of messages displayed on the page. If no messages satisfying the search conditions specified in the request are found, the parameter is not output. |
totalsMessage | The total number of messages found. If no messages satisfying the search conditions specified in the request are found, the parameter value is 0. |
Parameters embedded in messages
| |
id | Individual message id |
body | If the value of the parameter type is chat, the text of the message is displayed, otherwise a link to download the file is displayed.For example: /file/63f58d2e62d98ff0ab305026 The finished link will look like https://app.api-messenger.com/file/63f58d2e62d98ff0ab305026?token=xxxx |
chatId | Individual chat identifier |
formattedTitle | Sender name |
fromMe | Possible values:
|
imgURL | URL to the user's avatar The parameter is only displayed when fromMe=false |
notifyName | WhatsApp username The parameter is only displayed when fromMe=false |
sender | Author ID |
timestamp | UNIX time stamp in seconds |
selectedRowId | ID of the selected item that was passed via the POST method /sendList The parameter is displayed only when type=list_response |
selectedButtonId | ID of the selected button that was passed via the POST method /sendButton The parameter is displayed only when type=buttons_response |
api | API send flag. Accepts true/false values |
customParametr | Custom parametr. |
type | Message type. Main possible values:
|
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/messages?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
if ($data['pager']['totalsMessage'] > 0) {
foreach ($data['messages'] as $v) {
echo 'Отправитель: ' . (int) $v['sender'] . '
Сообщение: ' . $v['body'] . '
';
}
} else
echo 'no messages';
} else
echo $data['status'] . ': ' . $data['message'];
This method allows you to get the last 100 messages for a specific chat.
Resource URL:https://app.api-messenger.com/messagesinchat
Parameter | Mandatory | Value |
---|---|---|
id | Yes | Individual chat id |
The output data structure is shown below.
{
"status": "{enum}",
"messages":
[
{
"id": "{string}",
"body": "{string}",
"chatId": "{string}",
"formattedTitle": "{string}",
"fromMe": {boolean},
"imgURL": "{string}",
"notifyName": "{string}",
"sender": "{string}",
"timestamp": {int64},
"vCards": {array},
"location": {object},
"selectedRowId": {string},
"selectedButtonId": {string},
"type": "{enum}"
},
...
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
messages | List of messages matching the search criteria. |
Parameters attached to messages
| |
id | Individual message id |
body | If the value of the type parameter is chat, the text of the message is displayed, otherwise a link to download the file is displayed. |
chatId | Individual chat id |
formattedTitle | Sender name |
fromMe | Possible values:
|
imgURL | URL to user's avatar The parameter is displayed only when fromMe=false |
notifyName | WhatsApp username This parameter is only displayed when fromMe=false |
sender | Sender ID |
timestamp | UNIX timestamp in seconds |
selectedRowId | ID of the selected item that was passed via the POST method /sendList The parameter is displayed only when type=list_response |
selectedButtonId | ID of the selected button that was passed via the POST method /sendButton The parameter is displayed only when type=buttons_response |
type | Message type. Main possible values:
|
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/messagesinchat?token=' . $token .'&id=7111111@c.us');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
if (count($data['messages']) > 0) {
foreach ($data['messages'] as $v) {
echo 'Отправитель: ' . (int) $v['sender'] . '
Сообщение: ' . $v['body'] . '
';
}
} else
echo 'no messages';
} else
echo $data['status'] . ': ' . $data['message'];
The method allows you to get all messages that are in the queue to be sent.
Resource URL:https://app.api-messenger.com/messagesqueue
Parameter | Mandatory | Value |
---|---|---|
filter | No | Filter by message type. Example: filter=message,file,contact,fileurl,list,location,button |
page | No | The number of the results page to be shown in the response. If a page number is specified that exceeds the total number of pages found, an error is returned. Default value: 1. |
The output data structure is shown below.
{
"status": "{enum}",
"pager":
{
"currentPage": {int32},
"pagesCount": {int32},
"pageSize": {int32},
"totalsMessage": {int32}
},
"messages":
[
{
"type": "{enum}",
"chatId": "{string}",
... // Parameters according to the sent method
},
...
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
pager | Summary of search results. |
messages | A list of messages matching the search conditions. |
Parameters embedded in pager
| |
currentPage | Number of the results page to display. If no posts matching the search criteria specified in the query are found, the parameter is not displayed. |
pagesCount | Number of pages with results. If no posts matching the search criteria specified in the query are found, the parameter is not displayed. |
pageSize | The number of posts to display per page. If no posts matching the search criteria specified in the query are found, the parameter is not displayed. |
totalsMessage | The total number of messages found. If no messages were found that meet the search conditions specified in the query, the value of the parameter: 0. |
Parameters embedded in messages
| |
type | Message type. Possible values:
|
chatId | Individual chat identifier |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/messagesqueue?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
if ($data['pager']['totalsMessage'] > 0) {
foreach ($data['messages'] as $v) {
echo 'Recipient: ' . (int) $v['chatId'] . '
Message: ' . $v['message'] . '
';
}
} else
echo 'no messages';
} else
echo $data['status'] . ': ' . $data['message'];
The method allows you to clear all messages queued for sending.
Resource URL:https://app.api-messenger.com/clearmessagesqueue
Parameter | Mandatory | Value |
---|---|---|
filter | No | Remove only certain types of messages. Example: filter=message,file,contact,fileurl,list,location,button |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/clearmessagesqueue?files=true&token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to get a list of all chats.
Resource URL:https://app.api-messenger.com/chats
The output data structure is shown below.
{
"status": "{enum}",
"chats":
[
{
"chatId": "{string}",
"formattedTitle": "{string}",
"unreadCount": {int64},
"muteExpiration": {int64},
"isGroup": {boolean},
"isMuted": {boolean},
"timestamp": {int64},
"groupMetadata": {object}
}
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
Parameters embedded in chats
|
|
chatId | Individual chat identifier |
formattedTitle | Chat name |
unreadCount | Number of unread messages |
muteExpiration | UNIX timestamp in seconds when the chat will time out for how long it was muted |
isGroup | The flag indicates whether the chat is a group or not |
isMuted | The flag indicates whether the chat is muted or not |
timestamp | UNIX time stamp in seconds |
groupMetadata | This parameter is displayed if the chat is a group and contains data such as members, administrators, former members, etc. |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/chats?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
print_r($data);
The method allows you to mark messages as read in a chat or group.
Resource URL:https://app.api-messenger.com/readchat
Structure of the POST request body:
[
{
"chatId": "{string}"
},
...
]
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Individual chat id |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}",
"result": [
{
"chatId": "{string}",
"status": "{boolean}",
},
...
],
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error, or, if successful, the number of requests made in the format Successfully requests completed 10 |
Parameters attached to result
| |
chatId | Individual chat id |
status | Query result |
$token = '1xmrd7YHjff5';
$array = [
[
'chatId' => '79999999999@c.us', // chat with contact 79999999999
],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/readchat?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
This method allows you to mark a conversation (chat) or group as unread.
Resource URL:https://app.api-messenger.com/markchatunread
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/markChatUnread?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to archive a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/archivechat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/archiveChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to unarchive a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/unarchivechat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/unarchiveChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
This method allows you to pin a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/pinchat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/pinChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
This method allows you to unpin a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/unpinchat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/unpinChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
This method allows you to mute a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/mutechat
Structure of the POST request body:
{
"chatId": "{string}",
"unmuteDate": "{int64}",
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
unmuteDate | No | UNIX timestamp until when to turn off the sound. If not specified disables permanently. |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/muteChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
This method allows you to unmute a dialog (chat) or group.
Resource URL:https://app.api-messenger.com/unmutechat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '71111111111@с.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/unmuteChat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to delete a dialog (chat) or a group.
Resource URL:https://app.api-messenger.com/removechat
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Chat ID in WhatsApp API format: 71111111111@c.us or groups: 79261879777-1513760411@g.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79261879777-1513760411@g.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/removechat?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to delete a message.
Resource URL:https://app.api-messenger.com/deleteMessage
Structure of the POST request body:
{
"messageId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
messageId | Yes | Message ID |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'messageId' => 'true_711111111@c.us_3A0B1B96AD62533009BD'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/deleteMessage?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to create a group and add members to that group.
Resource URL:https://app.api-messenger.com/group
Structure of the POST request body:
{
"name": "{string}",
"chatId": [
"{string}",
...
]
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
name | Yes | Group Name |
chatId | Yes | An array of group members in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"chatId": "{string}",
"inviteLink": "{string}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
chatId | ID of the created group in WhatsApp API format 79261879777-1513760411@g.us . The parameter is output only when status=OK |
inviteLink | Link to invite to the group The parameter is output only when status=OK |
$token = '1xmrd7YHjff5';
$array = array(
'name' => 'Group 1', // group name
'chatId' => array(
'79111111111@c.us' // group member
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/group?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
print_r($data);
The method allows you to set/change the group name.
Resource URL:https://app.api-messenger.com/setSubjectGroup
Structure of the POST request body:
{
"chatId": "{string}",
"subject": "{string}",
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
subject | Yes | Group name. |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79261879777-1513760411@g.us',
'subject' => 'Custom title',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setSubjectGroup?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to set/change the group description.
Resource URL:https://app.api-messenger.com/setDescriptionGroup
Structure of the POST request body:
{
"chatId": "{string}",
"description": "{string}",
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
description | Yes | Group description. |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79261879777-1513760411@g.us',
'description' => 'Desc',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setDescriptionGroup?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
This method allows you to change group settings.
Resource URL:https://app.api-messenger.com/setSettingsGroup
Structure of the POST request body:
{
"chatId": "{string}",
"setMessagesAdminsOnly": "{boolean}",
"setInfoAdminsOnly": "{boolean}",
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
setMessagesAdminsOnly | Yes | true - only admins can send messages to the group.false - messages can be sent to the group all. |
setInfoAdminsOnly | Yes | true - only administrators can change the theme, picture and description.false - change the theme, picture and description can all. |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79261879777-1513760411@g.us',
'setMessagesAdminsOnly' => true
'setInfoAdminsOnly' => false,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setSettingsGroup?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to get out of the group.
Resource URL:https://app.api-messenger.com/leavegroup
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'chatId' => '79261879777-1513760411@g.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/leavegroup?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to add a member to the group.
Resource URL:https://app.api-messenger.com/addgroupparticipant
Structure of the POST request body:
{
"groupId": "{string}",
"participantChatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
groupId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
participantChatId | Yes | ID of the participant to be added in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'groupId' => '79261879777-1513760411@g.us',
'participantChatId' => '71111111111@c.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/addgroupparticipant?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to remove a member from the group.
Resource URL:https://app.api-messenger.com/removegroupparticipant
Structure of the POST request body:
{
"groupId": "{string}",
"participantChatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
groupId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
participantChatId | Yes | The ID of the participant to be deleted in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'groupId' => '79261879777-1513760411@g.us',
'participantChatId' => '71111111111@c.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/removegroupparticipant?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to designate a member as group administrator.
Resource URL:https://app.api-messenger.com/promotegroupparticipant
Structure of the POST request body:
{
"groupId": "{string}",
"participantChatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
groupId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
participantChatId | Yes | Participant ID in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'groupId' => '79261879777-1513760411@g.us',
'participantChatId' => '71111111111@c.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/promotegroupparticipant?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to deprive a member of group administration rights.
Resource URL:https://app.api-messenger.com/demotegroupparticipant
Structure of the POST request body:
{
"groupId": "{string}",
"participantChatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
groupId | Yes | Group ID in WhatsApp API format: 79261879777-1513760411@g.us |
participantChatId | Yes | Participant ID in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'groupId' => '79261879777-1513760411@g.us',
'participantChatId' => '71111111111@c.us'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/demotegroupparticipant?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to activate the "Online" status.
Resource URL:https://app.api-messenger.com/setpresence
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | A message containing a description of the error. The parameter is output only when status=ERROR |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setpresence?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to cancel the online status.
Resource URL:https://app.api-messenger.com/cancelpresence
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/cancelpresence?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to send the status "Typing..." to a chat or group. It will last 25 seconds.
Resource URL:https://app.api-messenger.com/sendstatetyping
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = [ 'chatId' => '79999999999@c.us' ];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendStateTyping?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to send the status "Recording..." to a chat or group. It will last 25 seconds.
Resource URL:https://app.api-messenger.com/sendstaterecording
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = [ 'chatId' => '79999999999@c.us' ];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/sendStateRecording?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you stops typing or recording in chat immediately.
Resource URL:https://app.api-messenger.com/clearstate
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | Whatsapp API chat ID: 71111111111@c.us or group: 79261879777-1513760411@g.us code> |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = [ 'chatId' => '79999999999@c.us' ];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/clearState?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to get information about the connected phone.
Resource URL:https://app.api-messenger.com/info
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}",
"result": {
"id": "{string}",
"number": "{string}",
"img": "{string}"
}
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
result | Result of the query. The parameter is displayed only when status=OK |
Parameters attached to result |
|
id | Individual id |
number | Phone |
img | Link to avatar if present |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/info?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo print_r($data);
The method allows you to get the user's contacts.
Resource URL:https://app.api-messenger.com/contacts
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}",
"contacts": [
{
"chatId": "{string}",
"name": "{string}",
"pushname": "{string}",
"shortName": "{string}",
"isMe": "{boolean}",
"isUser": "{boolean}",
"isGroup": "{boolean}",
"isWAContact": "{boolean}",
"isMyContact": "{boolean}",
"isBlocked": "{boolean}",
"number": "{string}"
},
...
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
contacts | Request result. The parameter is displayed only when status=OK |
Parameters attached to contacts |
|
chatId | Individual identifier |
name | The contact's name, as saved by the current user |
pushname | The name that the contact has configured to be shown publically |
shortName | A shortened version of name |
isMe | Indicates if the contact is the current user's contact |
isUser | Indicates if the contact is a user contact |
isGroup | Indicates if the contact is a group contact |
isWAContact | Indicates if the number is registered on WhatsApp |
isMyContact | Indicates if the number is saved in the current phone's contacts |
isBlocked | Indicates if you have blocked this contact |
number | Contact's phone number |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/contacts?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo print_r($data);
The method allows you to check the existence in Whatsapp of the user with the specified phone number.
Resource URL:https://app.api-messenger.com/checknumber
Parameter | Mandatory | Value |
---|---|---|
id | Yes | User ID in WhatsApp API format: 71111111111@c.us |
The output data structure is shown below.
{
"status": "{enum}",
"result": {
"canReceiveMessage": "{int}",
"id": "{string}",
"isBusiness": "{int}",
"numberExists": "{int}",
"img": "{string}",
"status": "{int}"
}
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
result | The result of the request. The parameter is output only when status=OK |
message | A message containing a description of the error. The parameter is output only when status=ERROR |
Parameters embedded in result |
|
canReceiveMessage | The ability to receive an incoming message. Possible values:
The parameter is only displayed if status=OK |
id | ID passed in the GET parameter The parameter is output only when status=OK |
isBusiness | Flag of the Business account. Possible values:
The parameter is only displayed if status=OK |
status | WhatsApp response code. The parameter is output only when status=OK |
numberExists | Existence of a number in WhatsApp Possible values:
The parameter is only displayed if status=200 |
img | URL to WhatsApp contact avatar The parameter is only displayed if status=200 |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/checknumber?id=79999999999@c.us&token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'] . ': ' . $data['message'];
The method allows you to set an avatar for a profile or group
Resource URL:https://app.api-messenger.com/setpictureurl
Structure of the POST request body:
{
"chatId": "{string}",
"url": "{string}",
"filename": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | If you set your own avatar, specify result.id from the /POST info method in the format 71111111111@c.us , if the group has: 79261879777-1513760411@g.us |
url | Yes | Image link |
filename | Yes | File name with extension . |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. Parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = array(
'url' => 'https://img1.goodfon.ru/wallpaper/nbig/a/69/kartinka-3d-dikaya-koshka.jpg',
'filename' => 'filename_1.jpg',
'chatId' => '79999999999@c.us',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setPictureUrl?token=' . $token);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to remove an avatar from a profile or group
Resource URL:https://app.api-messenger.com/deletepicture
Structure of the POST request body:
{
"chatId": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
chatId | Yes | If we delete our own avatar, specify result.id from the /POST info method in the format 71111111111@c.us or groups: 79261879777-1513760411@g.us |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Message containing a description of the error. The parameter is displayed only when status=ERROR |
$token = '1xmrd7YHjff5';
$array = [ 'chatId' => '79999999999@c.us' ];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/deletePicture?token=' . $token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The method allows you to get the Webhook installed.
Resource URL:https://app.api-messenger.com/webhook
The output data structure is shown below.
{
"status": "{enum}",
"webhook": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
webhook | Webhook installed or not installed. |
$token = '1xmrd7YHjff5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/webhook?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
echo !empty($data['webhook']) ? $data['webhook'] : 'no webhook';
} else
echo $data['status'];
The method allows you to set the URL to get the webhook.
Resource URL:https://app.api-messenger.com/setwebhook
Structure of the POST request body:
{
"webhook": "{string}"
}
The following parameters are passed in the body of the POST request:
Parameter | Mandatory | Value |
---|---|---|
webhook | Yes | URL to get the webhook |
The output data structure is shown below.
{
"status": "{enum}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
$token = '1xmrd7YHjff5';
$array = array(
'webhook' => 'http://your.site/incoming_message.php'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/setwebhook?token=' . $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
echo $data['status'];
The system can send event notifications (incoming messages, status of sent messages, instance state changes). To send notifications to external systems, an HTTP address must be configured in your personal account. The order of receiving notifications on the side of the external system is not defined. You must take this into account when processing events based on the timestamp in the field timestamp
.
type=stateInstance
{
"type": "stateInstance",
"status": "{enum}",
"token": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Instance Status. Possible values:
|
token | Token |
type=messageOrAsk
{
"type": "messageOrAsk",
"messages":
[
{
"id": "{string}",
"token": "{string}",
"body": "{string}",
"chatId": "{string}",
"formattedTitle": "{string}",
"fromMe": {boolean},
"imgURL": "{string}",
"notifyName": "{string}",
"sender": "{string}",
"timestamp": {int64},
"vCards": {array},
"location": {object},
"selectedRowId": "{string}",
"selectedButtonId": "{string}",
"api": {boolean},
"customParametr": "{string}",
"type": "{enum}"
},
...
],
"ask":
[
{
"status": "1",
"chatId": "11111111111@c.us",
"message": {object}
},
...
]
}
Description of parameters:
Parameter | Value |
---|---|
Parameters attached to messages
| |
id | Individual message id |
token | Token |
body | If the value of the parameter type is chat, the text of the message is displayed, otherwise a link to download the file is displayed.For example: /file/63f58d2e62d98ff0ab305026 The finished link will look like https://app.api-messenger.com/file/63f58d2e62d98ff0ab305026?token=xxxx |
chatId | Individual chat identifier |
formattedTitle | Sender name |
fromMe | Possible values:
|
imgURL | URL to the user's avatar The parameter is only displayed when fromMe=false |
notifyName | WhatsApp username The parameter is only displayed when fromMe=false |
sender | Author ID |
timestamp | UNIX time stamp in seconds |
selectedRowId | ID of the selected item that was passed via the POST method /sendList The parameter is displayed only when type=list_response |
selectedButtonId | ID of the selected button that was passed via the POST method /sendButton The parameter is displayed only when type=buttons_response |
api | API send flag. Accepts true/false values |
customParametr | Custom parametr. |
type | Message type. Main possible values:
|
Parameters attached to ask
| |
status | Message delivery status. Possible values:
|
chatId | Individual chat id |
message | Message object |
// First set the webhook according to
// documentation for example at http://your.site/incoming_message.php
// Decoding the JSON received via webhook
$data = json_decode(file_get_contents('php://input'), true);
foreach($data['messages'] as $message){ // Print each message
// Here already process each message:
// Add to database or reply immediately
}
Adds a new instance to the user's account (money is debited from the balance for the month in accordance with the tariff scale)
Resource URL:https://app.api-messenger.com/account/add
Parameter | Mandatory | Value |
---|---|---|
key | Yes | The key for working with the partner API. Currently, it can only be obtained through technical support For testing, use the key demo |
name | No | Name instance |
The output data structure is shown below.
{
"status": "{enum}",
"token": "{string}",
"before": "{string}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
token | Token for further work with the instance |
before | Last date before which the instance (token) will work. The instance is automatically renewed 3 days before the date if there is money on the balance. In the format YYYY-mm-dd |
message | Parameter is displayed only in case of error |
$key = 'demo';
$name = 'Custom name';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/account/add?key=' . $key.'&name='.$name);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
echo $data['token'];
} else {
echo 'ERROR: ' . $data['message'];
}
Deleting an instance from the user's account (money is being returned to the balance for the remaining days)
Resource URL:https://app.api-messenger.com/account/delete
Parameter | Mandatory | Value |
---|---|---|
key | Yes | The key for working with the partner API. Currently, it can only be obtained through technical support For testing, use the key demo |
token | Yes | Instance token to delete |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}"
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Parameter is displayed only in case of error |
$key = 'demo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/account/delete?token=ttttt&key=' . $key);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
echo 'OK';
} else {
echo 'ERROR: ' . $data['message'];
}
Getting all instances from the user's account
Resource URL:https://app.api-messenger.com/account/list
Parameter | Mandatory | Value |
---|---|---|
key | Yes | The key for working with the partner API. Currently, it can only be obtained through technical support For testing, use the key demo |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}",
"result": [
{
"name": "{string}",
"token": "{string}",
"before": "{string}",
},
]
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | Parameter is displayed only in case of error |
Parameters attached to result
| |
name | Name of the instance specified in the account |
token | Instance token |
before | Last date before which the instance (token) will work. The instance is automatically renewed 3 days before the date if there is money on the balance. In the format YYYY-mm-dd |
$key = 'demo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/account/list?key=' . $key);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
foreach ($data['result'] as $v) {
echo 'Name: ' . $v['name'] . ', Token: ' . $v['token'] . ', Before: '. $v['before'];
}
} else {
echo 'ERROR: ' . $data['message'];
}
Get the total account balance. Replenishment occurs through technical support upon receipt of a key to work with the partner API.
Resource URL:https://app.api-messenger.com/account/balance
Parameter | Mandatory | Value |
---|---|---|
key | Yes | The key for working with the partner API. Currently, it can only be obtained through technical support For testing, use the key demo |
The output data structure is shown below.
{
"status": "{enum}",
"message": "{string}",
"balance": "{int32}",
}
Description of parameters:
Parameter | Value |
---|---|
status | Response Status. Possible values:
|
message | The parameter is displayed only in case of an error |
balance | Account balance |
$key = 'demo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.api-messenger.com/account/balance?key=' . $key);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch); // Let's send a request
curl_close($ch);
$data = json_decode($result, true); // Parse the received JSON into an array
if ($data['status'] == 'OK') {
echo 'Balance:' . $data['balance'];
} else {
echo 'ERROR: ' . $data['message'];
}