Competitor Keywords — Ranked Keywords of Any Domain avatar

Competitor Keywords — Ranked Keywords of Any Domain

Pricing

from $1.40 / 1,000 rows

Go to Apify Store
Competitor Keywords — Ranked Keywords of Any Domain

Competitor Keywords — Ranked Keywords of Any Domain

Every Google keyword a competitor's domain or page ranks for, with position, ranking URL, search volume, difficulty and intent. Or find who your organic competitors are. No Semrush or Ahrefs account needed.

Pricing

from $1.40 / 1,000 rows

Rating

0.0

(0)

Developer

Salih Küçükkayış

Salih Küçükkayış

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

12 hours ago

Last modified

Categories

Share

See every Google keyword a competitor ranks for: position, ranking URL, search volume, keyword difficulty, intent and estimated clicks, highest volume first. Works for a whole domain, a subdomain or one page, in up to 10 countries per run. Or find out who your real organic competitors are. No Semrush or Ahrefs account needed.

$2 per 1,000 rows ($1.80, $1.60 and $1.40 on the Starter, Scale and Business plans), plus $0.02 per lookup. A lookup is one page of up to 1,000 rows for one domain in one country. Domains with no rankings have no row fee, and failed lookups are free. No subscription, and platform usage is included. (Plus a tiny $0.00005 start fee per run.)

What you get

  • Every keyword a competitor ranks for. Up to 10,000 per domain and country, highest search volume first, with the position, the page that ranks and its title.
  • Movement. Previous position and whether the keyword is new, up or down since the last check.
  • The numbers you sort by. Search volume, estimated monthly clicks to that page, keyword difficulty (0 to 100), search intent, CPC and 12-month trend on every row.
  • Domain, subdomain or one page. asana.com, blog.asana.com or https://asana.com/pricing.
  • Filter before you pay. Position (for example first page only), minimum volume, maximum difficulty, intent and "ranking URL contains /blog/" are applied at the source.
  • Organic competitors. For any domain, the sites that rank for the most of the same keywords, with how many they share, their average position on them, and their total keywords and estimated clicks. Giant sites like Wikipedia and Amazon are left out unless you want them.
  • Beyond the blue links. Optionally include paid ads, featured snippets, local packs and AI Overview citations.
  • Many domains in one run. Paste a list, link a CSV, or point to another Actor's dataset.

Typical uses

  • Steal a content plan. Ranked keywords of a competitor's /blog/, positions 1 to 10, difficulty under 40: their best-performing articles you can realistically match.
  • Keyword gap by hand. Run your domain and two competitors, then compare in a spreadsheet (or merge with Dataset Merge & Dedup Datasets).
  • Track who you are up against. Competitors mode for your domain shows the sites Google actually puts next to you, which are often not the ones you think.
  • Agency prospecting. A list of 200 prospect domains, first-page keywords only, to size each one's search presence.

Input

{
"domains": ["asana.com", "https://monday.com/blog/"],
"mode": "ranked",
"countries": ["US"],
"maxResults": 1000,
"maxPosition": 10
}
FieldMeaning
domainsDomains, subdomains or page URLs, up to 1,000 per run.
moderanked (default) or competitors.
countriesUp to 10 countries: two-letter codes or names. Default US.
languageOptional language code. Empty means each country's main language.
maxResultsRanked: rows per domain and country, up to 10,000. Default 500.
maxCompetitorsCompetitors: domains per domain and country, up to 1,000. Default 20.
maxPositionOnly positions up to this one (10 = first page).
minSearchVolume, maxKeywordDifficulty, intents, urlContainsRanked: filters. Dropped rows are not charged.
resultTypesRanked: organic (default), paid, featured_snippet, local_pack, ai_overview_reference.
excludeTopDomainsCompetitors: leave out sites that rank for almost everything. Default true.
domainsUrl, datasetId, domainFieldOther ways to pass domains. Fields named domain, url, website or target are found automatically.

Output

Ranked keywords, one row per keyword, domain and country:

{
"target": "asana.com",
"keyword": "performance improvement plan",
"country": "US",
"position": 15,
"absolutePosition": 20,
"previousPosition": 43,
"positionChange": "up",
"url": "https://asana.com/resources/performance-improvement-plan-template",
"title": "Performance improvement plan template: Free PIP PDF",
"resultType": "organic",
"searchVolume": 1000000,
"keywordDifficulty": 17,
"difficultyLevel": "easy",
"intent": "informational",
"cpcUsd": 5.29,
"trend3mPct": -33,
"trendDirection": "falling",
"status": "ok",
"charged": true
}

A real row from a run on 17 October 2026 (asana.com, United States: 500 keywords, one lookup).

Competitors, one row per competing domain:

{
"target": "asana.com",
"competitor": "monday.com",
"country": "US",
"sharedKeywords": 18450,
"avgPositionShared": 21.4,
"sharedKeywordsTop10": 2310,
"competitorKeywords": 96200,
"competitorEstimatedTraffic": 1240000,
"type": "competitor",
"status": "ok",
"charged": true
}

This competitor row shows the shape only; its figures are not real data.

FieldMeaning
position, absolutePositionPosition among results of the same type, and among all elements on the page
previousPosition, positionChangeLast check's position; new, up, down or same
url, title, resultType, isFeaturedSnippetThe page that ranks and how it appears
searchVolume, cpcUsd, competitionLevel, monthlySearches, trend3mPct, trendDirectionKeyword demand and its trend
estimatedTrafficEstimated monthly clicks from this keyword to this page, from its position and search volume
keywordDifficulty, difficultyLevel, intent0 to 100 difficulty with a label, and the main search intent
serpFeatures, lastUpdatedWhat else is on that results page, and when it was last checked
sharedKeywords, avgPositionShared, sharedKeywordsTop3, sharedKeywordsTop10Competitors: keywords both domains rank for, and how well the competitor ranks on them
competitorKeywords, competitorEstimatedTrafficCompetitors: all the competitor's ranking keywords and estimated monthly clicks
status, note, chargedok, or why there is no row; charged is true only on rows you paid for

Rows with no row fee: no_data (no rankings found; the lookup fee is charged), invalid_target, input_error, spending_limit, free_plan_limit, skipped (ten lookups in a row returned nothing), throttled and provider_error.

What it costs

RunPrice (no discount)
Top 500 keywords of 1 domain$1.02
Top 1,000 keywords of 10 domains$20.20
First-page keywords of 200 prospects (≈ 50 each)$24.00
20 competitors of 1 domain$0.06

These assume every row is delivered. On a paid Apify plan the row fee is 10 %, 20 % or 30 % lower.

Apify free plan

Every lookup costs us real money at the data source, and free-plan runs earn nothing. So on the Apify free plan this Actor gives one lookup a day with up to 20 rows for the first domain in the first country. Everything else comes back as uncharged free_plan_limit rows. Any paid Apify plan has no such limits.

Covered countries

The same 92 countries as Keyword Research, including the United States, United Kingdom, Canada, Australia, India, most of Europe and Latin America, Japan, South Korea and Türkiye. Other countries come back as an uncharged input_error row.

Using it from an AI agent or code

The Actor works as a tool through the Apify MCP server and through the Apify API. Send {"domains": ["example.com"], "countries": ["US"], "maxPosition": 10}.

Next steps with your results

Good to know

  • Rankings come from a licensed SEO data provider that checks Google results at scale. Nothing is scraped from Semrush, Ahrefs or any other tool, and no account with them is needed.
  • Positions and clicks are estimates from the provider's last check of each keyword, not live rankings and not the site's own analytics.
  • This Actor is not affiliated with, endorsed by or sponsored by Google, Semrush or Ahrefs. Names are trademarks of their owners.
  • A run that is moved to another server, or resurrected, continues where it stopped. Nothing is looked up or charged twice.
  • Pricing: one result charge per delivered row, one lookup charge per page the database answers, plus $0.00005 when a run starts.
  • Questions or a missing feature: open an issue on the Actor page.

FAQ

Can I look up a single page? Yes: pass the full URL, for example https://example.com/pricing.

Why are the positions different from what I see in Google? Google results change by location, device and person. These are the provider's last check for the chosen country, not a live search.

How do I get only first-page keywords? Set maxPosition to 10.

More from this developer

  • Keyword Research: keyword ideas, suggestions and related keywords with volume, difficulty and search intent, $2 per 1,000 keywords.
  • Domain SEO Overview: organic keywords, estimated traffic and top-10 rankings for thousands of domains, $5 per 1,000 domains.
  • Google SERP Rank Tracker: Google positions for your keywords by country and device, with AI Overview checks, $2 per 1,000 result pages.
  • Google Trends API: interest over time, by region and related queries for hundreds of keywords, $6 per 1,000 queries.
  • Keyword Search Volume: Google Ads search volume, CPC and up to 48 months of trend for a keyword list, $2 per 1,000 keywords.
  • Sitemap Extractor: every URL a website lists in its sitemaps, with lastmod, images and hreflang, $0.25 per 1,000 URLs.
  • Broken Link Checker: crawl a site and find broken links and images, with the pages they are on.
  • Tech Stack Detector: which CMS, ecommerce platform, analytics and hosting a website uses, $1.50 per 1,000 websites.
  • Website Screenshot + Change Detection: screenshots of many URLs on desktop and mobile, with visual change detection between runs.
  • Dataset Merge & Dedup Datasets: merge, dedupe and filter the results of several runs into one dataset.