Set up AI visibility from the client's own data
https://seolyticize.com /api/v1/tools/suggest_ai_visibility_setup Drafts a client's AI visibility setup: its own brand (from the client's name, site and brand terms), competitors (from the brief and rank tracker, then DataForSEO's organic competitors to fill up to maxCompetitors), and starter questions grouped by topic — real questions people ask AI assistants, from DataForSEO's AI answer index, around the seed keywords (given, or the tracked keywords with the most AI search volume), each with its AI search volume and fan-out searches, branded or neutral. Nothing is saved unless apply is true, which adds them all (topics included) as save_ai_visibility_setup would, skipping anything already tracked. Answers 'set up AI tracking for this client'. A paid lookup on the client's account unless anyone asked the same thing recently (served says which); quote it with estimate_cost. (up to one competitors read, one AI volume read and one question read per seed)
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredseedKeywordsstring[]maxSeedsintegerpromptsPerSeedintegermaxCompetitorsintegerplatformstringapplybooleanmaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"seedKeywords": [],
"maxSeeds": 3,
"promptsPerSeed": 5,
"maxCompetitors": 5,
"platform": "google",
"apply": false,
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/suggest_ai_visibility_setup" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","seedKeywords":[],"maxSeeds":3,"promptsPerSeed":5,"maxCompetitors":5,"platform":"google","apply":false,"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/suggest_ai_visibility_setup
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/suggest_ai_visibility_setup
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger