curl --request GET \
--url https://api.radarkit.ai/v1/projects/{project}/rankings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/rankings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.radarkit.ai/v1/projects/{project}/rankings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": 7712001,
"prompt": {
"id": 2048,
"text": "best crm for a startup"
},
"model": "chatgpt",
"date": "2026-08-31",
"collected_at": "2026-08-31T03:12:40+00:00",
"domain": "acme.com",
"url": "https://www.acme.com",
"position": 1
}
],
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"from": "2026-08-01",
"to": "2026-08-31",
"models": [
"chatgpt"
],
"prompt_id": null,
"domain": "acme.com",
"limit": 50,
"count": 1,
"has_more": false,
"next_cursor": null
},
"credits": {
"charged": 1,
"remaining": 2937
},
"request_id": "req_01j9x4v9l0m1n2o3p4q5r6s7u3"
}{
"error": {
"code": "DATE_RANGE_TOO_LARGE",
"message": "The date range can span at most 31 days. Use exports for more.",
"details": {
"max_days": 31
}
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j6"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Missing or invalid API key. Send it as: Authorization: Bearer rk_live_YOUR_KEY"
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r6"
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough API credits."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r7"
}{
"error": {
"code": "PROJECT_FORBIDDEN",
"message": "This key cannot access that project."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r9"
}{
"error": {
"code": "PROJECT_NOT_FOUND",
"message": "No project with that id."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5s0"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "One or more parameters are invalid.",
"details": [
{
"path": "from",
"message": "The from field must match the format Y-m-d."
}
]
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j5"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Slow down and retry.",
"details": {
"retry_after": 21
}
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a1"
}{
"error": {
"code": "QUERY_TIMEOUT",
"message": "The query took too long. Narrow the date range or use exports."
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a2"
}List rankings
One row per domain an answer recommended, with its position in that answer. Position 1 is the first recommendation.
Use it: with domain set to your own domain to see exactly where you ranked in each answer.
Cost: 1 API credit per page.
Limits: Up to 31 days in one call. Up to 100 rows per page.
Needs: Read.
curl --request GET \
--url https://api.radarkit.ai/v1/projects/{project}/rankings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/rankings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.radarkit.ai/v1/projects/{project}/rankings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": 7712001,
"prompt": {
"id": 2048,
"text": "best crm for a startup"
},
"model": "chatgpt",
"date": "2026-08-31",
"collected_at": "2026-08-31T03:12:40+00:00",
"domain": "acme.com",
"url": "https://www.acme.com",
"position": 1
}
],
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"from": "2026-08-01",
"to": "2026-08-31",
"models": [
"chatgpt"
],
"prompt_id": null,
"domain": "acme.com",
"limit": 50,
"count": 1,
"has_more": false,
"next_cursor": null
},
"credits": {
"charged": 1,
"remaining": 2937
},
"request_id": "req_01j9x4v9l0m1n2o3p4q5r6s7u3"
}{
"error": {
"code": "DATE_RANGE_TOO_LARGE",
"message": "The date range can span at most 31 days. Use exports for more.",
"details": {
"max_days": 31
}
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j6"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Missing or invalid API key. Send it as: Authorization: Bearer rk_live_YOUR_KEY"
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r6"
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough API credits."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r7"
}{
"error": {
"code": "PROJECT_FORBIDDEN",
"message": "This key cannot access that project."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r9"
}{
"error": {
"code": "PROJECT_NOT_FOUND",
"message": "No project with that id."
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5s0"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "One or more parameters are invalid.",
"details": [
{
"path": "from",
"message": "The from field must match the format Y-m-d."
}
]
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j5"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Slow down and retry.",
"details": {
"retry_after": 21
}
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a1"
}{
"error": {
"code": "QUERY_TIMEOUT",
"message": "The query took too long. Narrow the date range or use exports."
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a2"
}Authorizations
Your API key. Create one in Settings, API keys. Send it as Authorization: Bearer rk_live_YOUR_KEY.
Path Parameters
The project id. 24 characters. From List projects.
^[0-9a-f]{24}$Query Parameters
First day, YYYY-MM-DD, in the project's timezone. Default: the window your dashboard shows, 7 or 30 days back.
Last day, YYYY-MM-DD, included. Default: today.
One model name, or several separated by commas: chatgpt, gemini, perplexity, copilot, aimode, aioverview. Default: every model the project tracks. Names the plan does not include are ignored.
120Only rows for this prompt.
x >= 1Only this domain, exactly as stored.
255Rows per page, 1 to 100. Default 50.
1 <= x <= 100next_cursor from the previous page. Keep the other filters the same.
200Response
One page of rankings.
Show child attributes
Show child attributes
Facts about the request and how to get the next page.
Show child attributes
Show child attributes
What this call cost and what is left. Also in the X-RadarKit-Credits-Charged and X-RadarKit-Credits-Remaining headers.
Show child attributes
Show child attributes
A unique id for this call. Also in the X-Request-Id header. Quote it when you contact support.
"req_01j9x4m2p7q8r9s0t1u2v3w4x5"