List Campaigns (Analytics)
curl --request GET \
--url https://api-ai.textyess.com/analytics/campaigns \
--header 'x-auth-token: <api-key>'import requests
url = "https://api-ai.textyess.com/analytics/campaigns"
headers = {"x-auth-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-auth-token': '<api-key>'}};
fetch('https://api-ai.textyess.com/analytics/campaigns', 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-ai.textyess.com/analytics/campaigns",
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-auth-token: <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-ai.textyess.com/analytics/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-auth-token", "<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-ai.textyess.com/analytics/campaigns")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-ai.textyess.com/analytics/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"campaign": {
"_id": "507f1f77bcf86cd799439011",
"name": "Summer Sale",
"createdAt": "2024-01-10T08:00:00.000Z"
},
"total_messages": 5000,
"cost": 25000,
"revenue": 125000,
"orders_number": 120,
"campaign_conversion_rate": 2.4,
"average_cart": 1041.67,
"roas": 5,
"open_rate": 65.2,
"campaign_type": "campaigns",
"uniqueConversations": 4800
}
],
"pagination": {
"total": 42,
"perPage": 10,
"page": 0
}
}
{
"message": "Unauthorized"
}
Analytics API
List Campaigns (Analytics)
Get a paginated list of campaigns with analytics metrics
GET
/
analytics
/
campaigns
List Campaigns (Analytics)
curl --request GET \
--url https://api-ai.textyess.com/analytics/campaigns \
--header 'x-auth-token: <api-key>'import requests
url = "https://api-ai.textyess.com/analytics/campaigns"
headers = {"x-auth-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-auth-token': '<api-key>'}};
fetch('https://api-ai.textyess.com/analytics/campaigns', 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-ai.textyess.com/analytics/campaigns",
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-auth-token: <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-ai.textyess.com/analytics/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-auth-token", "<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-ai.textyess.com/analytics/campaigns")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-ai.textyess.com/analytics/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"campaign": {
"_id": "507f1f77bcf86cd799439011",
"name": "Summer Sale",
"createdAt": "2024-01-10T08:00:00.000Z"
},
"total_messages": 5000,
"cost": 25000,
"revenue": 125000,
"orders_number": 120,
"campaign_conversion_rate": 2.4,
"average_cart": 1041.67,
"roas": 5,
"open_rate": 65.2,
"campaign_type": "campaigns",
"uniqueConversations": 4800
}
],
"pagination": {
"total": 42,
"perPage": 10,
"page": 0
}
}
{
"message": "Unauthorized"
}
Overview
The list campaigns endpoint returns a paginated list of campaigns with aggregated analytics (messages, cost, revenue, orders, conversion rate, ROAS, open rate) within an optional date range. Results can be filtered by type. Results are ordered by campaign creation date (newest first).Authentication
This endpoint requires a valid JWT token in thex-auth-token header. You can find your token in the Developers section:
x-auth-token: your_jwt_token
Query Parameters
Type of assets:
campaigns or outbound-automations. When outbound-automations, includes flows and outbound automations.Response
The response has two top-level keys:data (array of campaign analytics) and pagination.
Each item in data includes:
Pagination object: total (total count), perPage, page.
{
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"campaign": {
"_id": "507f1f77bcf86cd799439011",
"name": "Summer Sale",
"createdAt": "2024-01-10T08:00:00.000Z"
},
"total_messages": 5000,
"cost": 25000,
"revenue": 125000,
"orders_number": 120,
"campaign_conversion_rate": 2.4,
"average_cart": 1041.67,
"roas": 5,
"open_rate": 65.2,
"campaign_type": "campaigns",
"uniqueConversations": 4800
}
],
"pagination": {
"total": 42,
"perPage": 10,
"page": 0
}
}
{
"message": "Unauthorized"
}