curl --request GET \
--url https://api.rankspot.ai/v1/ai-visibility/citations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/ai-visibility/citations"
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/citations', 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/citations",
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/citations"
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/citations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/ai-visibility/citations")
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",
"url": "https://rankspot.ai/blog/ai-seo-tools/",
"domain": "rankspot.ai",
"title": "The 12 best AI SEO tools",
"isOwnDomain": true,
"status": "new",
"firstSeenAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"citations": 14,
"platforms": [
"chatgpt"
]
}
]
}
}List cited pages
Pages the AI platforms cited while answering your prompts, most-cited first. Defaults to the worklist: pages not yet acted on. Pass type=processed or type=archived for the others. Covers the full history unless you narrow it with startDate and endDate; filter by domain substring to look at one site. citations counts only what falls inside the requested period. Coverage is not uniform across platforms: each engine cites at its own rate.
curl --request GET \
--url https://api.rankspot.ai/v1/ai-visibility/citations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/ai-visibility/citations"
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/citations', 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/citations",
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/citations"
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/citations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/ai-visibility/citations")
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",
"url": "https://rankspot.ai/blog/ai-seo-tools/",
"domain": "rankspot.ai",
"title": "The 12 best AI SEO tools",
"isOwnDomain": true,
"status": "new",
"firstSeenAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"citations": 14,
"platforms": [
"chatgpt"
]
}
]
}
}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"
Filter by domain substring, case-insensitive. rankspot matches www.rankspot.ai and rankspot.co.uk.
"rankspot"
new: the worklist, pages not yet acted on (default) | processed: pages marked as handled | archived: pages hidden from the worklist
new, processed, archived citations, lastSeenAt, firstSeenAt, domain asc, desc Response
Hide child attributes
Hide child attributes
100
0
100
10
Hide child attributes
Hide child attributes
"3f1c2b4e-8d5a-4a2f-9c3e-7b1d6a5e4c20"
"https://rankspot.ai/blog/ai-seo-tools/"
"rankspot.ai"
Title as the citing platform reported it.
"The 12 best AI SEO tools"
The page is on your own domain.
true
new, processed When this page was first and last cited, ever. Not clipped to the requested period.
Responses in the period that cited this page. One response can cite a page at most once, so this is both the citation count and the number of answers behind it.
14
Platforms that cited this page in the period.
chatgpt, perplexity, google_ai_overview, google_ai_mode 