Why assistants cite others and not this page
https://seolyticize.com /api/v1/tools/get_ai_citation_gap For a question assistants answer without citing the client: reads the pages they did cite and the client's page (ourUrl), and says what the cited pages cover that the client's does not — the terms, the sections, the questions they answer — with a 0–100 coverage score and the fixes, as content scoring does against search results. The cited pages come from a tracked question's stored answers (promptId, free), from citedUrls (free), or by asking the ChatGPT app and Perplexity now (question, paid). Answers 'why does ChatGPT cite them and not us' and 'what should this page add to be cited'. Quote a live question with estimate_cost.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredourUrlstringrequiredpromptIdstringquestionstringcitedUrlsstring[]maxCostMicrosintegerdryRunboolean{
"clientId": "string",
"ourUrl": "string",
"promptId": null,
"question": null,
"citedUrls": [],
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_ai_citation_gap" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","ourUrl":"string","promptId":null,"question":null,"citedUrls":[],"maxCostMicros":0,"dryRun":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_ai_citation_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger