Home / Tools / Competitor Keywords
Keyword research
Competitor Keywords
See every Google keyword a competitor ranks for: position, URL, search volume, CPC, keyword difficulty, intent and estimated traffic for any domain or page, in 90+ countries. Bulk domains, sortable, filterable. No SEO suite subscription needed.
- Price: $2 per 1,000 × ranked keyword
- Prefilled example: finished in 4 s on Oct 19, 2026 (Saved 20 ranked keywords for 1 domain(s) in United States.)
- Works with: Apify Console, REST API, Python, JavaScript, MCP (Claude, Cursor, VS Code), n8n, Make, Zapier
- Last updated: 2026-10-19
Sample output
Real rows from the prefilled example run on Oct 19, 2026.
Full JSON of one real output row (4 rows in the example dataset)
{
"domain": "upliftdesk.com",
"keyword": "uplift desk",
"position": 1,
"position_absolute": 1,
"result_type": "organic",
"url": "https://www.upliftdesk.com/",
"title": "UPLIFT Desk | Office Furniture that Benefits You",
"search_volume": 40500,
"cpc": 2.62,
"competition": "HIGH",
"keyword_difficulty": 10,
"search_intent": "transactional",
"estimated_traffic": 5491.1,
"estimated_traffic_cost_usd": 14386.59,
"previous_position": 1,
"position_change": "same",
"serp_features": [
"organic",
"people_also_ask",
"perspectives",
"... 5 more"
],
"is_featured_snippet": false,
"search_volume_trend": {
"monthly": 0,
"quarterly": 0,
"yearly": 0
},
"location": "United States",
"language": "English",
"serp_checked_at": "2026-07-30T04:57:13Z",
"scraped_at": "2026-10-19T02:07:03Z"
}Output fields
From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.
| Field | Type | Description |
|---|---|---|
domain | string | Domain or page URL the keywords were looked up for |
keyword | string | Keyword the domain ranks for in Google |
position | integer | Google rank among results of the same type (1 = top) |
position_absolute | integer | Absolute position on the results page, counting all SERP elements |
result_type | string | Type of the ranking result: organic, paid, featured_snippet, local_pack or ai_overview_reference |
url | string | URL of the ranking page |
title | string | Title of the ranking result |
search_volume | integer | Average monthly Google searches for the keyword |
cpc | number | Average Google Ads cost per click (USD) |
competition | string | Google Ads competition level: LOW, MEDIUM or HIGH |
keyword_difficulty | integer | SEO keyword difficulty, 0-100 (higher = harder to rank) |
search_intent | string | Main search intent: informational, navigational, commercial or transactional |
estimated_traffic | number | Estimated monthly organic visits this ranking brings the domain |
estimated_traffic_cost_usd | number | What that traffic would cost per month in Google Ads (USD) |
previous_position | integer | Previous absolute position, when known |
position_change | string | Change since the previous check: new, up, down or same |
serp_features | array | SERP feature types present on the results page (e.g. people_also_ask, ai_overview) |
is_featured_snippet | boolean | True when the ranking result is a featured snippet |
search_volume_trend | object | Search volume change in % (monthly, quarterly, yearly) |
location | string | Country the data is for, e.g. "United States" |
language | string | Language name, e.g. "English" |
serp_checked_at | string | When the Google results page was last checked (ISO 8601, UTC) |
scraped_at | string | When this row was produced (ISO 8601, UTC) |
Pricing
Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Ranked keyword main Charged once per ranked keyword returned for a domain. | $0.002 | $0.0019 | $0.0018 | $0.0016 |
| Domain lookup Charged once per domain for each block of up to 1,000 ranked keywords fetched. | $0.03 | $0.03 | $0.03 | $0.03 |
Examples on the Free plan: 100 ranked keywords = $0.20, 1,000 ranked keywords = $2, 10,000 ranked keywords = $20. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).
Example input
This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.
{
"domains": [
"backlinko.com"
],
"location": "United States",
"language": "English",
"maxKeywordsPerDomain": 20
}Use it from code, no-code or an AI agent
cURL (one request, returns rows)
curl -X POST \
"https://api.apify.com/v2/acts/wrenfield-data~competitor-keywords/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains": ["backlinko.com"], "location": "United States", "language": "English", "maxKeywordsPerDomain": 20}'Python
# pip install apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/competitor-keywords").call(
run_input={
"domains": [
"backlinko.com"
],
"location": "United States",
"language": "English",
"maxKeywordsPerDomain": 20
},
max_total_charge_usd=1.00, # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/competitor-keywords').call({
"domains": [
"backlinko.com"
],
"location": "United States",
"language": "English",
"maxKeywordsPerDomain": 20
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);MCP (Claude, Cursor, VS Code, any MCP client)
{
"mcpServers": {
"wrenfield-competitor-keywords": {
"url": "https://mcp.apify.com?tools=wrenfield-data/competitor-keywords"
}
}
}Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--competitor-keywords. More client setups on the MCP page.
n8n, Make, Zapier
Use the official Apify node or app, pick Run Actor, enter wrenfield-data/competitor-keywords and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.
FAQ
How much does Competitor Keywords cost?
$0.002 per ranked keyword on the Apify Free plan ($2 per 1,000), billed per result by Apify with no subscription. Plus $0.03 per domain lookup. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.
Where does the data come from?
From a licensed SEO database that tracks Google results for hundreds of millions of keywords, refreshed regularly. serp_checked_at shows when each result was last checked.
Why is estimated_traffic low for a high-volume keyword?
Traffic depends on position. A keyword with 1M searches at position 14 sends far fewer clicks than one at position 1.
Can I check a single page instead of a whole domain?
Yes. Paste the full URL (e.g. https://example.com/blog/post).
Does it include paid (Google Ads) keywords?
Set Result types to Organic + paid.
Related tools
Keyword Search Volume
Google Keyword Planner volume, CPC, competition and 12-month trends, no Ads account.
Keyword Research Tool Launching soon
Keyword ideas with volume, KD, intent and SERP features in one row.
Keyword Difficulty Checker
KD 0-100 and search intent for thousands of keywords at once.
Google Autocomplete Expander Launching soon
Long-tail and question keywords from Google and YouTube suggestions.
People Also Ask Scraper Launching soon
PAA question trees, related searches and AI Overview text.
Google Trends Scraper
Interest over time, by region, related queries and Trending Now.
Compare and plan
Try Competitor Keywords now
Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.
Open on Apify