Keyword, competitor, backlink and AI answer data
seo_researchData from the person’s own DataForSEO or Ahrefs account, which costs them credits. It uses the key the person saved on their seoskill.dev account (or on this machine for the CLI). Actions: provider is optional: without it the call uses the saved key, DataForSEO when both are saved. The target is a domain (the whole site), a path ending in / such as example.com/blog/ (every URL under it), or one page; scope overrides that. keyword_metrics (keywords: volume, difficulty, CPC), keyword_ideas (up to 5 seed keywords: searches that contain each seed, by volume), ranked_keywords (target: keywords a site, subfolder or page ranks for, with the provider's traffic total for the whole target), top_pages (target: the pages with the most estimated organic traffic), serp (keywords, up to 5: the ranking pages, each with its domain's authority: DataForSEO domain_rank 0 to 100, Ahrefs domain_rating; depth sets results per keyword, default 20; rows run position by position across the keywords), serp_overlap (2 to 10 keywords: for each pair, how many of their top 10 pages and sites are the same, to decide one page or several; results without a real page are counted, not compared), competitors (target: domains that share keywords), backlinks (target: referring domains), pages_by_backlinks (target: the pages with the most referring domains), link_gap (target and 2 to 5 competitors: referring domains that link to two or more competitors and not the target, highest authority first, from each site's top 1,000 referring domains; costs one backlinks call per site), ai_answers (DataForSEO only; target: the site. Without keywords it takes the site’s top 10 chat-style and long questions from Search Console’s AI-shaped queries itself. With up to 10 questions in keywords it asks those instead, and the target can be any domain, such as a competitor's. Each answer row also lists the other sites it cites, and the notes rank them. Answers come from DataForSEO's queue: answers not ready after about 40 seconds are returned as tasks, already paid for; call again with the same target and those tasks to read them at no cost. It asks ChatGPT search, Google AI Mode and Google AI Overviews each one and says whether the answer cites or mentions the site. DataForSEO’s queue prices are about $0.0072 a question across the three engines, so about $0.07 a run: tell the person before running it). Rows with a domain, and the target, get a free Ahrefs domain_rating column. Numbers are provider estimates, not Search Console data.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| also | No | ai_answers only: the brand's other domains, such as claude.ai beside claude.com. A citation to any of them counts as citing the target. | |
| brand | No | ai_answers only: the brand names that count as a mention, such as Datadog for datadoghq.com. Default: each domain's name. | |
| depth | No | serp only: results per keyword, default 20. Deeper costs more. | |
| scope | No | Optional: domain, prefix or exact, to read the target another way than its shape says. | |
| tasks | No | ai_answers only: the tasks an earlier run returned as not ready, to read back at no cost. | |
| action | Yes | ||
| detail | No | summary first. rows: the next page of rows. full: every field as JSON. | summary |
| offset | No | rows only: the first row to return. | |
| target | No | Domain (the whole site), a path ending in / for every URL under it, such as example.com/blog/, or one page. | |
| country | No | Two-letter country code. | us |
| keywords | No | ||
| provider | No | Optional. Without it, the saved key; DataForSEO when both are saved. | |
| competitors | No | link_gap only: 2 to 5 competitor domains. |