Get keyword ideas
Discover new keyword ideas from seed terms and/or a URL, with average monthly searches, competition and top-of-page bid ranges.
https://api.rankparse.com/v1/google-ads/keyword-ideasFree (daily caps apply)API key + connected Google Ads accountDiscovers new keyword ideas from seed keywords, a page URL, or both, each with average monthly searches, competition and top-of-page bid range. Use it for keyword research and content planning. It returns volume and competition, never rankings. To size keywords you already have, use Get keyword metrics.
Each call counts as one request against your daily cap, however many ideas it returns, 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 stringsSeed keywords. Blank entries are ignored and only the first 20 are used. At least one of keywords or url is required, otherwise 400 missing_seed.
urlstringA page or website URL to derive ideas from. If both keywords and url are sent, Google uses them together.
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 falseInclude adult keywords. Only the literal true turns it on.
limitintegerMaximum ideas to return. Clamped to 1 to 1000. When omitted, Google decides the page size.
language and geo_target_constants are Google resource names, not bare IDs. Sending "2840" instead of "geoTargetConstants/2840" fails fast with a 400 and does not use your cap. Google publishes the full lists of language and geo target IDs.
Response
dataarrayKeyword ideas.
Show propertiesHide properties
keywordstringThe keyword text.
metricsobjectSee The metrics object.
totalintegerIdeas in this response.
total_availableinteger | nullTotal ideas Google found, which can be larger than total.
customer_idstringThe Google Ads account the call ran against.
The metrics object
avg_monthly_searchesinteger | nullAverage monthly searches. Google may report heavily rounded figures for accounts without meaningful ad spend, and the response does not say whether a figure is precise.
competitionstring | nullGoogle's competition level for paid placement, for example LOW, MEDIUM or HIGH.
competition_indexinteger | nullCompetition on a 0 to 100 scale.
low_top_of_page_bid_microsinteger | nullLow end of the top-of-page bid range, in micros of the account currency (1,000,000 micros is one currency unit).
high_top_of_page_bid_microsinteger | nullHigh end of the top-of-page bid range, in the same units.
Any metric can be null when Google does not return it. A per-month volume breakdown is not included.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_json | The request body is not valid JSON. |
| 400 | missing_seed | Neither keywords nor url was provided. |
| 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_ideas (accepts keywords, url, limit, language, geo_target_constants, keyword_plan_network, include_adult_keywords).