Ask ChatGPT, Claude, Gemini and Perplexity through DataForSEO
https://seolyticize.com /api/v1/tools/get_llm_responses Asks one question (up to 500 characters) live on the chosen models through DataForSEO — chat_gpt, claude, gemini, perplexity, and chat_gpt_app: the ChatGPT app itself as a person sees it, with the sources it cited and the searches it ran (about $0.004) — with web search on by default, and returns each answer's text, the pages it cited, the follow-up searches it ran (fanOutQueries, where the platform reports them), and which of the client's tracked brands it named and whether the client was named and cited. Needs no assistant keys of the agency's own; nothing is stored. Use it to explore a question before tracking it. Answers 'what do the big models say when asked this' and 'what does ChatGPT search for to answer it'. A paid lookup on the client's account unless anyone asked the same thing recently (served says which); quote it with estimate_cost. (one purchase per model; about $0.01–0.10 each with web search)
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredpromptstringrequiredplatformsstring[]webSearchbooleancountrystringmodelsobjectShow child parameters
chat_gptstringclaudestringgeministringperplexitystringmaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"prompt": "string",
"platforms": [
"chat_gpt",
"perplexity"
],
"webSearch": true,
"country": null,
"models": {},
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_llm_responses" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","prompt":"string","platforms":["chat_gpt","perplexity"],"webSearch":true,"country":null,"models":{},"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_llm_responses
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_llm_responses
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger