---
title: "Google Ads keyword ideas with volume and bid ranges"
method: POST
path: "/api/v1/tools/google_research_keywords/execute"
tags: ["Google Ads"]
---

# Google Ads keyword ideas with volume and bid ranges

`POST /api/v1/tools/google_research_keywords/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/google_research_keywords/execute`
- Auth: HTTP bearer

Asks Google Keyword Planner for keyword ideas from seed terms or a landing page, and returns average monthly searches, competition and the top-of-page bid range for each.
Use when: planning a new campaign, expanding an existing one, or checking whether a term has any real search volume.
Do not use when: the user wants the performance of keywords they already run (google_get_keyword_performance) or the queries that triggered their ads (google_analyze_search_terms).
Volumes are broad averages Google rounds heavily, and bid ranges are estimates, not what you will pay. Pass location_ids (from google_resolve_locations) and language_id (from google_list_languages) for the market the campaign will target: without locations Google reports worldwide volumes, and without a language it includes keywords in every language, which overstates what one country can deliver. The answer states which market the numbers cover.
Keyword Planner needs at least Basic API access; on a lower access level this returns access_level_insufficient — say so plainly and suggest planning from search-term data instead.
If you are unsure which account, campaign or period the user means, ask them — do not guess ids or dates.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object
    - `customer_id` string: Google Ads customer id (10 digits, dashes optional). Omit to use the primary account; list_connected_accounts shows the valid ids.
    - `seed_keywords` string[]: Starting terms. Give either these, a page_url, or both.
    - `page_url` string, uri: A landing page Google should read for ideas.
    - `location_ids` string[]: Geo target constant ids from google_resolve_locations. Volumes are for these places; omit for worldwide volumes.
    - `language_id` string: Language constant id from google_list_languages, e.g. "1000" for English. Omit to include keywords in every language.
    - `include_search_partners` boolean: Include the Search Network partners in the volume estimate. Default false.
    - `limit` integer: Maximum ideas to return (default 50).

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
