curl --request GET \
--url https://api.radarkit.ai/v1/projects/{project}/web-search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/web-search"
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}/web-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"answers": 18,
"searched": 16,
"search_rate": 88.9,
"prompts": [
{
"prompt": {
"id": 2048,
"text": "best crm for a startup"
},
"answers": 18,
"searched": 16,
"search_rate": 88.9,
"query_count": 10,
"avg_queries_per_search": 1.8,
"queries": [
{
"query": "best crm startups 2026",
"count": 3
},
{
"query": "hubspot free crm limits",
"count": 1
}
]
}
]
},
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"from": "2026-08-01",
"to": "2026-08-31",
"models": [
"chatgpt",
"gemini",
"perplexity"
],
"prompt_id": 2048,
"limit": 50,
"count": 1,
"prompts_total": 1
},
"credits": {
"charged": 2,
"remaining": 2934
},
"request_id": "req_01j9x4v9l0m1n2o3p4q5r6s7u5"
}{
"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"
}Get web search
How often the models ran a web search before answering, and what they searched for. The share of answers that searched, then one entry per prompt with the distinct search queries, how many times each was seen, and the average number of queries per search.
Use it: pass prompt_id for one prompt (what the Web Search card on its page shows), or leave it out for every active prompt, most queries first (the Query Fanout table).
Cost: 2 API credits.
Limits: Up to 31 days in one call. limit caps the prompts returned (default 50, up to 100); meta.prompts_total says how many there were.
Needs: Read.
curl --request GET \
--url https://api.radarkit.ai/v1/projects/{project}/web-search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/web-search"
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}/web-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"answers": 18,
"searched": 16,
"search_rate": 88.9,
"prompts": [
{
"prompt": {
"id": 2048,
"text": "best crm for a startup"
},
"answers": 18,
"searched": 16,
"search_rate": 88.9,
"query_count": 10,
"avg_queries_per_search": 1.8,
"queries": [
{
"query": "best crm startups 2026",
"count": 3
},
{
"query": "hubspot free crm limits",
"count": 1
}
]
}
]
},
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"from": "2026-08-01",
"to": "2026-08-31",
"models": [
"chatgpt",
"gemini",
"perplexity"
],
"prompt_id": 2048,
"limit": 50,
"count": 1,
"prompts_total": 1
},
"credits": {
"charged": 2,
"remaining": 2934
},
"request_id": "req_01j9x4v9l0m1n2o3p4q5r6s7u5"
}{
"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 >= 1Rows per page, 1 to 100. Default 50.
1 <= x <= 100Response
The search rate and the queries per prompt.
Show child attributes
Show child attributes
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"