SEO metrics
seo_metricsAnswer questions about search visibility and search demand — keywords, rankings, links, domains, and how interest in a subject moves over time and across a country.
Use when the question is about how a site or a market performs in search rather than about what a page says: which keywords a domain ranks for, which pages earn its traffic, who competes with it, what links to it, how a keyword's demand and difficulty compare, whether interest in a subject is rising or falling, and which of a country's regions search for it most.
Examples:
"keywords ahrefs.com ranks in the top 3 for, with real volume"
"which pages of this site bring the most organic traffic"
"who competes with this domain and how big are they"
"keyword ideas around link building that are not brutally competitive"
Ask in plain language. Do not write field names, operators or query syntax — the request is composed from your question, and what came back is described in the answer so you can check it matched what you meant.
Not for: what a specific page says (use advanced_web_fetch), or what people are posting right now (use advanced_web_search).
Results are stored as citable Data records — a large report comes back as a summary plus a line index, so read the parts you need with read_collected_records or search across them with grep_collected_records. Every relevant result carries mdOrHtmlDownloadUrl — a ready-to-use link that downloads that record as Markdown, no key attached, so it can be passed on as-is. Swap its ?type=md for ?type=html and the same link hands back the page's original HTML exactly as the site served it, markup and all — what an SEO reader needs and what Markdown drops; web-page fetches only.
If status: "running" is returned, poll get_task_results({ taskIds }).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes | One or more questions. Each pairs a question with the sources to ask it of; requests and sources run in parallel. | |
| isResearch | No | Default true. True means this call is part of an investigation: you will come back to what it collects, weigh it against other sources and cite it, so it is worth preparing the material for repeated use. Set false for a one-off question you are waiting on right now and will answer in this same turn — that trades the preparation for the fastest reply the source allows. | |
| maxWaitSec | No | How long to wait before returning `status: "running"` with a `taskId` to poll via `get_task_results`. Defaults to 50 seconds, which is also the server's ceiling — a larger value is clamped down to it, not honoured. Results stream as they are produced: each completed unit of work appears in `streaming.chunks[]` as soon as it is ready. |