curl --request GET \
--url https://api.goextrovert.com/client/v2/dashboard/direct-messages \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.goextrovert.com/client/v2/dashboard/direct-messages"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.goextrovert.com/client/v2/dashboard/direct-messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goextrovert.com/client/v2/dashboard/direct-messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.goextrovert.com/client/v2/dashboard/direct-messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.goextrovert.com/client/v2/dashboard/direct-messages")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/dashboard/direct-messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"sentDmCount": 0,
"dailyStatisticsList": [
{
"date": "<string>",
"pendingDmCount": 0,
"sentDmCount": 0
}
],
"period": {
"startDate": "<string>",
"endDate": "<string>",
"timezone": "<string>",
"daysCount": 0
},
"replyRate": {
"replyRate": 123,
"conversationsWithSentMessage": 0,
"repliedConversationsCount": 0
}
},
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Get Dashboard Direct Message Statistics
Returns the Direct Messages section of the Dashboard for a period: direct messages sent, the daily sent and pending messages, and the reply rate. The period is startDate–endDate, both calendar days included, in timezone: 1 to 31 days, and endDate is not later than today in that timezone. A period outside these rules or an unknown timezone is refused with 400. To get the same numbers as the Extrovert Dashboard, pass the timezone of the user’s profile (the timezone field of the user in the Team Members list). Pending counts the actions waiting right now (not yet published or sent) whose date lies in the period; it is not the historical size of the queue on that day. The reply rate is All time: it covers every conversation ever messaged and does not depend on the period. Both id filters are optional: an omitted or empty filter does not narrow that dimension, and without filters every campaign of the caller’s scope is counted. campaignsIds come from the Campaign list and ownersIds from the Team Members list; when both are given they narrow the scope together (AND), and an id outside the caller’s scope is refused with 403.
curl --request GET \
--url https://api.goextrovert.com/client/v2/dashboard/direct-messages \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.goextrovert.com/client/v2/dashboard/direct-messages"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.goextrovert.com/client/v2/dashboard/direct-messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goextrovert.com/client/v2/dashboard/direct-messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.goextrovert.com/client/v2/dashboard/direct-messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.goextrovert.com/client/v2/dashboard/direct-messages")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/dashboard/direct-messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"sentDmCount": 0,
"dailyStatisticsList": [
{
"date": "<string>",
"pendingDmCount": 0,
"sentDmCount": 0
}
],
"period": {
"startDate": "<string>",
"endDate": "<string>",
"timezone": "<string>",
"daysCount": 0
},
"replyRate": {
"replyRate": 123,
"conversationsWithSentMessage": 0,
"repliedConversationsCount": 0
}
},
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Authorizations
API Key for authentication
Query Parameters
Optional campaign-owner user IDs in the accessible workspace scope. Omit or pass [] for no owner filter; combined with campaignsIds using AND.
Optional campaign IDs in the accessible workspace scope. Omit or pass [] for no campaign filter; combined with ownersIds using AND.
First calendar day of the period, included, YYYY-MM-DD.
^\d{4}-\d{2}-\d{2}$Last calendar day of the period, included, YYYY-MM-DD. Not later than today in timezone.
^\d{4}-\d{2}-\d{2}$Required IANA timezone the calendar days are taken in. Use the user's profile timezone to match the Dashboard.
1