Google Ads · Schema
GoogleAdsGoogleadsV25Services__GenerateKeywordIdeasRequest
Request message for KeywordPlanIdeaService.GenerateKeywordIdeas.
AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech
Properties
| Name | Type | Description |
|---|---|---|
| keywordAndUrlSeed | object | A Keyword and a specific Url to generate ideas from for example, cars, www.example.com/cars. |
| includeAdultKeywords | boolean | If true, adult keywords will be included in response. The default value is false. |
| urlSeed | object | A specific url to generate ideas from, for example, www.example.com/cars. |
| language | string | The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included. |
| geoTargetConstants | array | The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos. |
| keywordPlanNetwork | string | Targeting network. If not set, Google Search And Partners Network will be used. |
| historicalMetricsOptions | object | The options for historical metrics data. |
| keywordSeed | object | A Keyword or phrase to generate ideas from, for example, cars. |
| keywordAnnotation | array | The keyword annotations to include in response. |
| aggregateMetrics | object | The aggregate fields to include in response. |
| pageToken | string | Token of the page to retrieve. If not specified, the first page of results will be returned. To request next page of results use the value obtained from `next_page_token` in the previous response. The |
| siteSeed | object | The site to generate ideas from, for example, www.example.com. |
| pageSize | integer | Number of results to retrieve in a single page. A maximum of 10,000 results may be returned, if the page_size exceeds this, it is ignored. If unspecified, at most 10,000 results will be returned. The |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-generate-keyword-ideas-request-schema.json",
"title": "GoogleAdsGoogleadsV25Services__GenerateKeywordIdeasRequest",
"description": "Request message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-ads-customers-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__GenerateKeywordIdeasRequest",
"type": "object",
"properties": {
"keywordAndUrlSeed": {
"description": "A Keyword and a specific Url to generate ideas from for example, cars, www.example.com/cars.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__KeywordAndUrlSeed"
},
"includeAdultKeywords": {
"type": "boolean",
"description": "If true, adult keywords will be included in response. The default value is false."
},
"urlSeed": {
"description": "A specific url to generate ideas from, for example, www.example.com/cars.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__UrlSeed"
},
"language": {
"type": "string",
"description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included."
},
"geoTargetConstants": {
"description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos.",
"items": {
"type": "string"
},
"type": "array"
},
"keywordPlanNetwork": {
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"Google Search.",
"Google Search + Search partners."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"GOOGLE_SEARCH",
"GOOGLE_SEARCH_AND_PARTNERS"
],
"description": "Targeting network. If not set, Google Search And Partners Network will be used.",
"type": "string"
},
"historicalMetricsOptions": {
"description": "The options for historical metrics data.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__HistoricalMetricsOptions"
},
"keywordSeed": {
"description": "A Keyword or phrase to generate ideas from, for example, cars.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__KeywordSeed"
},
"keywordAnnotation": {
"type": "array",
"description": "The keyword annotations to include in response.",
"items": {
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"Return the keyword concept and concept group data."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"KEYWORD_CONCEPT"
],
"type": "string"
}
},
"aggregateMetrics": {
"description": "The aggregate fields to include in response.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__KeywordPlanAggregateMetrics"
},
"pageToken": {
"description": "Token of the page to retrieve. If not specified, the first page of results will be returned. To request next page of results use the value obtained from `next_page_token` in the previous response. The request fields must match across pages.",
"type": "string"
},
"siteSeed": {
"description": "The site to generate ideas from, for example, www.example.com.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__SiteSeed"
},
"pageSize": {
"format": "int32",
"type": "integer",
"description": "Number of results to retrieve in a single page. A maximum of 10,000 results may be returned, if the page_size exceeds this, it is ignored. If unspecified, at most 10,000 results will be returned. The server may decide to further limit the number of returned resources. If the response contains fewer than 10,000 results it may not be assumed as last page of results."
}
},
"$defs": {
"GoogleAdsGoogleadsV25Common__HistoricalMetricsOptions": {
"description": "Historical metrics options.",
"type": "object",
"properties": {
"yearMonthRange": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YearMonthRange",
"description": "The year month range for historical metrics. If not specified, metrics for the past 12 months are returned. Search metrics are available for the past 4 years. If the search volume is not available for the entire year_month_range provided, the subset of the year month range for which search volume is available are returned."
},
"includeAverageCpc": {
"description": "Indicates whether to include average cost per click value. Average CPC is provided only for legacy support.",
"type": "boolean"
}
}
},
"GoogleAdsGoogleadsV25Common__KeywordPlanAggregateMetrics": {
"type": "object",
"properties": {
"aggregateMetricTypes": {
"description": "The list of aggregate metrics to fetch data.",
"items": {
"type": "string",
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"The device breakdown of aggregate search volume."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"DEVICE"
]
},
"type": "array"
}
},
"description": "The aggregate metrics specification of the request."
},
"GoogleAdsGoogleadsV25Common__YearMonth": {
"description": "Year month.",
"type": "object",
"properties": {
"year": {
"format": "int64",
"description": "The year (for example, 2020).",
"type": "string"
},
"month": {
"type": "string",
"description": "The month of the year. (for example, FEBRUARY).",
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"January.",
"February.",
"March.",
"April.",
"May.",
"June.",
"July.",
"August.",
"September.",
"October.",
"November.",
"December."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"JANUARY",
"FEBRUARY",
"MARCH",
"APRIL",
"MAY",
"JUNE",
"JULY",
"AUGUST",
"SEPTEMBER",
"OCTOBER",
"NOVEMBER",
"DECEMBER"
]
}
}
},
"GoogleAdsGoogleadsV25Common__YearMonthRange": {
"type": "object",
"properties": {
"start": {
"description": "The inclusive start year month.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YearMonth"
},
"end": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YearMonth",
"description": "The inclusive end year month."
}
},
"description": "The year month range inclusive of the start and end months. Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020)."
},
"GoogleAdsGoogleadsV25Services__KeywordAndUrlSeed": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to crawl in order to generate keyword ideas."
},
"keywords": {
"description": "Requires at least one keyword and no more than 20 keywords.",
"items": {
"type": "string"
},
"type": "array"
}
},
"description": "Keyword And Url Seed"
},
"GoogleAdsGoogleadsV25Services__KeywordSeed": {
"type": "object",
"properties": {
"keywords": {
"description": "Requires at least one keyword and no more than 20 keywords.",
"items": {
"type": "string"
},
"type": "array"
}
},
"description": "Keyword Seed"
},
"GoogleAdsGoogleadsV25Services__SiteSeed": {
"type": "object",
"properties": {
"site": {
"description": "The domain name of the site. If the customer requesting the ideas doesn't own the site provided only public information is returned.",
"type": "string"
}
},
"description": "Site Seed"
},
"GoogleAdsGoogleadsV25Services__UrlSeed": {
"type": "object",
"properties": {
"url": {
"description": "The URL to crawl in order to generate keyword ideas.",
"type": "string"
}
},
"description": "Url Seed"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-ads-google-ads-googleads-v25-services-generate-keyword-ideas-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.