Skip to content
GrowthVector.io

Keyword Research API: Get Keyword Data Without a Monthly Subscription

Which keyword research API costs the least per 1,000 keywords?

Updated

A keyword research API charges per request, per credit or per row, so your cost depends on how many keywords you send and which data you fetch.

This guide compares what each API costs per 1,000 keywords, how fast you can call it, and what access you need first. Where a vendor documents a request, its section shows it.

We may earn a commission from some links on this page.

Related guides: digital marketing tools directory.

$0.06

per DataForSEO task of up to 1,000 keywords on the standard queue

10,000

keywords per Google Keyword Planner historical metrics request

50 units

minimum charge for each paid Ahrefs API request

2,000,000

units in the smallest Semrush API package

The short version

  • DataForSEO's standard queue is the cheapest source here at $0.06 per task of up to 1,000 keywords, so batch full tasks: one keyword per task costs $60 per 1,000.
  • The Google Ads API returns Keyword Planner data only with Basic or Standard access. Explorer access blocks the planning services.
  • Semrush and Ahrefs need a paid plan. Semrush charges 10 units per Keyword Overview line, and Ahrefs charges at least 50 units per request.
  • Keywords Everywhere sells credits. Its $80 pack of 200,000 credits works out to 40 cents per 1,000 keywords.
  • Keyword Planner volumes are estimates, and its competition score is not SEO difficulty.

Cost and limits side by side

Cost per 1,000 keywords

The cheapest per-keyword price comes first.

SourceCost per 1,000 keywordsKeywords per requestRate limitSubscription
DataForSEO, standard queue$0.06 per task of up to 1,000 keywords; one keyword per task is $60Up to 1,00010,000 calls per minute; up to 100 tasks per POSTNo, pay as you go
DataForSEO, live mode$0.09 per task of up to 1,000 keywordsUp to 1,00012 requests per minute per accountNo, pay as you go
DataForSEO Labs, keyword ideas$0.132 per 1,000 ideas returned ($0.012 + 1,000 x $0.00012)One task per live call10,000 calls per minute; 30 at onceNo, pay as you go
Google Ads API, Keyword PlannerNot priced per requestUp to 10,00015,000 operations per day at Basic accessNo plan, but the ad account needs billing details
Keywords Everywhere, credit pack$0.40 ($80 for 200,000 credits)Up to 100Not statedNo, packs need no plan
Keywords Everywhere, Bronze plan$0.84 ($84 a year for 100,000 credits)Up to 100Not statedYes, $7 a month billed annually
Semrush APINo public price per unit. Keyword Overview uses 10,000 units per 1,000 keywords (10 units per line)Up to 100 per batch requestNot statedYes, plus unit packages
Ahrefs APIAt least 500 units per 1,000 keywords: 10 requests of 100 rows, each at the 50-unit minimumUp to 100 rows on Lite60 requests per minuteYes, eligible paid plan from $129 a month
Moz APIAbout $26.67 (Fetch Keyword Metrics bills 4 rows for one keyword, so $20 for 3,000 rows covers 750 keywords)Not statedOne request every ten seconds on the free tierFree tier with 50 rows a month, or plans from $20 a month
SerpApi, Trends and autocompleteNot keyword volume. Starter is $25 per 1,000 searchesNot applicable200 successful searches per hour on StarterFree plan, or Starter at $25 a month
Bing Webmaster APIMicrosoft's pages list no priceNot documentedNot documentedBing Webmaster Tools account
Read the prices as list prices
Prices are list prices from each vendor's pricing page in October 2026. DataForSEO's standard queue takes 1 to 3 hours per task, so it fits batch work, not a live tool.

Pick a route by your job

  1. 1Need Keyword Planner volume with no monthly plan: use DataForSEO. The minimum top-up is $50, and the balance never expires.
  2. 2Need Google's own volume for your own ad account: use the Google Ads API at Basic or Standard access.
  3. 3Need volume history and volume by country in one SEO suite: use Ahrefs or Semrush, on a paid plan.
  4. 4Need only Google Trends or autocomplete: use SerpApi. It returns no Keyword Planner volume.
  5. 5Need to test before you pay: use Ahrefs free test queries or the Moz free tier.

Google Ads API: the access level decides

Access levels decide what you can call

Access is set per Google Cloud project.

Google sunset developer tokens on September 9, 2026. Access levels now apply to each Google Cloud project. Operations count over a sliding 24-hour window, and a call over the limit returns an error.

Access levelAccountsOperations per dayWhat it takes
TestTest accounts only15,000Not stated in the access table
ExplorerTest and production accounts2,880 for production; 15,000 for testAutomated review in most cases
BasicTest and production accounts15,000 for bothBrand verification of the Cloud project first
StandardTest and production accountsUnlimitedManual audit; the table lists 10 business days for review

Explorer access blocks the planning services on production accounts. These include KeywordPlanIdeaService, KeywordPlanService and the other KeywordPlan services. Use Basic or Standard access to call them.

Standard access allows the permissible use 'researching keywords and recommendations'. Google meant that use for tools that help create and manage Google Ads campaigns.

Billing comes first
The Keyword Planner needs billing details and a finished account setup, even for keyword suggestions. Add both before you apply for an access level.

The Keyword Planner call

The official client-library sample, abridged.

One call returns historical metrics for up to 10,000 keywords, with up to 10 geo targets. The response includes average monthly searches, monthly volumes for up to 4 years, a competition index from 0 to 100 and a 20th percentile top-of-page bid.

GenerateKeywordHistoricalMetricsRequest request =
    GenerateKeywordHistoricalMetricsRequest.newBuilder()
        .setCustomerId(String.valueOf(customerId))
        .addAllKeywords(Arrays.asList("mars cruise", "cheap cruise", "jupiter cruise"))
        // ... geo target, language and network settings from the official sample ...

The sample sets a geo target and a language constant, and it uses the Google Search network. Set the United States as the geo target and English as the language. Then call generateKeywordHistoricalMetrics on the KeywordPlanIdeaServiceClient.

The API merges close variants. Results for car and cars come back as one result, so you can get fewer results than keywords you sent.

GenerateKeywordIdeas already returns historical metrics for each idea. Use the historical metrics call only when you already hold a keyword list. The full sample is in Google's historical metrics guide.

DataForSEO: pay per task

Pricing by task, not by keyword

A task can hold up to 1,000 keywords, so the batch size sets the cost.

Endpoint and modePriceSpeed and limits
Google Ads search volume, standard queue$0.06 per task; $60 per 1M keywords1 to 3 hours turnaround
Google Ads search volume, live mode$0.09 per task; $90 per 1M keywordsUp to 7 seconds on average; 12 requests per minute per account
Labs keyword ideas, live mode$0.012 per task plus $0.00012 per itemAbout 2 seconds on average; 10,000 calls per minute; 30 at once
  • Pay as you go. No subscription, a $50 minimum top-up, and a balance that never expires.
  • One request costs the same for 1 keyword or 1,000 keywords. Send the full list in each request.
  • Google Ads data comes from the Google Ads API, so updates follow Google, generally in the middle of the month.
  • Keywords in restricted categories, such as weapons, tobacco, drugs, violence and terrorism, return no data.
  • Labs clickstream data is optional. Setting include_clickstream_data=true doubles the request cost.
  • DataForSEO says its route needs no developer token, approval queue or ad spend. That is the vendor's claim.

For account setup, see the OpenSEO setup guide. For every DataForSEO endpoint price, see the DataForSEO API guide.

Search volume request

The official curl example, unchanged except for the credential placeholder.

Send up to 1,000 keywords in one array. Replace YOUR_BASE64_CREDENTIALS with your Base64 login and password.

curl --location --request POST "https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live" --header "Authorization: Basic YOUR_BASE64_CREDENTIALS" --header "Content-Type: application/json" --data-raw '[ { "location_code": 2840, "keywords": [ "buy laptop", "cheap laptops for sale", "purchase laptop" ], "date_from": "2021-08-01", "search_partners": true } ]'

The sample response in the docs returns a cost of 0.09 and a search_volume of 2900 for 'buy laptop'.

Keyword ideas request

Labs returns related terms, not only volume for the keywords you send.

Labs keyword ideas returns related terms for your seed keywords, with optional SERP data. It runs in live mode only.

curl --location --request POST "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_ideas/live" --header "Authorization: Basic YOUR_BASE64_CREDENTIALS" --header "Content-Type: application/json" --data-raw '[ { "keywords": [ "phone", "watch" ], "location_code": 2840, "language_code": "en", "include_serp_info": true, "limit": 3 } ]'

Labs bills $0.012 per task plus $0.00012 per item returned. Cost = $0.012 + 1,000 x $0.00012 = $0.132 for a run of 1,000 items.

Semrush and Ahrefs: units and plans

Semrush: units per line

Each returned line costs units, and you buy units in packages.

ReportAPI units per line
Keyword Overview, one database10
Keyword Overview, historical data50
Broad Match Keyword20
Related Keywords40

Batch Keyword Overview covers up to 100 keywords at 10 units per line. Historical data costs more: in the Domain Overview example, historical data costs 50 units per line and current data costs 10.

  • Lines = 2,000,000 units / 10 units per line = 200,000 Keyword Overview lines.
  • Units = 5,000 keywords x 10 units per line = 50,000 units.
  • Units = 50,000 Related Keywords lines x 40 units per line = 2,000,000 units.

Packages come in 2,000,000, 5,000,000, 10,000,000 and 20,000,000 units. Units renew with the plan, and unused units expire instead of rolling over.

Semrush's API access page gives no price per unit, so the cost per 1,000 keywords depends on the package you buy in your account.

Semrush request and error

The v3 keyword endpoints are deprecated for new integrations. Semrush points new work to the Keyword Reports API v4, so check the v4 unit prices in the Semrush docs before you build on it.

Balance at zero
When the balance reaches zero, the API returns ERROR 132 :: API UNITS BALANCE IS ZERO.
GET https://api.semrush.com/?type=phrase_this&key=API_KEY&phrase=seo&export_columns=Ph,Nq,Cp,Co,Nr,Td&database=us
Keyword;Search Volume;CPC;Competition;Number of Results;Trends
seo;110000;14.82;0.5;678000000;

The response is semicolon-separated text, not JSON. Set the export_columns parameter to the fields you need.

Which plan carries the API

Two Semrush sources disagree on the plan name.

Semrush's developer docs say to upgrade to the SEO Business plan to buy API units and generate a key. Its public pricing page lists no plan by that name. It places 'Advanced API data integration' on its Advanced plan only.

Its SEO plan is listed at $139 a month, or $117.33 a month billed annually, with 5 websites and 500 tracked keywords. Confirm which plan carries the API in your account before you buy units.

The Trends API is separate. It does not use Standard API units, and its default limit is 10,000 requests a month.

Ahrefs: 50 units per request

A paid plan is required, and the minimum charge applies to every paid request.

PlanPriceMax rows per request
Lite$129 a month100
Standard$249 a month250
Advanced$449 a month500
Enterprise$1,499 a month, annual commitmentUnlimited
  • Every paid request costs at least 50 units. Units once used are non-refundable.
  • Cost is the larger of 50 units and the per-row cost times the number of rows.
  • A field costs 1 unit by default. Some metrics cost 5 or 10 units.
  • Requests served from cache cost nothing.
  • Each response reports the units used in its headers, including x-api-units-cost-total-actual.
  • The default limit is 60 requests per minute. Above it, the API returns HTTP 429.

The pricing page lists credits per user, while the docs say paid plans include a monthly API unit allowance. Neither gives the API allowance for each plan.

Free test queries work on any paid plan. A request that uses only ahrefs, yep or firehose as the keyword costs no units, but you still need an API key.

GET https://api.ahrefs.com/v3/keywords-explorer/overview?country=us&keywords=ahrefs&select=keyword,volume,traffic_potential,difficulty
Authorization: Bearer YOUR_API_KEY

This is not a no-subscription route. The cheapest plan in the table above is Lite.

Moz, SerpApi and Keywords Everywhere

Moz API: rows, not keywords

The free tier is small, and every call draws down rows.

Moz bills rows. A keyword call bills one row for each returned value, and null values are discounted. Fetching search intent raises the quota cost.

Price per monthRows per monthOverage
$0 (free tier, one request every ten seconds)50Not stated
$203,000Not available
$7515,000$5 per 1,000 rows
$12550,000$25 per 10,000 rows
$250120,000$20 per 10,000 rows
$500500,000$10 per 10,000 rows
  • Moz Pro does not include paid API access. The API is a separate product.
  • Every plan includes keyword metrics, keyword suggestions, search intent and ranking keywords calls.
  • Search intent is opt-in through options.include_intent, which defaults to false.
  • Keyword data comes from Moz's own index, so treat its volume as Moz's own estimate, not Google's.

The keyword metrics method is data.keyword.metrics.fetch. It returns difficulty, volume, organic CTR, priority and search intent. A separate volume method and a keyword suggestion list method also exist.

Read the parameters for the keyword method on its method page, where they sit in a collapsed section.

curl -X POST https://api.moz.com/jsonrpc -H "x-moz-token: <YOUR_MOZ_TOKEN>" -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "id": "99edd07d-fd2e-4a9c-834f-64a6629452cf", "method": "quota.lookup", "params": { "data": { "path": "api.limits.data.rows" } } }'

The quota lookup checks your row quota. The API is JSON-RPC, sent as POST to https://api.moz.com/jsonrpc with the x-moz-token header.

SerpApi: Trends and autocomplete, not volume

A useful Trends source, and no Keyword Planner volume.

PlanPrice per monthSearches per monthSuccessful searches per hour
Free$025050
Starter$251,000200
Developer$755,0001,000
Production$15015,0003,000
Big Data$27530,0006,000

Only successful searches count. Cached, errored and failed searches do not.

Cost = $25 / 1,000 searches = $0.025 per search. That is a price per search, not a price per keyword of volume.

SerpApi offers no Keyword Planner search-volume endpoint. Use it for Google Trends and Google Autocomplete.

GET https://serpapi.com/search?engine=google_trends&q=coffee,milk,bread,pasta,steak&data_type=TIMESERIES&api_key=YOUR_KEY

Interest over time and compared breakdown by region take several queries per search. Other Trends data types take a single query. Autocomplete uses engine=google_autocomplete with q as the query.

Keywords Everywhere: credits per keyword

Credits are the unit: one credit per keyword result, whether or not it has volume.

PlanPriceCredits per yearCost per 1,000 credits
Bronze$7 a month, $84 billed annually100,000$0.84
Silver$14 a month, $168 billed annually400,000$0.42
Gold$40 a month, $480 billed annually2 million$0.24
Platinum$120 a month, $1,440 billed annually8 million$0.18
One-off packCreditsCost per 1,000 credits
$80200,000$0.40
$150500,000$0.30
$5002 million$0.25
$1,3006 million$0.217
$2,70015 million$0.18
$8,00050 million$0.16

Among the subscription plans, Platinum has the lowest cost per credit ($0.18), but it is the largest annual commitment. The $8,000 pack is cheaper still at $0.16, and pack credits expire after one year.

  • One credit covers one keyword result, and the API takes up to 100 keywords per request.
  • A credit is spent even when the keyword has no search volume.
  • The dataSource value gkp returns Google Keyword Planner data only. The value cli adds Clickstream data.
  • All API methods are open on every plan, including Bronze.
  • An invalid subscription or too few credits returns HTTP 402.
POST https://api.keywordseverywhere.com/v1/get_keyword_data
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-type: application/json

{"kw":["keywords tool","keyword planner"],"country":"us","currency":"usd","dataSource":"cli"}

The response includes vol, cpc, competition, a 12-month trend array, credits left and credits_consumed. Get Credit Balance is GET /account/credits.

Bing and Google Trends: narrow sources

Bing Webmaster API: narrow keyword stats

The Bing Webmaster API needs a Bing Webmaster Tools account. Use OAuth 2.0, which Microsoft recommends, or an API key. Each user can generate one API key.

Two methods return keyword data. GetKeywordStats returns historical statistics for a query. GetKeyword returns impressions for a chosen period.

GetKeywordStats(System::String ^ q, System::String ^ country, System::String ^ language)
GetKeyword(System::String ^ q, System::String ^ country, System::String ^ language, DateTime startDate, DateTime endDate)
Where to start with Bing
Microsoft's method pages list POX and JSON samples. Start with the getting started page for the SOAP endpoint and the sample format.

Microsoft labels these reference pages as prerelease, so they may change. The pages give no price, quota or definition of the volume figure.

Bing data covers searches on Bing only, so expect it to differ from Google volume.

Google announced the Trends API in alpha on July 24, 2025. Access is by application only, for a limited set of developers.

The API returns consistently scaled data, not a 0 to 100 score per request. You can merge requests and compare dozens of terms, while the Trends website compares eight.

The website scales each term from 0 to 100 against its share of all searches. The result is search interest, not search volume. Trends uses a sample of searches, not the full set.

The Trends API alpha is open by application only, so there is no public request example. For a working Trends call, use the SerpApi Trends endpoint shown in the SerpApi section.

Accuracy: what the numbers mean

Volume is an estimate

Google calls its volumes approximate. The average monthly searches field is an approximate average over 12 months, and the monthly search volumes field holds approximate counts for each month.

Google describes Keyword Planner volumes as estimates, not counts. Close variants merge into one result, so the volume for car can include cars.

Competition is not difficulty

Keyword Planner competition is the number of ad slots filled divided by the slots available, scaled from 0 to 100. It measures advertiser demand, not how hard it is to rank in organic results.

For ranking difficulty, use a metric built for SEO. Moz's keyword metrics call returns a difficulty field.

Ranges and vendor claims

A 2016 Search Engine Land report said advertisers with little or no spend see volume in ranges in the Keyword Planner interface. The report covers the interface, not the API, and it is ten years old.

Google said most advertisers see Keyword Planner data as usual, while advertisers with a lower monthly spend could see limited data.

DataForSEO says the Keyword Planner interface shows ranges unless you spend on ads, and that its API returns exact values. Treat the second part as the vendor's claim.

Different sources, different numbers

Keyword Planner data covers Google Search only and refreshes monthly. Keywords Everywhere can return Keyword Planner data alone or with Clickstream data. Moz uses its own index. Trends returns a relative interest score.

Pick one source per project and compare keywords only inside it. For the wider process of keyword research, see SEO fundamentals.

Common Questions

Why does my Keyword Planner call fail on a Cloud project with Explorer access, and what should I apply for?

Explorer access blocks the planning services, including KeywordPlanIdeaService and KeywordPlanService, on production accounts. Apply for Basic access. It needs brand verification of the Cloud project first and allows 15,000 operations a day. Standard access is unlimited, but it needs a manual audit, and its permissible use is for tools that help build campaigns. Google lists 10 business days for Standard review.

What does 1,000 keywords cost on DataForSEO and on Keywords Everywhere?

DataForSEO bills per task, and one task holds up to 1,000 keywords. That is $0.06 on the standard queue or $0.09 in live mode, so 1,000 keywords cost $0.06 to $0.09 when every task is full. Keywords Everywhere bills one credit per keyword. The $80 pack of 200,000 credits works out to 40 cents per 1,000 keywords, and the Bronze plan works out to 84 cents per 1,000. Queue jobs take 1 to 3 hours, so batch work fits the queue.

How many Semrush API units does a 5,000-keyword list use, and what is not public?

Keyword Overview costs 10 units per line, so 5,000 keywords use 50,000 units. Packages start at 2,000,000 units, and unused units expire at renewal. Semrush's API access page gives no price per unit. Its developer docs and its pricing page also disagree on which plan includes API units, so confirm the plan and the unit price in your account before you buy.

When does an Ahrefs API request cost more than 50 units, and can I avoid a subscription?

Each request costs the larger of 50 units and the per-row cost times the number of rows. A field costs 1 unit by default, and some metrics cost 5 or 10 units, so a large request with expensive fields costs more than the floor. Cached requests cost nothing, and the response headers report the units used. The API needs an eligible paid plan, and Lite at $129 a month is the cheapest plan in the table, so this is not a no-subscription route.

Why do two keyword APIs return different volumes for the same keyword?

Google calls its volumes approximate, and it merges close variants such as car and cars into one result. Keywords Everywhere can return Keyword Planner data alone or with Clickstream data. Moz uses its own keyword index, and Google Trends returns a relative interest score rather than a count. Pick one source per project and compare keywords only inside that source.

Can I use Keyword Planner's competition score as keyword difficulty?

No. Keyword Planner competition is the share of ad slots filled, scaled from 0 to 100. It shows advertiser demand, not how hard it is to rank in organic results. For ranking difficulty, use a metric built for SEO, such as the difficulty field in Moz's keyword metrics call. Then look at the results page for the keyword before you pick a target.

Sources