curl --request GET \
--url https://api.rankspot.ai/v1/ai-visibility/responses \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/ai-visibility/responses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rankspot.ai/v1/ai-visibility/responses', 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.rankspot.ai/v1/ai-visibility/responses",
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: Bearer <token>"
],
]);
$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.rankspot.ai/v1/ai-visibility/responses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rankspot.ai/v1/ai-visibility/responses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/ai-visibility/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"total": 100,
"offset": 0,
"limit": 100,
"count": 10,
"items": [
{
"id": "3f1c2b4e-8d5a-4a2f-9c3e-7b1d6a5e4c20",
"promptId": "9a8b7c6d-5e4f-4321-8765-1a2b3c4d5e6f",
"promptText": "best seo tools for small business",
"platform": "chatgpt",
"runDate": "2026-07-26",
"ownBrandMentioned": true,
"citationsCount": 12,
"brands": [
{
"name": "RankSpot",
"domain": "rankspot.ai"
}
]
}
]
}
}List AI responses
Captured answers for your tracked prompts, newest first. Covers the full history unless you narrow it with startDate and endDate. Runs that failed or are still in flight are not returned, so an absent response is never counted as a miss.
curl --request GET \
--url https://api.rankspot.ai/v1/ai-visibility/responses \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/ai-visibility/responses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rankspot.ai/v1/ai-visibility/responses', 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.rankspot.ai/v1/ai-visibility/responses",
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: Bearer <token>"
],
]);
$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.rankspot.ai/v1/ai-visibility/responses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rankspot.ai/v1/ai-visibility/responses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/ai-visibility/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"total": 100,
"offset": 0,
"limit": 100,
"count": 10,
"items": [
{
"id": "3f1c2b4e-8d5a-4a2f-9c3e-7b1d6a5e4c20",
"promptId": "9a8b7c6d-5e4f-4321-8765-1a2b3c4d5e6f",
"promptText": "best seo tools for small business",
"platform": "chatgpt",
"runDate": "2026-07-26",
"ownBrandMentioned": true,
"citationsCount": 12,
"brands": [
{
"name": "RankSpot",
"domain": "rankspot.ai"
}
]
}
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
x >= 01 <= x <= 100Inclusive start of the period, YYYY-MM-DD (UTC). Omit for no lower bound.
"2026-07-01"
Inclusive end of the period, YYYY-MM-DD (UTC). Omit for no upper bound.
"2026-07-28"
Only these platforms. Repeat the parameter or pass a comma-separated list. Omit for all of them.
chatgpt, perplexity, google_ai_overview, google_ai_mode Only responses to this tracked prompt.
Filter on ownBrandMentioned. true: only responses that named your own brand | false: only those that did not. Omit for both.
Response
Hide child attributes
Hide child attributes
100
0
100
10
Hide child attributes
Hide child attributes
"3f1c2b4e-8d5a-4a2f-9c3e-7b1d6a5e4c20"
"9a8b7c6d-5e4f-4321-8765-1a2b3c4d5e6f"
"best seo tools for small business"
chatgpt, perplexity, google_ai_overview, google_ai_mode The UTC day the prompt was run, YYYY-MM-DD.
"2026-07-26"
Whether the answer named your own brand. null when the answer has not been analysed yet. Read brands for where it placed and how the answer spoke of it.
12
