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,
"runsWithCitations": 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,
"runsWithCitations": 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, mentioned, competitor, and so on), 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). Range: 1–365. Default: 30.string
Start of date range. RFC 3339 timestamp (e.g.,
2026-02-01T00:00:00Z). Send together with to.string
End of date range. RFC 3339 timestamp. Send together with
from. Data through the end of this date (UTC) is included. The range can’t exceed 366 days.number
Brand ID. If omitted, uses the brand of the workspace’s most recently updated prompt.
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 500 values.
Response
Returns200 OK with the citations summary.
object
required
Aggregate citation counts with period-over-period deltas.
object[]
required
Citation breakdown by category, largest
count first.Show category stat
Show category stat
string
required
Category key. Values include
OWNED, MENTIONED, COMPETITOR, SOCIAL, NOT_MENTIONED, and OTHER.string
required
Display label for the category.
integer
required
Citation count in the category.
integer
required
Change from previous period.
number
required
Percentage of total citations. The same value is also returned as
percentage.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
required
Query runs that produced citations on the date.
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": "MENTIONED", "label": "Mentioned", "count": 150, "countDelta": 12, "pct": 33.3, "percentage": 33.3 },
{ "category": "OTHER", "label": "Other", "count": 115, "countDelta": 10, "pct": 25.6, "percentage": 25.6 },
{ "category": "COMPETITOR", "label": "Competitor", "count": 100, "countDelta": 5, "pct": 22.2, "percentage": 22.2 },
{ "category": "OWNED", "label": "Owned", "count": 85, "countDelta": 8, "pct": 18.9, "percentage": 18.9 }
],
"trend": [
{
"date": "2026-02-10",
"citations": 15,
"uniqueUrls": 8,
"runsWithCitations": 6,
"ownedCitations": 3,
"mentionedCitations": 5,
"competitorCitations": 4,
"socialCitations": 1,
"otherCitations": 2,
"notMentionedCitations": 0
}
]
}
Status codes
| Status | Description |
|---|---|
200 | Citations summary returned. |
400 | A filter is invalid, such as more than 500 promptIds, an unsupported platform, dateRange outside 1–365, or an invalid from/to range. |
401 | Missing or invalid Bearer token. See Authentication. |
500 | Internal server error. |
503 | The analytics store is temporarily unavailable (analytics store unavailable). |
What’s next
- Get Citations by Domain — View citations grouped by domain.
- Get Citations by URL — View individual cited URLs.
Was this page helpful?