Research any domain
Any domain the way the big indexes read it, the AI answer index, any business on the map, and link prospects.
The tools on this page work on any domain, keyword or business, managed or not. Each still takes a clientId, because the paid lookups are billed to that client's DataForSEO account and every result is kept with the client. Most of them spend money: quote each call with estimate_cost {tool, arguments} and pass the quote as maxCostMicros. A lookup anyone on Seolyticize bought recently is served free, and the result's spend says which.
A domain, the way the big indexes read it
target is a domain (rival.com), a subfolder (rival.com/blog/) or a page URL, and defaults to the client's own domain.
get_domain_overview {clientId, target, historyMonths: 12} → organic and paid keywords, traffic and its value, positions, a monthly history
get_ranked_keywords {clientId, target} → every keyword it ranks for, with position, URL, traffic, volume and intent
get_ranked_keywords {clientId, target, resultType: "ai_overview_reference"} → the keywords whose AI Overview cites it
get_top_pages {clientId, target} → its pages by estimated traffic
get_backlink_history {clientId, target} → backlinks and referring domains month by month
get_keyword_metrics {clientId, keywords: [...]} → volume, CPC, difficulty and intent for up to 700 known keywords
get_serp_history {clientId, keyword} → who ranked for a keyword on past dates
get_keyword_advertisers {clientId, keyword} → the ads shown for a keyword now, and who runs themOver REST:
curl -X POST https://seolyticize.com/api/v1/tools/get_ranked_keywords \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"clientId": "client_123", "target": "rival.com/blog/", "change": "new", "sort": "traffic", "limit": 50, "maxCostMicros": 50000}'The AI answer index
DataForSEO keeps a database of real AI answers. These tools read it, with no question tracking set up first. platform is google (AI Overviews) or chat_gpt.
get_ai_brand_mentions {clientId, brands: [{name, domains}]} → share of voice in AI answers for the client and up to nine rivals
get_ai_prompt_research {clientId, keyword} → real questions people ask AI, with the sources and brands in each answer
get_ai_search_volume {clientId, keywords: [...]} → how often a topic is asked of AI, with 12 months of history
get_ai_top_cited_domains {clientId, topic} → the sites AI answers cite on a topic: the outreach and PR list
get_ai_mode_answer {clientId, keyword} → Google AI Mode's answer and every source it cites
get_llm_responses {clientId, prompt, platforms} → ask ChatGPT, Claude, Gemini and Perplexity live, with what each citedTo start tracking AI visibility from the client's own data, suggest_ai_visibility_setup {clientId} drafts the brand, the competitors and starter questions. Nothing is saved until you call it again with apply: true. Once runs exist, get_ai_cited_sources {clientId} lists who the assistants cite and who owns each source, get_ai_visibility_sentiment {clientId} reads how the answers speak of the brand, and assess_ai_visibility_sentiment {clientId} (paid, one Claude call per answer) judges the answers not yet judged.
Any business on the map
business is a name (best with the town), or cid:… / place_id:… for an exact listing.
get_business_profile {clientId, business} → categories, hours, rating spread, attributes, claimed, review topics
search_local_businesses {clientId, lat, lng, radiusKm, categories} → every business within a radius
get_local_categories {clientId, lat, lng} → the categories used nearby, and the attributes common among them
get_maps_results {clientId, keyword} → Maps or Local Finder results from one point, and where the client sits
get_business_questions {clientId, business} → the listing's Q&A, unanswered questions counted
get_business_reviews {clientId, business} → queues the reviews; call again with the taskId to collect them freeFor the map pack across a whole town, a grid scan is still the tool: see Local, links and logs.
Link prospects
get_competitor_broken_pages {clientId, domain} → a rival's dead pages that other sites still link to
get_outbound_domains {clientId, domain} → the domains a site links out to
get_forum_opportunities {clientId, keywords} → Reddit, Quora and forum threads ranking for the client's keywords
search_web_content {clientId, keyword} → pages on the web that mention a phrase, with sentiment and domain rankget_competitor_broken_pages with source: "index" reads our own crawl, which is free but covers only pages we have fetched. Keep the prospects you mean to contact with add_link_prospects, so a person and an agent work from the same list.
Content from the research
research_topic {clientId, seed} → subtopics, questions and the headlines ranking now
get_personal_keyword_difficulty {clientId, keywords} → how hard each keyword is for this site, not for an average one
forecast_keyword_traffic {clientId, keywords: [{term}]} → clicks at positions 1, 3, 5 and 10, month by month (free)
draft_article {clientId, keyword} → a Markdown draft grounded in the content brief (a paid Claude call)
rewrite_section {clientId, keyword, section, draft} → a section rewritten or extended to cover what the score finds missing
suggest_meta_tags {clientId} → titles and descriptions for a whole crawl's missing, duplicate or overlong tagsScore every draft with score_content before it is published, and have a person read it: see What to fix, what to write.