Get campaign analytics
curl --request GET \
--url https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics"
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics', 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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics",
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics"
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics")
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",
"message": "<string>",
"data": {
"campaignId": 123,
"appUrl": "<string>",
"campaignName": "<string>",
"isActive": true,
"isPaused": true,
"isArchived": true,
"overview": {
"totalContacts": 123,
"started": 123,
"contacted": 123,
"replied": 123,
"positive": 123
},
"progressByChannelList": {
"all": {
"totalLeads": 123,
"started": 123,
"contacted": 123,
"replied": 123,
"tagged": 123,
"positive": 123
},
"linkedin": {
"totalLeads": 123,
"engaged": 123,
"invited": 123,
"sentConnections": 123,
"alreadySentConnections": 123,
"accepted": 123,
"acceptedConnections": 123,
"contacted": 123,
"viewed": 123,
"followed": 123,
"replied": 123,
"tagged": 123,
"positive": 123
},
"email": {
"totalLeads": 123,
"sent": 123,
"viewed": 123,
"clicked": 123,
"replied": 123,
"bounced": 123,
"tagged": 123,
"positive": 123
},
"whatsapp": {
"totalLeads": 123,
"sent": 123,
"replied": 123,
"tagged": 123
},
"tasks": {
"pending": 123,
"completed": 123
}
},
"totalContacts": 123,
"contactRate": 123,
"replyRate": 123,
"daily": [
{
"date": "2023-11-07T05:31:56Z",
"contactsAdded": 123,
"connectionRequestsSent": 123,
"newMessagesSent": 123,
"queuedMessagesDueToLimit": 123
}
]
}
}Campaigns
Get campaign analytics
Retrieve overall and daily analytics for a specific campaign.
Responses include direct Enginy app URLs when available. Responses include an appUrl that opens the campaign overview in Enginy. MCP agents should return those URLs to users whenever they are present in the response.
Required scope:
ANALYTICS_READRate limit: 100 requests per minute
GET
/
v1
/
campaign
/
{campaignId}
/
analytics
Get campaign analytics
curl --request GET \
--url https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics"
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics', 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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics",
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics"
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://openapi.enginy.ai/v1/campaign/{campaignId}/analytics")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/campaign/{campaignId}/analytics")
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",
"message": "<string>",
"data": {
"campaignId": 123,
"appUrl": "<string>",
"campaignName": "<string>",
"isActive": true,
"isPaused": true,
"isArchived": true,
"overview": {
"totalContacts": 123,
"started": 123,
"contacted": 123,
"replied": 123,
"positive": 123
},
"progressByChannelList": {
"all": {
"totalLeads": 123,
"started": 123,
"contacted": 123,
"replied": 123,
"tagged": 123,
"positive": 123
},
"linkedin": {
"totalLeads": 123,
"engaged": 123,
"invited": 123,
"sentConnections": 123,
"alreadySentConnections": 123,
"accepted": 123,
"acceptedConnections": 123,
"contacted": 123,
"viewed": 123,
"followed": 123,
"replied": 123,
"tagged": 123,
"positive": 123
},
"email": {
"totalLeads": 123,
"sent": 123,
"viewed": 123,
"clicked": 123,
"replied": 123,
"bounced": 123,
"tagged": 123,
"positive": 123
},
"whatsapp": {
"totalLeads": 123,
"sent": 123,
"replied": 123,
"tagged": 123
},
"tasks": {
"pending": 123,
"completed": 123
}
},
"totalContacts": 123,
"contactRate": 123,
"replyRate": 123,
"daily": [
{
"date": "2023-11-07T05:31:56Z",
"contactsAdded": 123,
"connectionRequestsSent": 123,
"newMessagesSent": 123,
"queuedMessagesDueToLimit": 123
}
]
}
}Authorizations
Path Parameters
The campaign ID to retrieve analytics for.
Query Parameters
Optional start date in ISO 8601 format. Defaults to the last 30 days.
Optional end date in ISO 8601 format. Defaults to now.
⌘I