Get Citations for Domain
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls"
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/domains/{domain}/urls', 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/domains/{domain}/urls",
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/domains/{domain}/urls"
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/domains/{domain}/urls")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls")
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{
"urls": [
{
"urlHash": "<string>",
"url": "<string>",
"title": "<string>",
"domain": "<string>",
"citations": 123,
"citationsDelta": 123,
"runsCount": 123,
"avgRank": 123,
"category": "<string>",
"platforms": [
"<string>"
]
}
]
}Analytics
Get Citations for Domain
Retrieve individual cited URLs for a specific domain.
GET
/
ai-analytics-service
/
api
/
public
/
v1
/
analytics
/
citations
/
domains
/
{domain}
/
urls
Get Citations for Domain
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls"
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/domains/{domain}/urls', 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/domains/{domain}/urls",
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/domains/{domain}/urls"
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/domains/{domain}/urls")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/{domain}/urls")
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{
"urls": [
{
"urlHash": "<string>",
"url": "<string>",
"title": "<string>",
"domain": "<string>",
"citations": 123,
"citationsDelta": 123,
"runsCount": 123,
"avgRank": 123,
"category": "<string>",
"platforms": [
"<string>"
]
}
]
}Returns citation data for URLs belonging to a specific domain. Use this to drill into which pages from a domain are being cited by AI platforms.
Parameters
string
required
Domain name to retrieve citations for (e.g.,
example.com).string
required
Bearer token. Format:
Bearer slat_<your-token>.integer
Number of days for the analysis window.
string
Start of date range. ISO 8601 format.
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.
string
Filter by citation category (e.g.,
OWNED, EARNED, COMPETITOR).string
Search URLs by text. Case-insensitive partial match.
string
Filter by ISO country code.
integer
Maximum number of results. Default:
20. Maximum: 100.integer
Number of results to skip. Default:
0.number
Filter by a single prompt ID.
number[]
Filter by multiple prompt IDs. Maximum 10 values.
Response
Returns200 OK with an array of citation URL objects for the domain.
object[]
required
Array of citation URL objects.
Show citation URL object
Show citation URL object
string
required
Unique hash for the URL.
string
required
Full URL.
string
Page title.
string
required
Domain name.
integer
required
Total citation count.
integer
required
Change from previous period.
integer
required
Number of query runs that cited the URL.
number
required
Average citation rank.
string
required
Citation category.
string[]
required
Platforms that cited the URL.
Example
curl -s "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/example.com/urls?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/domains/example.com/urls",
headers={
"Authorization": "Bearer slat_YOUR_TOKEN",
},
params={
"dateRange": 30,
"topicId": 42,
},
)
urls = response.json()
for u in urls:
print(f"{u['url']}: {u['citations']} citations")
const params = new URLSearchParams({
dateRange: "30",
topicId: "42",
});
const response = await fetch(
`https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/citations/domains/example.com/urls?${params}`,
{
headers: {
"Authorization": "Bearer slat_YOUR_TOKEN",
},
}
);
const urls = await response.json();
console.log(urls.length, "URLs for domain");
Response
[
{
"urlHash": "a1b2c3d4",
"url": "https://example.com/pm-tools-comparison",
"title": "Best Project Management Tools 2026",
"domain": "example.com",
"citations": 25,
"citationsDelta": 3,
"runsCount": 18,
"avgRank": 1.8,
"category": "OWNED",
"platforms": ["CHATGPT", "PERPLEXITY", "GEMINI"]
},
{
"urlHash": "e5f6g7h8",
"url": "https://example.com/blog/remote-work-tips",
"title": "Remote Work Best Practices",
"domain": "example.com",
"citations": 12,
"citationsDelta": 1,
"runsCount": 10,
"avgRank": 3.2,
"category": "OWNED",
"platforms": ["CHATGPT"]
}
]
Status codes
| Status | Description |
|---|---|
200 | Domain URLs 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 all domains.
- Get Citations Summary — View citation totals and categories.
Was this page helpful?