Get Citation
curl --request GET \
--url https://api.tryhikoo.com/api/v1/public/citations/{citation_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryhikoo.com/api/v1/public/citations/{citation_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryhikoo.com/api/v1/public/citations/{citation_id}', 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.tryhikoo.com/api/v1/public/citations/{citation_id}",
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.tryhikoo.com/api/v1/public/citations/{citation_id}"
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.tryhikoo.com/api/v1/public/citations/{citation_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryhikoo.com/api/v1/public/citations/{citation_id}")
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{
"id": 123,
"content": "<string>",
"platform": "ChatGPT",
"website_cited": true,
"created_at": "2023-11-07T05:31:56Z",
"sources": [
"<string>"
],
"mentioned_sources": [
"<string>"
],
"match_types": [
"brand_citation"
],
"localization": "<string>",
"competitors": [
{
"id": 123,
"name": "<string>",
"url": "<string>",
"aliases": [
"<string>"
]
}
],
"website_rank": 123,
"website_rank_total": 123,
"brand_mentions": [
{
"id": 123,
"display_name": "<string>",
"brand_name_normalized": "<string>",
"is_tracked_website": true,
"resolved_competitor_id": 123,
"summary": "<string>",
"rank": 123,
"highlights": [
{
"text": "<string>",
"type": "positive",
"start": 123,
"end": 123
}
]
}
],
"prompt": {
"id": 123,
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"competitor_ranks": [
{
"competitor_id": 123,
"rank": 123,
"total": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Citations
Get Citation
Single citation by id: full content, sources, brand_mentions, prompt,
competitor ranks. brand_mentions is stripped when the website’s plan
disables sentiment analysis.
GET
/
api
/
v1
/
public
/
citations
/
{citation_id}
Get Citation
curl --request GET \
--url https://api.tryhikoo.com/api/v1/public/citations/{citation_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryhikoo.com/api/v1/public/citations/{citation_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryhikoo.com/api/v1/public/citations/{citation_id}', 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.tryhikoo.com/api/v1/public/citations/{citation_id}",
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.tryhikoo.com/api/v1/public/citations/{citation_id}"
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.tryhikoo.com/api/v1/public/citations/{citation_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryhikoo.com/api/v1/public/citations/{citation_id}")
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{
"id": 123,
"content": "<string>",
"platform": "ChatGPT",
"website_cited": true,
"created_at": "2023-11-07T05:31:56Z",
"sources": [
"<string>"
],
"mentioned_sources": [
"<string>"
],
"match_types": [
"brand_citation"
],
"localization": "<string>",
"competitors": [
{
"id": 123,
"name": "<string>",
"url": "<string>",
"aliases": [
"<string>"
]
}
],
"website_rank": 123,
"website_rank_total": 123,
"brand_mentions": [
{
"id": 123,
"display_name": "<string>",
"brand_name_normalized": "<string>",
"is_tracked_website": true,
"resolved_competitor_id": 123,
"summary": "<string>",
"rank": 123,
"highlights": [
{
"text": "<string>",
"type": "positive",
"start": 123,
"end": 123
}
]
}
],
"prompt": {
"id": 123,
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"competitor_ranks": [
{
"competitor_id": 123,
"rank": 123,
"total": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Personal API key created in the dashboard (Settings > API keys).
Path Parameters
Query Parameters
Target website id
Response
Successful Response
Citation schema with linked prompt + per-competitor ranks for the detail page.
Available options:
ChatGPT, Gemini, AI Overviews, Google AI Mode, Perplexity, Mistral, Claude, DeepSeek, Grok, Copilot How a website (or competitor) was matched in an AI response.
Non-exclusive — a single citation can carry multiple types (e.g. brand name in content AND URL in sources).
Available options:
brand_citation, site_mention, background_source Show child attributes
Show child attributes
Show child attributes
Show child attributes
Prompt info embedded in citation response
Show child attributes
Show child attributes
Show child attributes
Show child attributes