dataforseo_labs_bulk_keyword_difficulty
Analyze keyword ranking difficulty for up to 1,000 keywords in one request to assess SEO competition and prioritize content strategy.
Instructions
This endpoint will provide you with the Keyword Difficulty metric for a maximum of 1,000 keywords in one API request. Keyword Difficulty stands for the relative difficulty of ranking in the first top-10 organic results for the related keyword. Keyword Difficulty in DataForSEO API responses indicates the chance of getting in top-10 organic results for a keyword on a logarithmic scale from 0 to 100.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | target keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000 | |
| 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 |
Implementation Reference
- The async handle method executes the core tool logic by sending a POST request to the DataForSEO Labs API endpoint for bulk keyword difficulty with the input parameters and handles the response or error.async handle(params: any): Promise<any> { try { const response = await this.client.makeRequest('/v3/dataforseo_labs/google/bulk_keyword_difficulty/live', 'POST', [{ keywords: params.keywords, location_name: params.location_name, language_code: params.language_code }]); return this.validateAndFormatResponse(response); } catch (error) { return this.formatErrorResponse(error); } }
- Zod schema defining the input parameters for the tool: keywords (array of strings, up to 1000), location_name (string, default 'United States'), language_code (string, default 'en').getParams(): z.ZodRawShape { return { keywords: z.array(z.string()).describe(`target keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000`), 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`), }; }
- Instantiation of the GoogleBulkKeywordDifficultyTool within the tools array in DataForSEOLabsApi.getTools(), which registers the tool using its getName() into the module's tools map for higher-level registration.new GoogleHistoricalSERP(this.dataForSEOClient), new GoogleSERPCompetitorsTool(this.dataForSEOClient), new GoogleBulkKeywordDifficultyTool(this.dataForSEOClient), new GoogleSubdomainsTool(this.dataForSEOClient),