Get Run Details
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details"
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/query-runs/{id}/details', 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/query-runs/{id}/details",
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/query-runs/{id}/details"
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/query-runs/{id}/details")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details")
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{
"queryRun": {
"id": 123,
"platform": "<string>",
"status": "<string>",
"completedAt": "<string>",
"promptText": "<string>",
"topicName": "<string>",
"active": true,
"location": "<string>",
"errorMessage": "<string>"
},
"aiResponse": {},
"metrics": {}
}Query Runs
Get Run Details
Retrieve the full AI response, metrics, and context for a completed query run.
GET
/
ai-analytics-service
/
api
/
public
/
v1
/
query-runs
/
{id}
/
details
Get Run Details
curl --request GET \
--url https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details \
--header 'Authorization: <authorization>'import requests
url = "https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details"
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/query-runs/{id}/details', 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/query-runs/{id}/details",
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/query-runs/{id}/details"
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/query-runs/{id}/details")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/{id}/details")
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{
"queryRun": {
"id": 123,
"platform": "<string>",
"status": "<string>",
"completedAt": "<string>",
"promptText": "<string>",
"topicName": "<string>",
"active": true,
"location": "<string>",
"errorMessage": "<string>"
},
"aiResponse": {},
"metrics": {}
}Returns the complete details of a query run, including the raw AI response and computed metrics. Use this after a run reaches
COMPLETED status to see what the AI platform returned.
Parameters
number
required
Unique identifier for the query run.
string
required
Bearer token. Format:
Bearer slat_<your-token>.Response
Returns200 OK with the run summary, AI response, and metrics.
object
required
Summary of the query run with prompt and topic context.
Show query run summary
Show query run summary
number
required
Query run ID.
string
required
AI platform used.
string
required
Run status.
string
Completion timestamp. ISO 8601 format.
string
required
The prompt text that was queried.
string
required
Name of the associated topic.
boolean
required
Whether the prompt is currently active.
string
Country code filter used for the run.
string
Error details if the run failed.
object
The raw response from the AI platform. Structure varies by platform.
null if the run has not completed or failed before producing a response.object
Computed metrics for the run (brand mentions, visibility scores, citations). Structure depends on the analysis performed.
null if metrics are not yet available.Example
curl -s "https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/2048/details" \
-H "Authorization: Bearer slat_YOUR_TOKEN"
import requests
response = requests.get(
"https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/2048/details",
headers={
"Authorization": "Bearer slat_YOUR_TOKEN",
},
)
details = response.json()
print(details["queryRun"]["promptText"])
print(details["queryRun"]["status"])
const response = await fetch(
"https://api.slatehq.ai/ai-analytics-service/api/public/v1/query-runs/2048/details",
{
headers: {
"Authorization": "Bearer slat_YOUR_TOKEN",
},
}
);
const details = await response.json();
console.log(details.queryRun.promptText);
console.log(details.queryRun.status);
Response
{
"queryRun": {
"id": 2048,
"platform": "CHATGPT",
"status": "COMPLETED",
"completedAt": "2026-02-11T14:31:15Z",
"promptText": "What is the best project management tool for remote teams?",
"topicName": "Project Management Tools",
"active": true,
"location": "US",
"errorMessage": null
},
"aiResponse": {
"text": "Based on my analysis, the top project management tools for remote teams include...",
"citations": [
"https://example.com/pm-tools-comparison"
]
},
"metrics": {
"brandMentions": 3,
"position": 2,
"visibility": 85
}
}
The
aiResponse structure varies by AI platform. The example above is illustrative — the actual shape depends on the platform’s response format.Status codes
| Status | Description |
|---|---|
200 | Run details returned. |
401 | Missing or invalid Bearer token. See Authentication. |
404 | Query run not found. The ID does not exist or does not belong to this workspace. |
500 | Internal server error. |
What’s next
- Get Trends — View visibility trends over time.
- Get Metrics — Get aggregated performance metrics.
Was this page helpful?