Get Citations Summary
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary', 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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"totals": {
"totalCitations": 123,
"totalCitationsDelta": 123,
"uniqueUrls": 123,
"uniqueUrlsDelta": 123,
"runsWithCitations": 123,
"runsWithCitationsDelta": 123
},
"categories": [
{
"category": "<string>",
"label": "<string>",
"count": 123,
"countDelta": 123,
"pct": 123
}
],
"trend": [
{
"date": "<string>",
"citations": 123,
"uniqueUrls": 123,
"ownedCitations": 123,
"mentionedCitations": 123,
"competitorCitations": 123,
"socialCitations": 123,
"otherCitations": 123,
"notMentionedCitations": 123
}
]
}Analytics
Get Citations Summary
Retrieve citation totals, category breakdown, and trend data.
GET
/
ai-analytics-service
/
api
/
public
/
v1
/
analytics
/
citations
/
summary
Get Citations Summary
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary', 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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"totals": {
"totalCitations": 123,
"totalCitationsDelta": 123,
"uniqueUrls": 123,
"uniqueUrlsDelta": 123,
"runsWithCitations": 123,
"runsWithCitationsDelta": 123
},
"categories": [
{
"category": "<string>",
"label": "<string>",
"count": 123,
"countDelta": 123,
"pct": 123
}
],
"trend": [
{
"date": "<string>",
"citations": 123,
"uniqueUrls": 123,
"ownedCitations": 123,
"mentionedCitations": 123,
"competitorCitations": 123,
"socialCitations": 123,
"otherCitations": 123,
"notMentionedCitations": 123
}
]
}Returns a summary of citations referenced by AI platforms in their responses. Includes total counts with period-over-period deltas, a breakdown by category (owned, earned, competitor, etc.), and a daily citation trend.
Parameters
string
required
Bearer token. Format:
Bearer slat_<your-token>.integer
Number of days for the analysis window (e.g.,
7, 30, 90).string
Start of date range. ISO 8601 format (e.g.,
2026-02-01T00:00:00Z).string
End of date range. ISO 8601 format.
number
Brand ID. Optional — if omitted, uses the workspace’s default brand.
number
Filter by topic ID.
string[]
Filter by one or more platforms:
CHATGPT, PERPLEXITY, GOOGLE_AI_OVERVIEW, GOOGLE_AI_MODE, GEMINI, CLAUDE.string
Filter by ISO country code for region.
number
Filter by a single prompt ID.
number[]
Filter by multiple prompt IDs. Maximum 10 values.
Response
Returns200 OK with the citations summary.
object
required
Aggregate citation counts with period-over-period deltas.
object[]
required
object[]
required
Daily citation trend.
Show trend point
Show trend point
string
required
Date. Format:
YYYY-MM-DD.integer
required
Total citations on the date.
integer
required
Unique URLs cited.
integer
Owned category citations.
integer
Mentioned category citations.
integer
Competitor category citations.
integer
Social category citations.
integer
Other category citations.
integer
Not-mentioned category citations.
Example
curl -s "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary?dateRange=30&topicId=42" \
-H "Authorization: Bearer slat_YOUR_TOKEN"
import requests
response = requests.get(
"https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary",
headers={
"Authorization": "Bearer slat_YOUR_TOKEN",
},
params={
"dateRange": 30,
"topicId": 42,
},
)
summary = response.json()
print(f"Total citations: {summary['totals']['totalCitations']}")
for cat in summary["categories"]:
print(f" {cat['label']}: {cat['count']} ({cat['pct']}%)")
const params = new URLSearchParams({
dateRange: "30",
topicId: "42",
});
const response = await fetch(
`https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/summary?${params}`,
{
headers: {
"Authorization": "Bearer slat_YOUR_TOKEN",
},
}
);
const summary = await response.json();
console.log("Total:", summary.totals.totalCitations);
Response
{
"totals": {
"totalCitations": 450,
"totalCitationsDelta": 35,
"uniqueUrls": 120,
"uniqueUrlsDelta": 10,
"runsWithCitations": 180,
"runsWithCitationsDelta": 15
},
"categories": [
{ "category": "OWNED", "label": "Owned", "count": 85, "countDelta": 8, "pct": 18.9 },
{ "category": "EARNED", "label": "Earned", "count": 150, "countDelta": 12, "pct": 33.3 },
{ "category": "COMPETITOR", "label": "Competitor", "count": 100, "countDelta": 5, "pct": 22.2 },
{ "category": "OTHER", "label": "Other", "count": 115, "countDelta": 10, "pct": 25.6 }
],
"trend": [
{
"date": "2026-02-10",
"citations": 15,
"uniqueUrls": 8,
"ownedCitations": 3,
"mentionedCitations": 5,
"competitorCitations": 4,
"socialCitations": 1,
"otherCitations": 2,
"notMentionedCitations": 0
}
]
}
Status codes
| Status | Description |
|---|---|
200 | Citations summary returned. |
400 | promptIds exceeds maximum of 10 values. |
401 | Missing or invalid Bearer token. See Authentication. |
500 | Internal server error. |
What’s next
- Get Citations by Domain — View citations grouped by domain.
- Get Citations by URL — View individual cited URLs.
Was this page helpful?