Keyword Research API: Search Volume, CPC, Difficulty & Intent
Pricing
from $3.00 / 1,000 keyword with data
Keyword Research API: Search Volume, CPC, Difficulty & Intent
Keyword research API: Google search volume, CPC, keyword difficulty, search intent and up to 8 years of trends for 10,000 keywords per run, plus keyword ideas and optional Bing data. $3 per 1,000 keywords, $0.40 per 1,000 after the first 100. No-data keywords are free.
Pricing
from $3.00 / 1,000 keyword with data
Rating
0.0
(0)
Developer
Pravus
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Security
Limited permissionsShare
Two tools in one, with no subscription and no Google Ads account:
- Metrics: monthly Google search volume, CPC, competition, keyword difficulty, search intent and trends with up to ~8 years of monthly history, for up to 10,000 keywords per run.
- Keyword ideas: turn a few seed keywords into hundreds or thousands of related keywords, each with the same full data, sorted by search volume.
Optional Bing search volume ($0.25 per request) and Google SERP features. You pay only for keywords that return data, and the price drops to $0.40 per 1,000 after the first 100 keywords of a run.
Built for SEO teams, content planners, PPC managers and AI agents that need keyword data mid-task (works over Apify's MCP server in Claude, Cursor, ChatGPT and other clients).
What you get for each keyword
| Field | Meaning |
|---|---|
searchVolume | Average monthly Google searches |
monthlySearches | Monthly search volume history: up to ~8 years in metrics mode, the last 12 months for keyword ideas |
trendMonthlyPct, trendQuarterlyPct, trendYearlyPct | Percentage change in volume |
cpc | Average cost per click in USD |
competition, competitionLevel | Google Ads competition (0–1, LOW/MEDIUM/HIGH) |
lowTopOfPageBid, highTopOfPageBid | Top-of-page bid range in USD |
keywordDifficulty | How hard it is to rank in the top 10 organically (0–100) |
searchIntent, secondaryIntents | informational, commercial, transactional or navigational |
serpFeatures, serpResultsCount | Optional: which Google result features appear (featured snippet, People Also Ask, shopping…) |
bingSearchVolume, bingCpc, bingCompetition, bingMonthlySearches | Optional: Bing data (English, French, German) |
seedKeyword | Ideas mode ("contains"): the seed an idea came from |
found | false when there's no data for the keyword. These rows are free. |
Examples
Metrics for your keywords
{"keywords": ["running shoes", "best running shoes for flat feet", "trail running shoes"],"location": "United States","language": "en"}
Discover keyword ideas
{"mode": "ideas","keywords": ["running shoes"],"maxIdeas": 500,"minSearchVolume": 50}
ideaType: "related"(default): keywords related to all your seeds, for broad discovery (up to 200 seeds). Sorted by relevance; set"sortBy": "searchVolume"for biggest-first.ideaType: "contains": keywords that contain each seed phrase, e.g. "best running shoes for women" (up to 20 seeds; ideas are split across them).
Add Bing and SERP features
{ "keywords": ["running shoes"], "includeBing": true, "includeSerpInfo": true }
Location can be a country name ("Germany"), a two-letter code ("us", "uk", "de") or a numeric location code (2840).
Output example
{"keyword": "trail running shoes","found": true,"source": "metrics","location": "United States","language": "en","searchVolume": 165000,"cpc": 1.03,"competition": 1,"competitionLevel": "HIGH","keywordDifficulty": 3,"searchIntent": "transactional","secondaryIntents": [],"trendMonthlyPct": 22,"trendQuarterlyPct": 50,"trendYearlyPct": -87,"monthlySearches": [{ "year": 2026, "month": 9, "searchVolume": 201000 }],"dataUpdatedAt": "2026-10-01 07:02:03 +00:00"}
Pricing
Pay per use, with no subscription:
| Price | |
|---|---|
| Data request (up to 700 keywords, or up to 1,000 ideas), charged per successful request | $0.03 |
| Keyword with data: first 100 keywords of each run | $0.003 each ($3 per 1,000) |
| Keyword with data: every keyword after the first 100 in a run | $0.0004 each ($0.40 per 1,000) |
| Bing data request (optional, per 700 keywords or page of ideas) | $0.25 |
| Run | Cost |
|---|---|
| 10 keywords | $0.06 |
| 100 keywords | $0.33 |
| 1,000 keywords | $0.72 |
| 10,000 keywords | $4.71 |
| 500 keyword ideas | $0.49 |
- Keywords without data, invalid keywords and duplicates are never charged (the data request fee still applies to a successful request). Failed requests are never charged.
- Bing is charged per successful Bing request, only when you turn it on. Only keywords with Google data are sent to Bing.
- Free Apify plan: try it with up to 20 keywords or ideas per run (one seed keyword for "contains" ideas). Any paid Apify plan unlocks up to 10,000.
- Set a maximum cost per run in the run options and the Actor stops before doing work that would exceed it, so you're never charged past your limit.
Use it from code
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('pravus/keyword-overview').call({mode: 'ideas',keywords: ['running shoes'],maxIdeas: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Use it from an AI agent (MCP)
Add the Apify MCP server to your client and the agent can call this Actor as a tool, for example: "Find 200 keyword ideas around 'home espresso machine' with at least 500 monthly searches and difficulty under 30, then group them by search intent."
Pair it with competitor research
To see every keyword a competitor ranks for, the keywords they rank for and you don't (keyword gap), or who your organic competitors are, use Competitor Keywords, Keyword Gap & Competitor Finder.
FAQ
Where does the data come from? Google search volume and Ads metrics aggregated by a licensed SEO data provider, updated monthly. Difficulty and intent are computed from Google results data. Bing data comes from Microsoft Advertising.
Why is a keyword with an empty search volume charged? The database returned it with other data (CPC, difficulty or intent), and returned keywords are billed. Keywords it has no record of come back as found: false and are free.
Why does a keyword show found: false? It has too little search volume to be tracked in that location and language, or it's misspelled. You aren't charged for it.
Why are some year-over-year trends large? Trends compare the latest month with the same month a year earlier, so seasonal keywords (gifts, sports, holidays) can swing a lot.
Can I get data for other countries? Yes. Use the location field. Most countries are supported; Bing supports English, French and German.
Is there a limit? 10,000 keywords or ideas per run. Start more runs for bigger lists.