Get keyword metrics
Get average monthly searches, competition and bid ranges for a specific list of up to 200 keywords, with no expansion.
https://api.rankparse.com/v1/google-ads/keyword-metricsFree (daily caps apply)API key + connected Google Ads accountReturns metrics for an explicit list of keywords, with no expansion into related terms. Use it when you already have keywords and want them sized. It returns volume and competition, never rankings. To discover new keywords, use Get keyword ideas.
Each call counts as one request against your daily cap, whether it carries 1 keyword or 200, and only after Google answers successfully.
Body parameters
Send JSON with Content-Type: application/json. A body that is not valid JSON returns 400 invalid_json.
keywordsarray of stringsrequiredKeywords to look up. Blank entries are ignored. At most 200 are used: the rest are dropped and truncated is true. An empty or missing list returns 400 missing_keywords.
languagestringdefault languageConstants/1000Google language resource name. 1000 is English. Must match languageConstants/<digits>, otherwise 400 invalid_language.
geo_target_constantsarray of stringsdefault ["geoTargetConstants/2840"]Google location resource names. 2840 is the United States. Each must match geoTargetConstants/<digits>, otherwise 400 invalid_geo_target. Only the first 10 are used.
keyword_plan_networkstringdefault GOOGLE_SEARCHGOOGLE_SEARCH or GOOGLE_SEARCH_AND_PARTNERS. Any other value falls back to the default.
include_adult_keywordsbooleandefault falseOnly the literal true turns it on. The REST route accepts it; the MCP tool does not expose it.
Response
dataarrayOne entry per keyword Google returned metrics for.
Show propertiesHide properties
keywordstringThe keyword text.
close_variantsarray of stringsClose variants Google groups with this keyword. Empty when none.
metricsobjectavg_monthly_searches, competition, competition_index, low_top_of_page_bid_micros and high_top_of_page_bid_micros. Any can be null. Field meanings are on Get keyword ideas.
totalintegerEntries in data.
requestedintegerKeywords actually sent to Google, after trimming to 200.
truncatedbooleantrue when you sent more than 200 keywords. Treat the missing ones as "not asked for", not "no data".
max_keywordsintegerThe per-call limit (200).
customer_idstringThe Google Ads account the call ran against.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_json | The request body is not valid JSON. |
| 400 | missing_keywords | keywords is missing, not an array, or has no non-blank entry. |
| 400 | invalid_language | language is not a resource name like languageConstants/1000. |
| 400 | invalid_geo_target | geo_target_constants is not an array of names like geoTargetConstants/2840. |
| 400 | google_ads_not_connected, google_ads_no_account_selected | Connect Google Ads, or select an account, in the dashboard. |
| 429 | google_ads_user_quota_exceeded, google_ads_daily_quota_exceeded | A daily cap was reached. See retry_after. |
The other Google Ads errors (token, access and quota failures) are listed in the overview.
Related
MCP tool: get_google_ads_keyword_metrics (accepts keywords, language, geo_target_constants, keyword_plan_network).