dataforseo_labs_google_keyword_overview
Analyze Google keyword metrics including search volume, CPC, competition, and intent to optimize SEO strategies and paid search campaigns.
Instructions
This endpoint provides Google keyword data for specified keywords. For each keyword, you will receive current cost-per-click, competition values for paid search, search volume, search intent, monthly searches
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | keywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results | |
| location_name | No | full name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada' | United States |
| language_code | No | language code required field example: en | en |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
Implementation Reference
- src/core/modules/dataforseo-labs/tools/google/keyword-research/google-keyword-overview.tool.ts:43-55 (handler)The handler function that executes the core logic: sends POST request to DataForSEO Labs API endpoint '/v3/dataforseo_labs/google/keyword_overview/live' with parameters and formats the response.async handle(params: any): Promise<any> { try { const response = await this.client.makeRequest('/v3/dataforseo_labs/google/keyword_overview/live', 'POST', [{ keywords: params.keywords, location_name: params.location_name, language_code: params.language_code, include_clickstream_data: params.include_clickstream_data }]); return this.validateAndFormatResponse(response); } catch (error) { return this.formatErrorResponse(error); } }
- src/core/modules/dataforseo-labs/tools/google/keyword-research/google-keyword-overview.tool.ts:18-41 (schema)Zod schema definition for input parameters: keywords (array), location_name, language_code, include_clickstream_data.getParams(): z.ZodRawShape { return { keywords: z.array(z.string()).describe(`keywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results`), location_name: z.string().default("United States").describe(`full name of the location required field in format "Country" example: United Kingdom`), language_code: z.string().default("en").describe( `language code required field example: en`), include_clickstream_data: z.boolean().optional().default(false).describe( `Include or exclude data from clickstream-based metrics in the result`) }; }
- Tool class is instantiated with 'new GoogleKeywordOverviewTool(this.dataForSEOClient)' and registered in the getTools() method of DataForSEOLabsApi module, mapping name to description, params, and handler.getTools(): Record<string, ToolDefinition> { const tools = [ new GoogleRankedKeywordsTool(this.dataForSEOClient), new GoogleDomainCompetitorsTool(this.dataForSEOClient), new GoogleDomainRankOverviewTool(this.dataForSEOClient), new GoogleKeywordsIdeasTool(this.dataForSEOClient), new GoogleRelatedKeywordsTool(this.dataForSEOClient), new GoogleKeywordsSuggestionsTool(this.dataForSEOClient), new GoogleHistoricalSERP(this.dataForSEOClient), new GoogleSERPCompetitorsTool(this.dataForSEOClient), new GoogleBulkKeywordDifficultyTool(this.dataForSEOClient), new GoogleSubdomainsTool(this.dataForSEOClient), new GoogleKeywordOverviewTool(this.dataForSEOClient), new GoogleTopSearchesTool(this.dataForSEOClient), new GoogleSearchIntentTool(this.dataForSEOClient), new GoogleKeywordsForSiteTool(this.dataForSEOClient), new GoogleDomainIntersectionsTool(this.dataForSEOClient), new GoogleHistoricalDomainRankOverviewTool(this.dataForSEOClient), new GooglePageIntersectionsTool(this.dataForSEOClient), new GoogleBulkTrafficEstimationTool(this.dataForSEOClient), new DataForSeoLabsFilterTool(this.dataForSEOClient), new GoogleHistoricalKeywordDataTool(this.dataForSEOClient), // Add more tools here ]; return tools.reduce((acc, tool) => ({ ...acc, [tool.getName()]: { description: tool.getDescription(), params: tool.getParams(), handler: (params: any) => tool.handle(params), }, }), {}); }
- Instantiation of the GoogleKeywordOverviewTool class.new GoogleKeywordOverviewTool(this.dataForSEOClient),
- Mapping of tool name to filter path in DataForSeoLabsFilterTool for available filters.'dataforseo_labs_google_keyword_overview': 'keyword_overview.google',