Get Keyword Mention Details
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions"
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions', 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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions",
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions"
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions")
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{
"mentions": [
{
"mentionId": "<string>",
"promptId": 123,
"promptText": "<string>",
"sentimentLabel": "<string>",
"topicId": 123,
"topicName": "<string>",
"platform": "<string>",
"createdAt": "<string>",
"evidenceText": "<string>",
"charStart": 123,
"charEnd": 123,
"runId": 123,
"brandId": 123,
"mentionedBrandName": "<string>",
"themeId": "<string>",
"keywordId": "<string>",
"keywordLabel": "<string>",
"sentimentScore": 123,
"confidence": 123
}
]
}Sentiment
Get Keyword Mention Details
Retrieve individual mention details for a specific keyword within a theme.
GET
/
ai-analytics-service
/
api
/
public
/
v1
/
sentiment
/
theme
/
{themeId}
/
keyword
/
{keywordId}
/
mentions
Get Keyword Mention Details
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions"
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions', 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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions",
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions"
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/sentiment/theme/{themeId}/keyword/{keywordId}/mentions")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/{themeId}/keyword/{keywordId}/mentions")
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{
"mentions": [
{
"mentionId": "<string>",
"promptId": 123,
"promptText": "<string>",
"sentimentLabel": "<string>",
"topicId": 123,
"topicName": "<string>",
"platform": "<string>",
"createdAt": "<string>",
"evidenceText": "<string>",
"charStart": 123,
"charEnd": 123,
"runId": 123,
"brandId": 123,
"mentionedBrandName": "<string>",
"themeId": "<string>",
"keywordId": "<string>",
"keywordLabel": "<string>",
"sentimentScore": 123,
"confidence": 123
}
]
}Returns individual mention records for a specific keyword within a theme. Each mention includes the prompt text, AI platform, sentiment label, evidence text, and confidence score.
Parameters
string
required
Unique identifier for the theme.
string
required
Unique identifier for the keyword.
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 (e.g.,
2026-02-01T00:00:00Z).string
End of date range. ISO 8601 format.
number
Filter by topic ID.
number
Filter by brand ID.
string
Filter by brand name.
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.
string
Filter by sentiment label (e.g.,
positive, neutral, negative).integer
Maximum number of results. Default:
50.integer
Number of results to skip. Default:
0.integer
Page number. When provided, overrides
limit/offset with page-based pagination.integer
Page size. Used with
page. Maximum: 200.number
Filter by a single prompt ID.
number[]
Filter by multiple prompt IDs. Maximum 10 values.
Response
Returns200 OK with an array of mention detail objects.
object[]
required
Array of mention detail objects.
Show mention detail object
Show mention detail object
string
required
Unique identifier for the mention.
number
required
Associated prompt ID.
string
required
The prompt text that generated the mention.
string
required
Sentiment classification (e.g.,
positive, neutral, negative).number
required
Associated topic ID.
string
required
Topic name.
string
required
AI platform that produced the mention.
string
required
Timestamp of the mention. ISO 8601 format.
string
Excerpt from the AI response containing the mention.
integer
Start character position of the mention in the response.
integer
End character position of the mention in the response.
number
required
Associated query run ID.
number
Brand ID referenced in the mention.
string
Name of the brand mentioned.
string
required
Theme ID.
string
required
Keyword ID.
string
required
Keyword text.
number
Numeric sentiment score.
number
Confidence score for the sentiment classification (0–1).
Example
curl -s "https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/theme-abc-123/keyword/kw-001/mentions?dateRange=30&limit=10" \
-H "Authorization: Bearer slat_YOUR_TOKEN"
import requests
response = requests.get(
"https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/theme-abc-123/keyword/kw-001/mentions",
headers={
"Authorization": "Bearer slat_YOUR_TOKEN",
},
params={
"dateRange": 30,
"limit": 10,
},
)
mentions = response.json()
for m in mentions:
print(m["sentimentLabel"], m["platform"], m["evidenceText"][:80])
const params = new URLSearchParams({
dateRange: "30",
limit: "10",
});
const response = await fetch(
`https://api.slatehq.ai/ai-analytics-service/api/public/v1/sentiment/theme/theme-abc-123/keyword/kw-001/mentions?${params}`,
{
headers: {
"Authorization": "Bearer slat_YOUR_TOKEN",
},
}
);
const mentions = await response.json();
console.log(mentions.length, "mentions found");
Response
[
{
"mentionId": "m-2048-001",
"promptId": 156,
"promptText": "What is the best project management tool for remote teams?",
"sentimentLabel": "positive",
"topicId": 42,
"topicName": "Project Management Tools",
"platform": "CHATGPT",
"createdAt": "2026-02-11T14:31:15Z",
"evidenceText": "The platform is praised for its ease of use and intuitive interface.",
"charStart": 245,
"charEnd": 312,
"runId": 2048,
"brandId": 5,
"mentionedBrandName": "MyBrand",
"themeId": "theme-abc-123",
"keywordId": "kw-001",
"keywordLabel": "ease of use",
"sentimentScore": 0.92,
"confidence": 0.87
}
]
Status codes
| Status | Description |
|---|---|
200 | Mention details returned. |
400 | promptIds exceeds maximum of 10 values. |
401 | Missing or invalid Bearer token. See Authentication. |
500 | Internal server error. |
What’s next
- Get Theme Keyword Sentiment — View keyword-level sentiment aggregates.
- Get Overall Sentiment — View overall sentiment summary.
Was this page helpful?