SeoGrep
Tools Reference

ranked_keywords

List the Google organic keywords a domain already ranks for — keyword, position, monthly search volume, and the ranking URL. Pass a target domain (any…

Cost: 65 credits.

ranked_keywords lists the Google organic keywords a domain already ranks for — each with its position, monthly search volume, and the exact URL that ranks — powered by DataForSEO Labs. It works on any public domain, so it reads your own site or a competitor's the same way. It is synchronous: the table comes back immediately, with no background job to poll.

What it does

Name the site in one of two ways — pass a target domain (a bare host or a full URL — it is canonicalized for you), or pass the project_id of one of your own projects and the domain is taken from it. Exactly one of the two: passing both is rejected rather than resolved by precedence, because the two can name different sites and guessing would bill you for a lookup of the one you did not mean. Either way you get one row per ranked keyword:

  • Keyword — the query the domain ranks for.
  • Position — where it ranks in the organic results.
  • Search volume — average monthly Google searches for that keyword.
  • URL — the page on the domain that holds the ranking.

Only organic results are counted — paid placements are excluded. The header line says how many rows you got and, when the domain ranks for more than the limit you asked for, how many it ranks for in total, so a truncated list never reads like the whole picture.

Who can run it

ranked_keywords needs a paid credit balance. It reads live data from a paid third-party provider, so it is not available on trial credits — buy any credit pack and it unlocks straight away. Your trial credits are untouched and keep working for crawls, audits, reports and Search Console tools.

If live DataForSEO access is unavailable on this deployment, the tool returns a clear "ranked-keyword lookups are not yet enabled on this deployment" message and charges you nothing — no credits are reserved or spent. SeoGrep never returns sample or placeholder figures dressed up as real data.

Example

Ask your MCP client in plain language:

What keywords does competitor.com rank for?

Or narrow it down:

Show me the top 50 keywords example.com ranks for.

Input

FieldTypeRequiredDescription
targetstringNoThe domain to look up, e.g. "example.com" or "https://example.com" — any public domain, including a competitor's. Pass this OR project_id, not both.
project_idstring (uuid)NoOne of your projects (from setup_project / list_projects) — the domain is taken from it. Pass this OR target, not both.
limitintegerNoHow many ranked keywords to return (1–1000, default 1000).
language_codestringNoLanguage code (default 'en').
location_codeintegerNoDataForSEO location code (default 2840 = United States).

Returns

A table with one row per ranked keyword — keyword, position, search volume, and the ranking URL — under a header saying how many of the domain's ranked keywords are shown; when you looked the site up by project_id, the header names that project. A domain with no organic rankings on record is reported as such.

Rankings are read for the United States in English unless you pass location_code and language_code. When a lookup left on that default comes back thin AND the domain carries a country-code TLD, the reply says so and names the TLD — it does not guess the matching location code, because a wrong code returns another country's rankings that look perfectly ordinary.

An input that is not a public domain, a call naming neither target nor project_id (or both), and a project_id that is not yours are all rejected before anything is charged; while live data is off you get the "not yet enabled" message instead — also free.

On this page