Get Visibility Comparison
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison"
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/visibility-comparison', 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/visibility-comparison",
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/visibility-comparison"
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/visibility-comparison")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison")
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{
"name": "<string>",
"score": 123,
"color": "<string>",
"type": "<string>",
"rank": 123,
"change": "<string>"
}Analytics
Get Visibility Comparison
Compare visibility scores and rankings between your brand and competitors.
GET
/
ai-analytics-service
/
api
/
public
/
v1
/
analytics
/
visibility-comparison
Get Visibility Comparison
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison"
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/visibility-comparison', 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/visibility-comparison",
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/visibility-comparison"
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/visibility-comparison")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison")
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{
"name": "<string>",
"score": 123,
"color": "<string>",
"type": "<string>",
"rank": 123,
"change": "<string>"
}Returns a ranked comparison of visibility scores for your brand and competitors. Use this to understand where your brand stands relative to the competition in AI search results.
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.number
Filter by topic ID.
string[]
Filter by one or more platforms:
CHATGPT, PERPLEXITY, GOOGLE_AI_OVERVIEW, GOOGLE_AI_MODE, GEMINI, CLAUDE.Response
Returns200 OK with a JSON array of visibility comparison objects, sorted by current score, highest first. Entities that appear only in the previous period are included with a score of 0. Each object has these fields:
string
required
Brand or competitor name.
integer
required
Visibility score (0–100) for the current period, rounded to a whole number.
string
required
Display color for the entity (hex code). Assigned by list position from a fixed six-color palette.
string
required
One of:
brand, competitor, other.integer
required
The entity’s average position in AI responses for the current period, rounded to a whole number.
0 if the entity wasn’t mentioned in the current period.string
required
Change in
score compared to the previous period of equal length, as a signed string (e.g., +5, -2).Example
curl -s "https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison?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/visibility-comparison",
headers={
"Authorization": "Bearer slat_YOUR_TOKEN",
},
params={
"dateRange": 30,
"topicId": 42,
},
)
data = response.json()
for item in data:
print(f"#{item['rank']} {item['name']}: {item['score']} ({item['change']})")
const params = new URLSearchParams({
dateRange: "30",
topicId: "42",
});
const response = await fetch(
`https://api.slatehq.ai/ai-analytics-service/api/public/v1/analytics/visibility-comparison?${params}`,
{
headers: {
"Authorization": "Bearer slat_YOUR_TOKEN",
},
}
);
const data = await response.json();
console.log(data);
Response
[
{
"name": "MyBrand",
"score": 85,
"color": "#4F46E5",
"type": "brand",
"rank": 1,
"change": "+5"
},
{
"name": "CompetitorA",
"score": 70,
"color": "#0EA5E9",
"type": "competitor",
"rank": 2,
"change": "-2"
},
{
"name": "CompetitorB",
"score": 55,
"color": "#10B981",
"type": "competitor",
"rank": 3,
"change": "+1"
}
]
Status codes
| Status | Description |
|---|---|
200 | Visibility comparison returned. |
400 | A filter is invalid, such as an unsupported platform or dateRange outside 1–365. |
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 Share of Voice — Compare share of voice percentages.
- Get Citations — View citation sources in AI responses.
Was this page helpful?