dataforseo_labs_bulk_traffic_estimation
Estimate monthly organic, paid, featured snippet, and local pack traffic for up to 1,000 domains, subdomains, or webpages. Analyze site performance across locations and languages with accurate keyword insights.
Instructions
This endpoint will provide you with estimated monthly traffic volumes for up to 1,000 domains, subdomains, or webpages. Along with organic search traffic estimations, you will also get separate values for paid search, featured snippet, and local pack results.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| language_code | No | language code required field example: en | en |
| location_name | No | full name of the location required field in format "Country" example: United Kingdom | United States |
| targets | Yes | target domains, subdomains, and webpages. you can specify domains, subdomains, and webpages in this field; domains and subdomains should be specified without https:// and www.; pages should be specified with absolute URL, including https:// and www.; you can set up to 1000 domains, subdomains or webpages |
Implementation Reference
- The main handler function that implements the tool logic by making an authenticated POST request to the DataForSEO Labs bulk traffic estimation API endpoint and formatting the response.async handle(params: any): Promise<any> { try { const response = await this.client.makeRequest('/v3/dataforseo_labs/google/bulk_traffic_estimation/live', 'POST', [{ targets: params.targets, location_name: params.location_name, language_code: params.language_code, item_types: ['organic'], ignore_synonyms: params.ignore_synonyms }]); return this.validateAndFormatResponse(response); } catch (error) { return this.formatErrorResponse(error); } }
- Zod schema defining the input parameters for the tool: targets (array of strings), location_name, language_code, and ignore_synonyms.getParams(): z.ZodRawShape { return { targets: z.array(z.string()).describe(`target domains, subdomains, and webpages. you can specify domains, subdomains, and webpages in this field; domains and subdomains should be specified without https:// and www.; pages should be specified with absolute URL, including https:// and www.; you can set up to 1000 domains, subdomains or webpages`), 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`), ignore_synonyms: z.boolean().default(true).describe( `ignore highly similar keywords, if set to true, results will be more accurate`), }; }
- Instantiation of the tool class within the DataForSEOLabsApi module's getTools() method, where it is added to the list of tools and subsequently registered by name.new GoogleBulkTrafficEstimationTool(this.dataForSEOClient),
- The registration logic in getTools() that maps each tool instance (including bulk traffic estimation) to its name, exposing description, params schema, and handler function.return tools.reduce((acc, tool) => ({ ...acc, [tool.getName()]: { description: tool.getDescription(), params: tool.getParams(), handler: (params: any) => tool.handle(params), }, }), {});
- src/core/modules/dataforseo-labs/tools/google/competitor-research/google-bulk-traffic-estimation.tool.ts:10-12 (registration)Definition of the tool's unique name used for registration in the module.getName(): string { return 'dataforseo_labs_bulk_traffic_estimation'; }