Get citation statistics by domain
curl --request GET \
--url https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains \
--header 'API-Key: <api-key>'import requests
url = "https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains', 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://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$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://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domains": [
{
"citationCount": 78,
"domain": "reddit.com",
"models": [
{
"citationCount": 69,
"model": "CHATGPT"
}
]
}
],
"totalCitations": 1571,
"totalDomains": 354
}{
"code": "COMMON_VALIDATION",
"details": [
"limit: must be 100 or less"
],
"message": "Data validation failed"
}{
"code": "COMMON_UNAUTHORIZED",
"message": "Unauthenticated user"
}{
"code": "INSUFFICIENT_CREDITS",
"message": "Insufficient credits."
}{
"code": "PLATFORM_RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please try again later."
}{
"message": "Internal Server Error",
"requestID": "bkZqnHQepkgTOocTvyHWSlHcGzRqQbZk"
}Statistics (Beta)
Cited domain ranking
[BETA] This is a beta API. The response spec may change without notice.
Aggregates the sources cited in answers at the domain level.
domainsis a ranking that contains the toplimitentries by citation count in descending order, and does not support pagination.- The default aggregation unit is the root domain. For example,
blog.naver.comandcafe.naver.comare combined intonaver.com. SpecifygroupBy=subdomainto aggregate at the subdomain level. - The total citation count (
totalCitations) and the number of unique domains (totalDomains) across the queried scope are returned as well.
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | COMMON_VALIDATION | • Both runIDs and promptIDs missing • runIDs count (5) or promptIDs count (10) exceeded • limit out of range (1 to 200) • domains filter count (50) or length (253 characters) exceeded • Unsupported groupBy, model, or include value |
| 400 | COMMON_BINDING | Invalid runIDs or promptIDs format (PLATFORM_INVALID_ID in details) |
| 401 | COMMON_UNAUTHORIZED | API key or access token is missing or invalid |
| 402 | INSUFFICIENT_CREDITS | The organization’s credit balance is lower than the unit price of this request |
| 429 | PLATFORM_RATE_LIMIT_EXCEEDED | Rate limit exceeded. Wait for the number of seconds in the Retry-After header, then retry |
| 500 | — | Internal server error. Returns message and requestID without a code |
GET
/
v1beta
/
platform
/
sources
/
statistics
/
domains
Get citation statistics by domain
curl --request GET \
--url https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains \
--header 'API-Key: <api-key>'import requests
url = "https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains', 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://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$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://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform-api.trychainshift.ai/api/v1beta/platform/sources/statistics/domains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domains": [
{
"citationCount": 78,
"domain": "reddit.com",
"models": [
{
"citationCount": 69,
"model": "CHATGPT"
}
]
}
],
"totalCitations": 1571,
"totalDomains": 354
}{
"code": "COMMON_VALIDATION",
"details": [
"limit: must be 100 or less"
],
"message": "Data validation failed"
}{
"code": "COMMON_UNAUTHORIZED",
"message": "Unauthenticated user"
}{
"code": "INSUFFICIENT_CREDITS",
"message": "Insufficient credits."
}{
"code": "PLATFORM_RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please try again later."
}{
"message": "Internal Server Error",
"requestID": "bkZqnHQepkgTOocTvyHWSlHcGzRqQbZk"
}See the Analyzing with statistics guide for real examples and interpretation.
FAQ
The result is empty. Either the run is still in progress, or no successful answer in the specified scope provided sources.Query Parameters
Aggregation unit (default domain=aggregated by root domain, subdomain=split by subdomain). www. is always stripped and merged into the parent domain
Available options:
domain, subdomain Response
OK