DataForSEO MCP Server
Supports deployment as a Cloudflare Worker for serverless, edge-distributed access to DataForSEO APIs
Provides access to Google search engine results page (SERP) data through the SERP API module
Runs on Node.js (v14 or higher) as the server runtime environment
Offers access to business reviews and publicly shared business information from Tripadvisor through the BUSINESS_DATA API
Provides access to business reviews and publicly shared business information from Trustpilot through the BUSINESS_DATA API
Implements the MCP server in TypeScript, allowing for type-safe interaction with DataForSEO APIs
Uses Zod for schema validation and parameter definition in the API tools
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DataForSEO MCP Serverget SERP results for 'best running shoes' on Google"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DataForSEO MCP Server
Model Context Protocol (MCP) server implementation for DataForSEO, enabling AI assistants to interact with selected DataForSEO APIs and obtain SEO data through a standardized interface.
Features
SERP API: real-time Search Engine Results Page (SERP) data for Google, Bing, and Yahoo;
KEYWORDS_DATA API: keyword research and clickstream data, including search volume, cost-per-click, and other metrics;
ONPAGE API: allows crawling websites and webpages according to customizable parameters to obtain on-page SEO performance metrics;
DATAFORSEO LABS API: data on keywords, SERPs, and domains based on DataForSEO's in-house databases and proprietary algorithms;
BACKLINKS API: comprehensive backlink analysis including referring domains, anchor text distribution, and link quality metrics;
BUSINESS DATA API: publicly available data on any business entity;
DOMAIN ANALYTICS API: data on website traffic, technologies, and Whois details;
CONTENT ANALYSIS API: robust source of data for brand monitoring, sentiment analysis, and citation management;
Related MCP server: DataForSEO MCP Server
Prerequisites
Node.js (v14 or higher)
DataForSEO API credentials (API login and password)
Installation
Clone the repository:
git clone https://github.com/dataforseo/mcp-server-typescript
cd mcp-server-typescriptInstall dependencies:
npm installSet up environment variables:
# Required
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password
# Optional: specify which modules to enable (comma-separated)
# If not set, all modules will be enabled
export ENABLED_MODULES="SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS,BACKLINKS,BUSINESS_DATA,DOMAIN_ANALYTICS"
# Optional: enable full API responses
# If not set or set to false, the server will filter and transform API responses to a more concise format
# If set to true, the server will return the full, unmodified API responses
export DATAFORSEO_FULL_RESPONSE="false"Installation as an NPM Package
You can install the package globally:
npm install -g dataforseo-mcp-serverOr run it directly without installation:
npx dataforseo-mcp-serverRemember to set environment variables before running the command:
# Required environment variables
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password
# Run with npx
npx dataforseo-mcp-serverBuilding and Running
Build the project:
npm run buildRun the server:
# Start local server (direct MCP communication)
npx dataforseo-mcp-server
# Start HTTP server
npx dataforseo-mcp-server httpHTTP Server Configuration
The server runs on port 3000 by default and supports both Basic Authentication and environment variable-based authentication.
To start the HTTP server, run:
npm run httpAuthentication Methods
Basic Authentication
Send requests with Basic Auth header:
Authorization: Basic <base64-encoded-credentials>Credentials format:
username:password
Environment Variables
If no Basic Auth is provided, the server will use credentials from environment variables:
export DATAFORSEO_USERNAME=your_username export DATAFORSEO_PASSWORD=your_password
Cloudflare Worker Deployment
The DataForSEO MCP Server can be deployed as a Cloudflare Worker for serverless, edge-distributed access to DataForSEO APIs.
Worker Features
Edge Distribution: Deploy globally across Cloudflare's edge network
Serverless: No server management required
Auto-scaling: Handles traffic spikes automatically
MCP Protocol Support: Compatible with both Streamable HTTP and SSE transports
Environment Variables: Secure credential management through Cloudflare dashboard
Quick Start
Install Wrangler CLI:
npm install -g wranglerConfigure Worker:
# Login to Cloudflare wrangler login # Set environment variables wrangler secret put DATAFORSEO_USERNAME wrangler secret put DATAFORSEO_PASSWORDDeploy Worker:
# Build and deploy npm run build wrangler deploy --main build/index-worker.js
Configuration
The worker uses the same environment variables as the standard server:
DATAFORSEO_USERNAME: Your DataForSEO usernameDATAFORSEO_PASSWORD: Your DataForSEO passwordENABLED_MODULES: Comma-separated list of modules to enableDATAFORSEO_FULL_RESPONSE: Set to "true" for full API responses
Worker Endpoints
Once deployed, your worker will be available at https://your-worker.your-subdomain.workers.dev/ with the following endpoints:
POST /mcp: Streamable HTTP transport (recommended)
GET /sse: SSE connection establishment (deprecated)
POST /messages: SSE message handling (deprecated)
GET /health: Health check endpoint
GET /: API documentation page
Advanced Configuration
Edit wrangler.jsonc to customize your deployment:
{
"name": "dataforseo-mcp-worker",
"main": "build/index-worker.js",
"compatibility_date": "2025-07-10",
"compatibility_flags": ["nodejs_compat"],
"vars": {
"ENABLED_MODULES": "SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS"
}
}Usage with Claude
After deployment, configure Claude to use your worker:
{
"name": "DataForSEO",
"description": "Access DataForSEO APIs via Cloudflare Worker",
"transport": {
"type": "http",
"baseUrl": "https://your-worker.your-subdomain.workers.dev/mcp"
}
}Available Modules
The following modules are available to be enabled/disabled:
SERP: real-time SERP data for Google, Bing, and Yahoo;KEYWORDS_DATA: keyword research and clickstream data;ONPAGE: crawl websites and webpages to obtain on-page SEO performance metrics;DATAFORSEO_LABS: data on keywords, SERPs, and domains based on DataForSEO's databases and algorithms;BACKLINKS: data on inbound links, referring domains and referring pages for any domain, subdomain, or webpage;BUSINESS_DATA: based on business reviews and business information publicly shared on the following platforms: Google, Trustpilot, Tripadvisor;DOMAIN_ANALYTICS: helps identify all possible technologies used for building websites and offers Whois data;CONTENT_ANALYSIS: help you discover citations of the target keyword or brand and analyze the sentiments around it;
Adding New Tools/Modules
Module Structure
Each module corresponds to a specific DataForSEO API:
SERPmodule → SERP APIKEYWORDS_DATAmodule → Keywords Data APIONPAGEmodule → OnPage APIDATAFORSEO_LABSmodule → DataForSEO Labs APIBACKLINKS: module → Backlinks APIBUSINESS_DATA: module → Business Data APIDOMAIN_ANALYTICS: module → Domain Analytics APICONTENT_ANALYSIS: module → Content Analysis API
Implementation Options
You can either:
Add a new tool to an existing module
Create a completely new module
Adding a New Tool
Here's how to add a new tool to any new or pre-existing module:
// src/code/modules/your-module/tools/your-tool.tool.ts
import { BaseTool } from '../../base.tool';
import { DataForSEOClient } from '../../../client/dataforseo.client';
import { z } from 'zod';
export class YourTool extends BaseTool {
constructor(private client: DataForSEOClient) {
super(client);
// DataForSEO API returns extensive data with many fields, which can be overwhelming
// for AI agents to process. We select only the most relevant fields to ensure
// efficient and focused responses.
this.fields = [
'title', // Example: Include the title field
'description', // Example: Include the description field
'url', // Example: Include the URL field
// Add more fields as needed
];
}
getName() {
return 'your-tool-name';
}
getDescription() {
return 'Description of what your tool does';
}
getParams(): z.ZodRawShape {
return {
// Required parameters
keyword: z.string().describe('The keyword to search for'),
location: z.string().describe('Location in format "City,Region,Country" or just "Country"'),
// Optional parameters
fields: z.array(z.string()).optional().describe('Specific fields to return in the response. If not specified, all fields will be returned'),
language: z.string().optional().describe('Language code (e.g., "en")'),
};
}
async handle(params: any) {
try {
// Make the API call
const response = await this.client.makeRequest({
endpoint: '/v3/dataforseo_endpoint_path',
method: 'POST',
body: [{
// Your request parameters
keyword: params.keyword,
location: params.location,
language: params.language,
}],
});
// Validate the response for errors
this.validateResponse(response);
//if the main data array is specified in tasks[0].result[:] field
const result = this.handleDirectResult(response);
//if main data array specified in tasks[0].result[0].items field
const result = this.handleItemsResult(response);
// Format and return the response
return this.formatResponse(result);
} catch (error) {
// Handle and format any errors
return this.formatErrorResponse(error);
}
}
}Creating a New Module
Create a new directory under
src/core/modules/for your module:
mkdir -p src/core/modules/your-module-nameCreate module files:
// src/core/modules/your-module-name/your-module-name.module.ts
import { BaseModule } from '../base.module';
import { DataForSEOClient } from '../../client/dataforseo.client';
import { YourTool } from './tools/your-tool.tool';
export class YourModuleNameModule extends BaseModule {
constructor(private client: DataForSEOClient) {
super();
}
getTools() {
return {
'your-tool-name': new YourTool(this.client),
};
}
}Register your module in
src/core/config/modules.config.ts:
export const AVAILABLE_MODULES = [
'SERP',
'KEYWORDS_DATA',
'ONPAGE',
'DATAFORSEO_LABS',
'BACKLINKS',
'BUSINESS_DATA',
'DOMAIN_ANALYTICS',
'CONTENT_ANALYSIS',
'YOUR_MODULE_NAME' // Add your module name here
] as const;Initialize your module in
src/main/index.ts:
if (isModuleEnabled('YOUR_MODULE_NAME', enabledModules)) {
modules.push(new YourModuleNameModule(dataForSEOClient));
}Field Configuration
The MCP server supports field filtering to customize which data fields are returned in API responses. This helps reduce response size and focus on the most relevant data for your use case.
Configuration File Format
Create a JSON configuration file with the following structure:
{
"supported_fields": {
"tool_name": ["field1", "field2", "field3"],
"another_tool": ["field1", "field2"]
}
}Using Field Configuration
Pass the configuration file using the --configuration parameter:
# With npm
npm run cli -- http --configuration field-config.json
# With npx
npx dataforseo-mcp-server http --configuration field-config.json
# Local mode
npx dataforseo-mcp-server local --configuration field-config.jsonConfiguration Behavior
If a tool is configured: Only the specified fields will be returned in the response
If a tool is not configured: All available fields will be returned (default behavior)
If no configuration file is provided: All tools return all available fields
Example Configuration File
The repository includes an example configuration file field-config.example.json with optimized field selections for common tools:
{
"supported_fields": {
"backlinks_backlinks": [
"id",
"items.anchor",
"items.backlink_spam_score",
"items.dofollow",
"items.domain_from",
"items.domain_from_country",
"items.domain_from_ip",
"items.domain_from_platform_type",
"items.domain_from_rank",
"items.domain_to",
"items.first_seen",
"items.is_broken",
"items.is_new",
"items.item_type",
"items.last_seen",
"items.links_count",
"items.original",
"items.page_from_encoding",
"items.page_from_external_links",
"items.page_from_internal_links",
"items.page_from_language",
"items.page_from_rank",
"items.page_from_size",
"items.page_from_status_code",
"items.page_from_title",
"items.prev_seen",
"items.rank",
"items.ranked_keywords_info.page_from_keywords_count_top_10",
"items.ranked_keywords_info.page_from_keywords_count_top_100",
"items.ranked_keywords_info.page_from_keywords_count_top_3",
"items.semantic_location",
"items.text_post",
"items.text_pre",
"items.tld_from",
"items.type",
"items.url_from",
"items.url_from_https",
"items.url_to",
"items.url_to_https",
"items.url_to_spam_score",
"items.url_to_status_code",
"status_code",
"status_message"
],
...
}
}Nested Field Support
The configuration supports nested field paths using dot notation:
"rating.value"- Access thevaluefield within theratingobject"items.demography.age.keyword"- Access deeply nested fields"meta.description"- Access nested object properties
Field Discovery
To discover available fields for any tool:
Run the tool without field configuration to see the full response
Identify the fields you need from the API response
Add those field paths to your configuration file
Creating Your Own Configuration
Copy the example file:
cp field-config.example.json my-config.jsonModify the field selections based on your needs
Use your custom configuration:
npx dataforseo-mcp-server http --configuration my-config.jsonWhat endpoints/APIs do you want us to support next?
We're always looking to expand the capabilities of this MCP server. If you have specific DataForSEO endpoints or APIs you'd like to see supported, please:
Check the DataForSEO API Documentation to see what's available
Open an issue in our GitHub repository with:
The API/endpoint you'd like to see supported;
A brief description of your use case;
Describe any specific features you'd like to see implemented.
Your feedback helps us prioritize which APIs to support next!
Resources
Available Tools
76 toolsai_optimization_keyword_data_locations_and_languagesB
Utility tool for ai_keyword_data_search_volume to get list of availible locations and languages
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a 'utility tool' to 'get list', which implies a read-only operation, but doesn't clarify aspects like whether it requires authentication, has rate limits, returns structured data, or any error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information: it's a utility tool for a specific purpose. There's no wasted text, and it directly communicates the essential function. However, the misspelling 'availible' slightly detracts from polish, but doesn't hinder understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description provides a basic understanding of its purpose and context. However, it lacks details on what the output looks like (e.g., format of the list, example values), which would be helpful for an AI agent to use it effectively. The simplicity of the tool means the description is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter semantics, so it meets the baseline expectation. No additional value is required, and it doesn't contradict or confuse the parameter-less nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Utility tool for ai_keyword_data_search_volume to get list of availible locations and languages'. It specifies the verb ('get list'), resource ('locations and languages'), and context ('for ai_keyword_data_search_volume'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'ai_optimization_llm_mentions_locations_and_languages', which appears to serve a similar utility function for a different parent tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning it's a utility tool 'for ai_keyword_data_search_volume', suggesting it should be used in conjunction with that specific sibling tool. However, it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., other location/language tools in the list) or any prerequisites. The context is clear but lacks detailed alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_keyword_data_search_volumeC
This endpoint provides search volume data for your target keywords, reflecting their estimated usage in AI LLMs
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords. The maximum number of keywords you can specify: 1000 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | United States |
| language_code | Yes | Search engine language code (e.g., 'en') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data is 'estimated usage in AI LLMs' which adds some context about the data source, but doesn't describe rate limits, authentication requirements, response format, pagination, or whether this is a read-only operation. For a data retrieval tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a data retrieval tool, though it could potentially benefit from slightly more detail given the lack of annotations and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with 100% schema coverage but no annotations and no output schema, the description provides the basic purpose but leaves significant gaps. It doesn't explain what the return data looks like, any limitations or constraints, or how this tool differs from similar keyword search volume tools. The description is minimally adequate but incomplete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description doesn't add any additional meaning about the parameters beyond what's in the schema. It doesn't explain what 'search volume data' specifically includes or how the AI LLM usage estimation works. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides search volume data for your target keywords' with the specific context of 'reflecting their estimated usage in AI LLMs'. It uses a specific verb ('provides') and resource ('search volume data'), but doesn't explicitly differentiate from sibling tools like 'keywords_data_google_ads_search_volume' which might serve similar functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any prerequisites, exclusions, or specific contexts where this tool is preferred over sibling tools like 'keywords_data_google_ads_search_volume' or other keyword-related tools in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_aggregated_metricsC
This endpoint provides aggregated metrics for mentions of the keywords or domains specified in the target array of the request.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Array of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | |
| language_code | No | Search engine language code (e.g., 'en') | |
| platform | No | Platform to search for LLM mentions | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool | |
| internal_list_limit | No | Internal parameter to limit the number of items processed. Not exposed to end-users. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks behavioral details. It doesn't disclose rate limits, authentication needs, data freshness, or what 'aggregated metrics' entails (e.g., counts, trends). The mention of 'maximum number of targets: 1000' in the schema is helpful but not in the description, leaving key constraints unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the core function. It's front-loaded with the main purpose, though it could be more structured with additional context. No wasted words, but slightly under-specified for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'aggregated metrics' returns, usage constraints, or how it differs from siblings. Given the complexity and lack of structured support, more detail is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning the 'target array' but doesn't explain parameter interactions or semantics beyond what the schema provides. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'provides aggregated metrics for mentions of the keywords or domains specified in the target array', which clarifies it's a read operation returning aggregated data. However, it doesn't differentiate from sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_cross_aggregated_metrics', leaving the specific scope vague compared to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings is provided. The description mentions the 'target array' but doesn't specify use cases, prerequisites, or exclusions. Without this, an agent might struggle to choose between similar LLM mentions tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_cross_aggregated_metricsC
This endpoint provides aggregated metrics grouped by custom keys for mentions of the keywords or domains specified in the target array of the request
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | array of objects containing target entities with aggregation keys. you can specify up to 10, but not less than 2 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | |
| language_code | No | Search engine language code (e.g., 'en') | |
| platform | No | Platform to search for LLM mentions | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool | |
| internal_list_limit | No | Internal parameter to limit the number of items processed. Not exposed to end-users. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions aggregation and grouping but fails to detail critical aspects like rate limits, authentication needs, data freshness, error handling, or what the output format looks like. This leaves significant gaps for an agent to understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core function. It avoids unnecessary words and gets straight to the point, though it could be slightly more structured by separating key concepts like aggregation and targeting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is insufficient. It lacks details on output format, error conditions, usage examples, and how it differs from siblings, making it incomplete for an agent to use effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by hinting at 'custom keys' and 'target array', but it doesn't explain parameter interactions or provide examples beyond what's in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides aggregated metrics for mentions of keywords or domains, which gives a general purpose. However, it's vague about what 'aggregated metrics' specifically entail (e.g., counts, trends, volumes) and doesn't clearly distinguish it from sibling tools like 'ai_optimization_llm_mentions_aggregated_metrics' or 'ai_optimization_llm_mentions_search', leaving ambiguity in its exact function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions grouping by custom keys and using a target array, but it doesn't specify scenarios, prerequisites, or compare it to sibling tools, offering minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_filtersC
This endpoint provides all the necessary information about filters that can be used with AI Optimization LLM Mentions API endpoints
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose if this is a read-only operation, whether it requires authentication, has rate limits, or what the output format might be (e.g., JSON list of filters). The phrase 'provides all the necessary information' is vague and doesn't add concrete behavioral context beyond a basic informational purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the tool's purpose without unnecessary words. It's front-loaded with the key information, though it could be slightly more structured by explicitly mentioning it's a metadata or reference tool. There's no waste, but minor improvements in specificity could elevate it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. It identifies the tool as informational about filters for a specific API set, but lacks details on output format, error handling, or integration with sibling tools. For a tool with no inputs, it's complete enough to understand the basic intent, but could better address behavioral aspects and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, avoiding redundancy. However, it could marginally improve by noting the lack of inputs, but this isn't required for a high score given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'all the necessary information about filters that can be used with AI Optimization LLM Mentions API endpoints', which clarifies it's about filter information for a specific API category. However, it's somewhat vague about what 'information' entails (e.g., filter types, usage examples, or metadata) and doesn't explicitly differentiate from sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_aggregated_metrics', which might also involve filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing to know filter options before using search tools), exclusions, or compare it to similar tools like 'dataforseo_labs_available_filters' or 'domain_analytics_technologies_available_filters' in the sibling list, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_locations_and_languagesB
Utility tool for ai_llm_mentions to get list of available locations and languages
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' a list, implying a read-only operation, but does not specify whether it requires authentication, has rate limits, returns structured data, or involves any side effects. For a utility tool with zero annotation coverage, this is a significant gap in transparency about its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with key information ('utility tool for ai_llm_mentions to get list'), making it easy to understand quickly, and every part of the sentence contributes to clarifying the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description provides basic context but is incomplete. It specifies the tool's purpose and context but lacks details on return format, error handling, or integration with sibling tools. For a utility tool in a complex environment with many siblings, more guidance on output and usage would enhance completeness, though the simplicity of the tool mitigates some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description does not mention any parameters, which is appropriate since none exist. However, it could have clarified that no inputs are needed, but this omission is minor given the context, warranting a high score as it aligns with the schema's lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as a 'utility tool for ai_llm_mentions to get list of available locations and languages,' specifying the verb ('get'), resource ('list of available locations and languages'), and context ('for ai_llm_mentions'). However, it does not explicitly differentiate from its sibling tools, such as 'ai_optimization_keyword_data_locations_and_languages,' which may serve a similar purpose for a different context, leaving room for ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('for ai_llm_mentions'), suggesting it should be used when working with AI LLM mentions data. However, it lacks explicit guidance on when to use this tool versus alternatives, such as 'serp_locations' or other location-related tools in the sibling list, and does not mention any prerequisites or exclusions, leaving usage decisions partially inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_searchC
This endpoint provides aggregated LLM mentions metrics grouped by the most frequently mentioned pages for the specified target
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Array of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | |
| language_code | No | Search engine language code (e.g., 'en') | |
| platform | No | Platform to search for LLM mentions | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool | |
| order_by | No | resuresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["ai_search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["ai_search_volume,desc"] The full list of possible orders is available in 'ai_optimization_llm_mentions_filters' tool | |
| limit | No | Number of results to return. Default is 10, maximum is 1000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions aggregation and grouping by pages but doesn't disclose critical traits like whether this is a read-only operation, potential rate limits, authentication needs, data freshness, or what the output format looks like (especially problematic without an output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly states the core function. It's appropriately front-loaded with the main purpose, though it could benefit from slightly more detail given the tool's complexity. There's no wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'aggregated LLM mentions metrics' actually includes, how grouping works, what the output looks like, or any behavioral constraints. The agent would struggle to use this effectively without significant guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema itself. The description adds no additional parameter context beyond implying the 'target' parameter is central. Since the schema does the heavy lifting, the baseline score of 3 is appropriate despite the description's lack of parameter elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'aggregated LLM mentions metrics grouped by the most frequently mentioned pages' which clarifies it's a search/analysis tool for LLM mentions with grouping. However, it doesn't distinguish this from sibling tools like 'ai_optimization_llm_mentions_top_pages' or 'ai_optimization_llm_mentions_aggregated_metrics', leaving ambiguity about their functional differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With multiple sibling tools focused on LLM mentions (e.g., aggregated_metrics, top_domains, top_pages), the description lacks any context about appropriate use cases, prerequisites, or comparisons to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_top_domainsC
This endpoint provides aggregated LLM mentions metrics grouped by the most frequently mentioned domains for the specified target
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Array of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | |
| language_code | No | Search engine language code (e.g., 'en') | |
| platform | No | Platform to search for LLM mentions | |
| links_scope | No | specifies which links will be used to extract domains and aggregation | |
| initial_dataset_filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool | |
| items_list_limit | No | maximum number of results in the items array, min value is 1, max value is 10 | |
| internal_list_limit | No | maximum number of elements within internal arrays, min value is 1, max value is 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions aggregation and grouping by domains but fails to disclose critical behavioral traits: whether this is a read-only operation, what permissions might be needed, rate limits, pagination behavior, or what the output format looks like (especially problematic since there's no output schema). For a complex tool with 8 parameters, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the core function. It's appropriately front-loaded with the main purpose. However, it could be more structured by explicitly mentioning it's for analyzing LLM mentions data, but given the tool name includes 'ai_optimization_llm_mentions', this is reasonably concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema, multiple sibling alternatives), the description is inadequate. It doesn't explain what 'LLM mentions' are in this context, what metrics are aggregated, how results are sorted/limited, or provide any examples of use cases. For a tool that appears to perform data analysis with multiple filtering options, more context is needed to guide proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how 'target' objects relate to the aggregation, what 'top domains' means in practice, or provide examples of typical parameter combinations. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'aggregated LLM mentions metrics grouped by the most frequently mentioned domains', which gives a general purpose but lacks specificity. It mentions the verb 'provides' and resource 'metrics', but doesn't clearly differentiate from sibling tools like 'ai_optimization_llm_mentions_aggregated_metrics' or 'ai_optimization_llm_mentions_top_pages'. The purpose is vague about what 'top domains' means operationally.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With multiple sibling tools in the 'ai_optimization_llm_mentions' family (e.g., 'ai_optimization_llm_mentions_aggregated_metrics', 'ai_optimization_llm_mentions_search', 'ai_optimization_llm_mentions_top_pages'), the description offers no context about when this domain-focused aggregation is appropriate versus other mention analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_mentions_top_pagesC
This endpoint provides aggregated LLM mentions metrics grouped by the most frequently mentioned pages for the specified target
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Array of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000 | |
| location_name | No | full name of the location, example: 'United Kingdom', 'United States' | |
| language_code | No | Search engine language code (e.g., 'en') | |
| platform | No | Platform to search for LLM mentions | |
| links_scope | No | specifies which links will be used to extract domains and aggregation | |
| initial_dataset_filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool | |
| items_list_limit | No | maximum number of results in the items array, min value is 1, max value is 10 | |
| internal_list_limit | No | maximum number of elements within internal arrays, min value is 1, max value is 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal insight. It mentions 'aggregated metrics' but doesn't specify what metrics are returned, how pagination works (despite 'items_list_limit' and 'internal_list_limit' parameters), or any rate limits or authentication requirements. For a tool with 8 parameters and no output schema, this is inadequate for understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It is front-loaded with the main action ('provides aggregated LLM mentions metrics'), making it easy to parse. However, it could be more structured by breaking down key aspects, but it avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema, and rich sibling context), the description is incomplete. It doesn't explain the return format, what 'LLM mentions' entail, or how to interpret results. With no output schema and minimal behavioral context, the agent lacks sufficient information to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond the schema, as it doesn't explain how parameters like 'target', 'initial_dataset_filters', or 'links_scope' interact to affect the output. Baseline 3 is appropriate since the schema does the heavy lifting, but the description fails to compensate with contextual insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'provides aggregated LLM mentions metrics grouped by the most frequently mentioned pages for the specified target', which gives a general purpose but lacks specificity. It mentions 'aggregated metrics' and 'grouped by pages' but doesn't clarify what specific metrics are aggregated or what 'LLM mentions' refers to in practice. Compared to siblings like 'ai_optimization_llm_mentions_top_domains', it distinguishes by focusing on 'pages' rather than 'domains', but the distinction is minimal without more detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or specific contexts for usage. Given the complex sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_aggregated_metrics', the lack of differentiation leaves the agent guessing about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_modelsC
Utility tool for ai_optimization_llm_response to get list of availible locations and languages
| Name | Required | Description | Default |
|---|---|---|---|
| llm_type | Yes | type of llm. Must be one of: 'claude', 'gemini', 'chat_gpt', 'perplexity' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'utility tool' that 'gets list' which implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the tool's purpose. It's appropriately sized for a simple lookup tool with one parameter. However, it could be more front-loaded with clearer purpose and could benefit from a second sentence about usage context or output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (list format, structure, what 'locations and languages' means), doesn't mention any prerequisites or authentication needs, and doesn't clarify the relationship with the mentioned 'ai_optimization_llm_response' tool. Given the complexity of understanding what locations/languages are being listed and for what purpose, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter 'llm_type' fully documented in the schema. The description doesn't add any parameter information beyond what's in the schema - it doesn't explain why this parameter is needed or how it affects the results. With high schema coverage, the baseline is 3 even without additional param details in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'gets list of available locations and languages' which is a clear purpose, but it's vague about what exactly is being listed (locations/languages for what?). It mentions 'ai_optimization_llm_response' as context but doesn't fully specify the resource scope. It doesn't clearly distinguish from sibling tools like 'ai_optimization_llm_mentions_locations_and_languages' which appears similar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance - it mentions this is a 'utility tool for ai_optimization_llm_response' which implies some relationship, but doesn't specify when to use this tool versus alternatives. No explicit when/when-not guidance or comparison to sibling tools is provided, leaving the agent to guess about appropriate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_optimization_llm_responseC
This endpoint allows you to retrieve structured responses from a specific AI model, based on the input parameters
| Name | Required | Description | Default |
|---|---|---|---|
| llm_type | Yes | type of llm. Must be one of: 'claude', 'gemini', 'chat_gpt', 'perplexity' | |
| user_prompt | Yes | Prompt for the AI model. The question or task you want to send to the AI model. You can specify up to 500 characters in the user_prompt field | |
| model_name | Yes | name of the AI model. consists of the actual model name and version name. if not sure which model to use, first call the ai_optimization_llm_models tool to get list of available models for the specified llm_type | |
| temperature | No | randomness of the AI response optional field higher values make output more diverse; lower values make output more focused; | |
| top_p | No | diversity of the AI response, optional field, controls diversity of the response by limiting token selection; | |
| web_search | No | enable web search for current information. When enabled, the AI model can access and cite current web information; |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this 'retrieves' responses, implying a read-only operation, but doesn't clarify authentication requirements, rate limits, response format, error conditions, or whether this is a synchronous/async operation. The description is too minimal for a tool that interacts with external AI models.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a tool with good schema documentation, though it could be slightly more informative given the lack of annotations and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'structured responses' means, doesn't mention response format or potential errors, and provides no context about the AI service being accessed. The schema handles parameter documentation well, but the description fails to compensate for missing behavioral and output information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify dependencies. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'retrieve structured responses from a specific AI model, based on the input parameters'. It specifies the verb ('retrieve'), resource ('structured responses'), and scope ('from a specific AI model'), making it clear this is a query/response tool. However, it doesn't explicitly differentiate from sibling tools like 'ai_optimization_llm_models' which lists models rather than getting responses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While the input schema's description for 'model_name' mentions calling 'ai_optimization_llm_models' first if unsure, this is not in the tool description itself. There's no mention of prerequisites, constraints, or comparison with other AI-related tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_anchorsC
This endpoint will provide you with a detailed overview of anchors used when linking to the specified website with relevant backlink data for each of them
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned anchors | |
| offset | No | offset in the results array of returned anchors optional field default value: 0 if you specify the 10 value, the first ten anchors in the results array will be omitted and the data will be provided for the successive anchors | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: =, <>, in, not_in, like, not_like, ilike, not_ilike, regex, not_regex, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rank",">","80"] [["page_from_rank",">","55"], "and", ["dofollow","=",true]] [["first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["anchor","like","%seo%"],"or",["text_pre","like","%seo%"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["rank,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["domain_from_rank,desc","page_from_rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool provides 'a detailed overview' and 'relevant backlink data', but fails to describe critical behaviors: whether this is a read-only operation, if it requires authentication, rate limits, pagination details beyond limit/offset, error handling, or the structure of the returned data. For a tool with 5 parameters and no output schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a tool with this complexity, though it could be slightly more structured by explicitly mentioning key capabilities like filtering and sorting that are detailed in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no annotations, no output schema, and many sibling tools), the description is inadequate. It doesn't explain the return format, differentiate from alternatives, or provide behavioral context needed for safe invocation. The agent would struggle to use this tool effectively without additional documentation or trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning about parameters beyond implying the tool returns anchor data for backlinks. It doesn't explain relationships between parameters (e.g., how filters interact with order_by) or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a detailed overview of anchors used when linking to the specified website with relevant backlink data for each of them'. It specifies the verb ('provide'), resource ('anchors'), and scope ('linking to the specified website'), though it doesn't explicitly differentiate from sibling tools like 'backlinks_backlinks' or 'backlinks_summary', which appear related but have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With many sibling tools in the 'backlinks_' category (e.g., 'backlinks_backlinks', 'backlinks_summary', 'backlinks_competitors'), there's no indication of how this tool differs or when it's the appropriate choice, leaving the agent to guess based on names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_available_filtersC
Here you will find all the necessary information about filters that can be used with DataForSEO Backlinks API endpoints.
Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | The name of the tool to get filters for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It hints at behavioral aspects by noting filters are 'associated with a certain object,' but fails to disclose key traits like whether this is a read-only operation, what the output format is, any rate limits, or authentication needs. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and avoids unnecessary length, but it's not optimally front-loaded—the first sentence is somewhat generic, and the second adds context but could be more direct. It's concise but lacks the crispness of higher-scoring examples, with room for improvement in structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (providing filter information for API endpoints) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the tool returns, how to interpret the filters, or any dependencies, making it inadequate for effective use without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage ('tool' parameter is documented), so the baseline is 3. The description does not add any meaning beyond the schema, as it doesn't explain the 'tool' parameter's purpose or usage in context, but the schema adequately covers it, resulting in a minimal viable score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides 'information about filters that can be used with DataForSEO Backlinks API endpoints,' which gives a general purpose but is vague about what specific action the tool performs (e.g., list, retrieve, describe). It doesn't clearly distinguish from sibling tools like 'backlinks_available_filters' vs. 'dataforseo_labs_available_filters' or other filter-related tools, making it tautological in restating the tool name's implication without specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that 'filters are associated with a certain object in the result array, and should be specified accordingly,' which offers some implied context but lacks explicit guidance on when to use this tool versus alternatives (e.g., other filter tools or backlinks endpoints). No when-not-to-use or prerequisite information is provided, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_backlinksC
This endpoint will provide you with a list of backlinks and relevant data for the specified domain, subdomain, or webpage
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| mode | No | results grouping type optional field possible grouping types: as_is – returns all backlinks one_per_domain – returns one backlink per domain one_per_anchor – returns one backlink per anchor default value: as_is | as_is |
| limit | No | the maximum number of returned backlinks | |
| offset | No | offset in the results array of the returned backlinks optional field default value: 0 if you specify the 10 value, the first ten backlinks in the results array will be omitted and the data will be provided for the successive backlinks | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: =, <>, in, not_in, like, not_like, ilike, not_ilike, regex, not_regex, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rank",">","80"] [["page_from_rank",">","55"], "and", ["dofollow","=",true]] [["first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["anchor","like","%seo%"],"or",["text_pre","like","%seo%"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["rank,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["domain_from_rank,desc","page_from_rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool 'will provide you with a list of backlinks and relevant data,' which implies a read-only operation, but it does not cover important aspects like rate limits, authentication requirements, pagination behavior (beyond parameters), error conditions, or data freshness. For a tool with 6 parameters and no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the tool's purpose without unnecessary words. It is front-loaded with the core functionality and avoids redundancy. Every part of the sentence contributes directly to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits (e.g., rate limits, auth), output structure, and differentiation from sibling tools. While the schema covers parameters well, the description does not compensate for the missing annotations and output schema, leaving significant gaps for an agent to understand the tool fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description does not add any additional meaning or context about the parameters beyond what is already in the schema (e.g., it doesn't explain what 'backlinks and relevant data' includes or how results are structured). With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a list of backlinks and relevant data for the specified domain, subdomain, or webpage.' It specifies the verb ('provide'), resource ('backlinks and relevant data'), and target scope ('domain, subdomain, or webpage'). However, it does not explicitly differentiate from sibling tools like 'backlinks_anchors' or 'backlinks_summary,' which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With many sibling tools in the 'backlinks_' category (e.g., 'backlinks_anchors', 'backlinks_summary', 'backlinks_competitors'), there is no indication of how this tool differs or when it should be preferred. This lack of contextual guidance makes it harder for an agent to select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_backlinksB
This endpoint will provide you with the number of backlinks pointing to domains, subdomains, and pages specified in the targets array. The returned numbers correspond to all live backlinks, that is, total number of referring links with all attributes (e.g., nofollow, noreferrer, ugc, sponsored etc) that were found during the latest check. Note that if you indicate a domain as a target, you will get results for the root domain (domain with all of its subdomains), e.g. dataforseo.com and app.dataforseo.com
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool provides counts of 'all live backlinks' including various attributes (e.g., nofollow) and is based on the 'latest check,' which adds useful context about data freshness and inclusivity. However, it lacks details on permissions, rate limits, or error handling, which are important for a bulk operation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the core purpose and scope, and the second clarifies domain handling. It is front-loaded with key information and avoids unnecessary details, though the second sentence could be integrated more seamlessly for slightly better flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (bulk backlink counts), no annotations, and no output schema, the description is somewhat complete but has gaps. It explains what the tool does and data specifics, but lacks information on output format (e.g., structure of returned counts), error cases, or performance considerations, which are important for effective use by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'targets' parameter with examples and constraints. The description adds minimal value by mentioning 'targets array' and clarifying domain/subdomain/page distinctions, but does not provide additional semantics beyond what the schema already covers, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the number of backlinks pointing to domains, subdomains, and pages specified in the targets array.' It specifies the verb ('provide'), resource ('number of backlinks'), and scope ('domains, subdomains, and pages'), but does not explicitly differentiate from sibling tools like 'backlinks_backlinks' or 'backlinks_summary', which likely serve similar purposes with different scopes or details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying that it returns 'all live backlinks' from the 'latest check' and clarifies domain vs. subdomain handling. However, it does not explicitly state when to use this tool versus alternatives (e.g., 'backlinks_backlinks' for detailed backlink lists or 'backlinks_summary' for aggregated metrics), leaving the agent to infer based on the 'bulk' nature and focus on counts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_new_lost_backlinksB
This endpoint will provide you with the number of referring domains pointing to domains, subdomains, and pages specified in the targets array. The returned numbers are based on all live referring domains, that is, total number of domains pointing to the target with any type of backlinks (e.g., nofollow, noreferrer, ugc, sponsored etc) that were found during the latest check. Note that if you indicate a domain as a target, you will get result for the root domain (domain with all of its subdomains), e.g. dataforseo.com and app.dataforseo.com
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] | |
| date_from | No | starting date of the time range optional field this field indicates the date which will be used as a threshold for new and lost backlinks; the backlinks that appeared in our index after the specified date will be considered as new; the backlinks that weren’t found after the specified date, but were present before, will be considered as lost; default value: today’s date -(minus) one month; e.g. if today is 2021-10-13, default date_from will be 2021-09-13. minimum value equals today’s date -(minus) one year; e.g. if today is 2021-10-13, minimum date_from will be 2020-10-13. date format: "yyyy-mm-dd" example: "2021-01-01" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds some context: it specifies that results are based on 'all live referring domains' and 'latest check', and clarifies domain vs. subdomain handling. However, it lacks details on permissions, rate limits, error handling, or response format, leaving gaps for a tool with potential data sensitivity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the first sentence stating the core purpose. The second sentence adds important behavioral context, and the note clarifies domain handling. There is no wasted text, though it could be slightly more structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic purpose and some behavioral context but is incomplete. It lacks details on output format, error cases, or advanced usage scenarios, which are important for a tool with two parameters and no structured output documentation. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'targets array' and implies date-based filtering for 'new and lost backlinks', but does not provide additional syntax or format details. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the number of referring domains pointing to domains, subdomains, and pages specified in the targets array.' It specifies the verb ('provide'), resource ('number of referring domains'), and scope ('targets array'), but does not explicitly differentiate from sibling tools like 'backlinks_bulk_referring_domains' or 'backlinks_bulk_new_lost_referring_domains', which likely offer similar backlink data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by detailing what the tool returns (e.g., based on 'latest check' and handling of domains vs. subdomains), but does not explicitly state when to use this tool versus alternatives. It mentions that results are for 'new and lost backlinks' via the 'date_from' parameter context, but lacks direct guidance on scenarios or prerequisites for choosing this over other backlink tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_new_lost_referring_domainsC
This endpoint will provide you with the number of referring domains pointing to the domains, subdomains and pages specified in the targets array. Note that if you indicate a domain as a target, you will get result for the root domain (domain with all of its subdomains), e.g. dataforseo.com and app.dataforseo.com
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] | |
| date_from | No | starting date of the time range optional field this field indicates the date which will be used as a threshold for new and lost backlinks; the backlinks that appeared in our index after the specified date will be considered as new; the backlinks that weren’t found after the specified date, but were present before, will be considered as lost; default value: today’s date -(minus) one month; e.g. if today is 2021-10-13, default date_from will be 2021-09-13. minimum value equals today’s date -(minus) one year; e.g. if today is 2021-10-13, minimum date_from will be 2020-10-13. date format: "yyyy-mm-dd" example: "2021-01-01" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool provides data on 'new and lost' referring domains (implied by the tool name and date_from parameter context), but does not explain what 'new and lost' means operationally, rate limits, authentication needs, or output format. The description is insufficient for a tool that likely involves data retrieval with temporal comparisons.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: one stating the purpose and another providing a clarifying note. It is front-loaded with the main functionality. However, the second sentence could be more tightly integrated, and there is some redundancy with schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving temporal analysis of referring domains for multiple targets), lack of annotations, and no output schema, the description is incomplete. It fails to explain key behavioral aspects like what 'new and lost' entails, how results are structured, or any limitations (e.g., data freshness, rate limits). The schema covers parameters well, but the overall context for effective tool use is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the two parameters (targets and date_from). The description adds minimal value beyond the schema, only reiterating that targets can include domains, subdomains, and pages, and hinting at domain handling. It does not provide additional semantic context or usage examples not already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the number of referring domains pointing to the domains, subdomains and pages specified in the targets array.' It specifies the verb ('provide'), resource ('number of referring domains'), and targets, but does not explicitly differentiate from sibling tools like 'backlinks_bulk_referring_domains' or 'backlinks_bulk_new_lost_backlinks', which may offer similar or overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a note about how domains are handled (root domain vs. subdomains), but provides no guidance on when to use this tool versus alternatives. With many sibling tools in the 'backlinks' category, there is no explicit mention of when this tool is appropriate or when to choose other tools like 'backlinks_bulk_referring_domains' or 'backlinks_bulk_new_lost_backlinks'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_pages_summaryA
This endpoint will provide you with a comprehensive overview of backlinks and related data for a bulk of up to 1000 pages, domains, or subdomains. If you indicate a single page as a target, you will get comprehensive summary data on all backlinks for that page.
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get summary data for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) you can specify up to 1000 pages, domains, or subdomains in each request. note that the URLs you set in a single request cannot belong to more than 100 different domains. | |
| include_subdomains | No | indicates if indirect links to the target will be included in the results if set to true, the results will include data on indirect links pointing to a page that either redirects to the target, or points to a canonical page if set to false, indirect links will be ignored |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: bulk processing capability (up to 1000 targets), support for different target types (pages, domains, subdomains), and handling of single targets. However, it does not mention rate limits, authentication needs, error handling, or response format details, leaving gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded with the main purpose. The first sentence covers bulk functionality, and the second clarifies single-target handling. There is no wasted text, but it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers the tool's purpose and basic usage but lacks details on behavioral aspects like rate limits, permissions, or response structure. For a tool with 2 parameters and 100% schema coverage, it meets minimum viability but has clear gaps in transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema, mentioning bulk limits and target types, but does not provide additional syntax or format details. With high schema coverage, the baseline is 3, but the description slightly enhances understanding of the 'targets' parameter's purpose, warranting a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a comprehensive overview of backlinks and related data for a bulk of up to 1000 pages, domains, or subdomains.' It specifies the verb ('provide'), resource ('backlinks and related data'), scope ('bulk of up to 1000'), and target types ('pages, domains, or subdomains'). It also distinguishes from sibling tools by focusing on bulk summary data rather than detailed backlink listings or other analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning bulk processing (up to 1000 targets) and specifying target types, but it does not explicitly state when to use this tool versus alternatives like 'backlinks_summary' or 'backlinks_domain_pages_summary' from the sibling list. It provides some guidance on single vs. bulk targets but lacks explicit comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_ranksA
This endpoint will provide you with rank scores of the domains, subdomains, and pages specified in the targets array. The score is based on the number of referring domains pointing to the specified domains, subdomains, or pages. The rank values represent real-time data for the date of the request and range from 0 (no backlinks detected) to 1,000 (highest rank). A similar scoring system is used in Google’s Page Rank algorithm
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] | |
| rank_scale | No | defines the scale used for calculating and displaying the rank, domain_from_rank, and page_from_rank values optional field you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale possible values: one_hundred — rank values are displayed on a 0–100 scale one_thousand — rank values are displayed on a 0–1000 scale | one_thousand |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining the scoring system, real-time nature, and range of values. However, it doesn't mention important behavioral aspects like rate limits, authentication requirements, potential costs, error handling, or whether this is a read-only operation (though implied by 'provide' and 'rank scores').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized at three sentences, front-loading the core purpose. Each sentence adds value: the first states what the tool does, the second explains the scoring basis, and the third provides scoring context and comparison. There's minimal wasted text, though the PageRank comparison could be more directly tied to the tool's functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate context about what the tool does and how scores are calculated. However, it lacks information about the response format, error conditions, rate limits, and authentication requirements that would be important for an AI agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds value by explaining what the rank scores represent ('based on the number of referring domains') and comparing the scoring system to Google's PageRank, which provides important semantic context beyond what's in the parameter descriptions. However, it doesn't explicitly connect these explanations to the specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with rank scores of the domains, subdomains, and pages specified in the targets array' with specific details about what the score measures ('based on the number of referring domains') and the output format ('range from 0 to 1,000'). It distinguishes itself from sibling tools like 'backlinks_bulk_spam_score' or 'backlinks_summary' by focusing specifically on rank scores rather than other backlink metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'real-time data for the date of the request' and the scoring system comparison to PageRank, but doesn't explicitly state when to use this tool versus alternatives like 'backlinks_bulk_referring_domains' or 'backlinks_domain_rank_overview'. It provides some contextual information but lacks explicit guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_referring_domainsB
This endpoint will provide you with the number of referring domains pointing to domains, subdomains, and pages specified in the targets array. The returned numbers are based on all live referring domains, that is, total number of domains pointing to the target with any type of backlinks (e.g., nofollow, noreferrer, ugc, sponsored etc) that were found during the latest check. Note that if you indicate a domain as a target, you will get result for the root domain (domain with all of its subdomains), e.g. dataforseo.com and app.dataforseo.com
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that results include 'all live referring domains' with 'any type of backlinks' and are from the 'latest check,' adding useful behavioral context. However, it lacks details on rate limits, authentication needs, error handling, or response format (since no output schema exists). The description provides some transparency but misses key operational aspects for a bulk query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise and well-structured. The first sentence clearly states the core functionality, followed by clarifying notes on data recency and domain handling. Each sentence adds value without redundancy, and the text is front-loaded with the main purpose. It could be slightly more efficient by integrating the domain clarification into the initial statement, but overall it avoids waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (bulk querying of referring domains), the description is moderately complete. It covers the purpose and key behavioral notes but lacks output details (no schema provided) and does not address usage relative to siblings. With no annotations and a single well-documented parameter, the description provides a basic understanding but leaves gaps in operational guidance and result interpretation, making it adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, thoroughly documenting the 'targets' parameter with examples and formatting rules. The description adds minimal semantic value beyond this, only reiterating that targets include 'domains, subdomains, and pages.' Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description does not compensate with additional insights but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the number of referring domains pointing to domains, subdomains, and pages specified in the targets array.' It specifies the verb ('provide'), resource ('number of referring domains'), and scope ('targets array'), but does not explicitly differentiate from sibling tools like 'backlinks_referring_domains' or 'backlinks_bulk_new_lost_referring_domains', which appear related. This makes it clear but not fully distinct from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It notes that results are based on 'all live referring domains' from the 'latest check' and clarifies domain vs. subdomain handling, but does not specify when to use this tool versus sibling tools (e.g., 'backlinks_referring_domains' for single targets or 'backlinks_bulk_new_lost_referring_domains' for changes over time). No explicit alternatives, prerequisites, or exclusions are mentioned, leaving the agent with little contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_bulk_spam_scoreC
This endpoint will provide you with spam scores of the domains, subdomains, and pages you specified in the targets array. Spam Score is DataForSEO’s proprietary metric that indicates how “spammy” your target is on a scale from 0 to 100
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get rank for required field you can set up to 1000 domains, subdomains or webpages the domain or subdomain should be specified without https:// and www. the page should be specified with absolute URL (including http:// or https://) example: "targets": [ "forbes.com", "cnn.com", "bbc.com", "yelp.com", "https://www.apple.com/iphone/", "https://ahrefs.com/blog/", "ibm.com", "https://variety.com/", "https://stackoverflow.com/", "www.trustpilot.com" ] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the spam score metric and scale, but lacks critical behavioral details: whether this is a read-only operation, rate limits, authentication requirements, response format, pagination, or error handling. For a bulk processing tool with no annotations, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly state the tool's function and explain the spam score metric. There's no unnecessary information, and it's front-loaded with the core purpose. It could be slightly improved by adding a brief usage context, but it's efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., structured data with scores per target), error conditions, or performance characteristics. Given the complexity of bulk processing and the lack of structured metadata, the description should provide more operational context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing comprehensive details about the 'targets' parameter including format, examples, and constraints. The description adds minimal value beyond the schema by mentioning that targets include 'domains, subdomains, and pages' and that spam scores are returned. This meets the baseline for high schema coverage where the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with spam scores of the domains, subdomains, and pages you specified in the targets array.' It includes a specific verb ('provide') and resource ('spam scores'), and explains the proprietary metric scale (0-100). However, it doesn't explicitly differentiate from sibling tools like 'backlinks_bulk_ranks' or 'backlinks_bulk_pages_summary' that also process bulk targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or specific use cases. The only contextual information is the target format, which is covered in the schema. Without usage context, an agent might struggle to choose between this and other bulk backlink tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_competitorsC
This endpoint will provide you with a list of competitors that share some part of the backlink profile with a target website, along with a number of backlink intersections and the rank of every competing website
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned domains | |
| offset | No | offset in the results array of returned networks optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive pages | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rank",">","100"] [["target","like","%forbes%"], "and", [["rank",">","100"],"or",["intersections",">","5"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["rank,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["intersections,desc","rank,asc"] | |
| main_domain | No | indicates if only main domain of the target will be included in the search if set to true, only the main domain will be included in search | |
| exclude_large_domains | No | indicates whether large domain will appear in results if set to true, the results from the large domain (google.com, amazon.com, etc.) will be omitted | |
| exclude_internal_backlinks | No | indicates if internal backlinks from subdomains to the target will be excluded from the results if set to true, the results will not include data on internal backlinks from subdomains of the same domain as target if set to false, internal links will be included in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the output includes 'backlink intersections and the rank of every competing website', it doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or pagination behavior. For a tool with 8 parameters and no annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly states the tool's core functionality. It's appropriately sized and front-loaded with the main purpose. There's no wasted verbiage or unnecessary elaboration, though it could potentially benefit from a brief second sentence about usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no annotations, and no output schema, the description is insufficiently complete. While concise, it doesn't address behavioral aspects, usage context, or output format details. The agent would need to rely heavily on the input schema alone, missing important contextual information about how and when to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'backlink intersections' and 'rank' which relate to output, not input parameters. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to provide a list of competitors sharing backlink profiles with a target website, including backlink intersections and competitor ranks. It specifies the verb ('provide') and resource ('list of competitors'), but doesn't explicitly differentiate from sibling tools like 'backlinks_domain_intersection' or 'backlinks_referring_domains' that might also involve backlink analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools in the 'backlinks_' category (e.g., 'backlinks_domain_intersection', 'backlinks_referring_domains'), there's no indication of how this tool differs or when it's the appropriate choice. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_domain_intersectionB
This endpoint will provide you with the list of domains pointing to the specified websites. This endpoint is especially useful for creating a Link Gap feature that shows what domains link to your competitors but do not link out to your website
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get links for required field you can set up to 20 domains, subdomains or webpages a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned results | |
| offset | No | offset in the array of returned results optional field default value: 0 if you specify the 10 value, the first ten backlinks in the results array will be omitted and the data will be provided for the successive backlinks | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["1.internal_links_count",">","1"] [["2.referring_pages",">","2"], "and", ["1.backlinks",">","10"]] [["1.first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["2.target","like","%dataforseo.com%"],"or",["1.referring_domains",">","10"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["backlinks,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["backlinks,desc","rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'will provide you with the list of domains,' implying a read-only operation, but lacks details on permissions, rate limits, pagination (beyond the 'limit' and 'offset' parameters), error handling, or response format. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: one stating the purpose and another providing usage context. It's front-loaded with the core functionality and avoids unnecessary details. However, it could be slightly more structured by explicitly mentioning key parameters or limitations, but it's efficient and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It explains the purpose and a use case but lacks information on behavioral traits (e.g., data freshness, API constraints), output format, or error scenarios. For a tool that likely returns structured data with filtering and sorting, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the input schema already documents all parameters thoroughly. The description doesn't add any specific meaning or examples beyond what's in the schema (e.g., it doesn't clarify 'targets' beyond 'websites' or explain 'filters' in simpler terms). With high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the list of domains pointing to the specified websites.' It specifies the verb ('provide') and resource ('domains pointing to websites'), making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'backlinks_referring_domains' or 'backlinks_page_intersection,' which might offer similar functionality, so it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'especially useful for creating a Link Gap feature that shows what domains link to your competitors but do not link out to your website.' This gives a specific use case (competitive analysis for link gaps), but it doesn't explicitly state when not to use it or name alternatives among the sibling tools, which prevents a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_domain_pagesC
This endpoint will provide you with a detailed overview of domain pages with backlink data for each page
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned pages | |
| offset | No | offset in the results array of returned pages optional field default value: 0 if you specify the 10 value, the first ten pages in the results array will be omitted and the data will be provided for the successive pages | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["meta.internal_links_count",">","1"] [["meta.external_links_count",">","2"], "and", ["backlinks",">","10"]] [["first_visited",">","2017-10-23 11:31:45 +00:00"], "and", [["title","like","%seo%"],"or",["referring_domains",">","10"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["page_summary.backlinks,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["page_summary.backlinks,desc","page_summary.rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool 'will provide you with a detailed overview,' implying a read-only operation, but doesn't specify data freshness, rate limits, authentication requirements, or pagination behavior. For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It avoids redundancy and waste, making it appropriately concise. However, it could be slightly improved by structuring to highlight key constraints or usage scenarios, but it's well-sized for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., structure of backlink data), potential errors, or performance considerations. For a data retrieval tool with rich filtering options, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as clarifying the relationship between parameters or typical use cases. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a detailed overview of domain pages with backlink data for each page.' It specifies the resource (domain pages) and the data returned (backlink data), making the verb+resource relationship explicit. However, it doesn't differentiate from sibling tools like 'backlinks_domain_pages_summary' or 'backlinks_backlinks,' which reduces clarity in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools in the 'backlinks' category (e.g., 'backlinks_domain_pages_summary,' 'backlinks_backlinks'), there is no indication of how this tool differs or when it is preferred. Usage is implied only by the purpose statement, lacking explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_domain_pages_summaryC
This endpoint will provide you with detailed summary data on all backlinks and related metrics for each page of the target domain or subdomain you specify. If you indicate a single page as a target, you will get comprehensive summary data on all backlinks for that page
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned anchors | |
| offset | No | offset in the results array of returned anchors optional field default value: 0 if you specify the 10 value, the first ten anchors in the results array will be omitted and the data will be provided for the successive anchors | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["referring_links_types.anchors",">","1"] [["broken_pages",">","2"], "and", ["backlinks",">","10"]] [["first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["anchor","like","%seo%"],"or",["referring_domains",">","10"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["backlinks,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["backlinks,desc","rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool provides 'detailed summary data' and handles both domains and single pages, it fails to disclose critical behavioral traits: whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior (beyond the limit/offset parameters), or what format the 'summary data' returns. For a tool with 5 parameters and complex filtering capabilities, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise—two sentences that directly state the tool's core functionality. It's front-loaded with the main purpose and efficiently covers the domain vs. page distinction. No wasted words or redundant information, though it could benefit from more structured guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters with rich filtering/sorting capabilities) and lack of both annotations and output schema, the description is insufficient. It doesn't explain what 'detailed summary data' includes, how results are structured, whether operations are idempotent, or any error conditions. For a data retrieval tool with pagination and filtering, users need more context about output format and behavioral constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema—it doesn't clarify the 'target' parameter's format beyond what the schema says, nor does it explain how 'filters' or 'order_by' interact with the summary output. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide detailed summary data on all backlinks and related metrics for each page of the target domain or subdomain.' It specifies the verb ('provide'), resource ('backlinks and related metrics'), and scope ('domain, subdomain, or webpage'). However, it doesn't explicitly differentiate from sibling tools like 'backlinks_summary' or 'backlinks_domain_pages', which might offer similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It explains what happens when you specify a domain vs. a single page, but offers no advice on when to use this tool versus alternatives like 'backlinks_summary' or 'backlinks_domain_pages' from the sibling list. There's no mention of prerequisites, typical use cases, or performance considerations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_page_intersectionB
This endpoint will provide you with the list of domains pointing to the specified websites. This endpoint is especially useful for creating a Link Gap feature that shows what domains link to your competitors but do not link out to your website
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | domains, subdomains or webpages to get links for required field you can set up to 20 domains, subdomains or webpages a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned results | |
| offset | No | offset in the array of returned results optional field default value: 0 if you specify the 10 value, the first ten backlinks in the results array will be omitted and the data will be provided for the successive backlinks | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["1.rank",">","80"] [["2.page_from_rank",">","55"], "and", ["1.original","=","true"]] [["1.first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["1.anchor","like","%seo%"],"or",["1.text_pre","not_like","%seo%"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["rank,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["domain_from_rank,desc","page_from_rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'will provide you with the list of domains,' implying a read-only operation, but doesn't specify any behavioral traits like rate limits, authentication needs, pagination behavior, or what happens if targets exceed limits. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the purpose, and the second provides usage context. It's front-loaded with the core functionality and avoids unnecessary details. However, the second sentence could be slightly more concise, but overall it's efficient with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, no annotations), the description is incomplete. It explains the purpose and a use case but lacks details on behavioral aspects like response format, error handling, or constraints. For a tool that likely returns structured backlink data, this leaves significant gaps for an AI agent to understand how to interpret results or handle edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's already in the input schema, which has 100% schema description coverage. It mentions 'specified websites' which aligns with the 'targets' parameter but doesn't explain semantics for 'limit,' 'offset,' 'filters,' or 'order_by.' With high schema coverage, the baseline is 3, as the schema does the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the list of domains pointing to the specified websites.' It specifies the verb ('provide') and resource ('domains pointing to websites'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'backlinks_domain_intersection' or 'backlinks_backlinks,' which likely serve related but distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'especially useful for creating a Link Gap feature that shows what domains link to your competitors but do not link out to your website.' This gives a specific scenario for when to use the tool. However, it doesn't explicitly state when not to use it or name alternative tools for different use cases, such as filtering or bulk operations available in other backlinks siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_referring_domainsC
This endpoint will provide you with a detailed overview of referring domains pointing to the target you specify
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| limit | No | the maximum number of returned pages | |
| offset | No | offset in the results array of returned pages optional field default value: 0 if you specify the 10 value, the first ten pages in the results array will be omitted and the data will be provided for the successive pages | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["meta.internal_links_count",">","1"] [["meta.external_links_count",">","2"], "and", ["backlinks",">","10"]] [["first_visited",">","2017-10-23 11:31:45 +00:00"], "and", [["title","like","%seo%"],"or",["referring_domains",">","10"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["page_summary.backlinks,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["page_summary.backlinks,desc","page_summary.rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool provides a 'detailed overview,' implying a read-only operation, but doesn't clarify if it's safe, if it has rate limits, authentication needs, or what the output format entails (e.g., pagination, data structure). For a tool with complex parameters like filters and order_by, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It avoids redundancy and wastes no words, making it easy to parse quickly. This is ideal for conciseness, as every part of the sentence contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is inadequate. It doesn't explain the output format, behavioral traits like safety or limits, or how to interpret results. While the schema covers inputs well, the description fails to provide necessary context for effective use, especially for a data-fetching tool with filtering and sorting capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the input schema fully documents all 5 parameters with detailed descriptions and examples. The description adds no additional parameter semantics beyond implying the 'target' is for backlinks, which is already clear from the schema. Thus, it meets the baseline of 3, as the schema does the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a detailed overview of referring domains pointing to the target you specify.' It uses specific verbs ('provide,' 'pointing') and identifies the resource ('referring domains'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'backlinks_backlinks' or 'backlinks_referring_networks,' which likely offer related backlink data, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this is preferred, such as for domain-level vs. page-level analysis. Without any usage context, the agent must infer based on the name alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_referring_networksC
This endpoint will provide you with a detailed overview of referring domains pointing to the target you specify
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| network_address_type | No | indicates the type of network to get data for optional field possible values: ip, subnet default value: ip | ip |
| limit | No | the maximum number of returned networks | |
| offset | No | offset in the results array of returned networks optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive pages | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, =, <>, in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["referring_pages",">","1"] [["referring_pages",">","2"], "and", ["backlinks",">","10"]] [["first_seen",">","2017-10-23 11:31:45 +00:00"], "and", [["network_address","like","194.1.%"],"or",["referring_ips",">","10"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["backlinks,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["backlinks,desc","rank,asc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool as providing 'a detailed overview' but doesn't specify what that overview contains, whether it's paginated (though the schema suggests it is via limit/offset), rate limits, authentication requirements, or potential costs/limitations. For a tool with 6 parameters and complex filtering capabilities, this minimal description leaves significant behavioral aspects undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states the tool's purpose. There's no wasted language, repetition, or unnecessary elaboration. It's front-loaded with the core functionality and doesn't bury important information. For a tool with comprehensive schema documentation, this brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters including complex filtering arrays), lack of annotations, and no output schema, the single-sentence description is inadequate. The schema handles parameter documentation well, but the description fails to provide necessary context about what 'referring networks' means versus 'referring domains', what the output structure looks like, or behavioral considerations. For a tool with this level of complexity, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions. It mentions 'the target you specify' which aligns with the 'target' parameter, but provides no extra context about parameter usage, relationships, or examples beyond what the schema already contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a detailed overview of referring domains pointing to the target you specify.' It specifies the verb ('provide'), resource ('detailed overview of referring domains'), and target scope ('pointing to the target you specify'). However, it doesn't explicitly differentiate from sibling tools like 'backlinks_referring_domains' or 'backlinks_backlinks', which likely provide similar backlink data but at different granularity levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple backlinks-related sibling tools (e.g., 'backlinks_referring_domains', 'backlinks_backlinks', 'backlinks_summary'), there's no indication of what makes this 'referring networks' tool distinct or when it should be preferred over other backlink analysis tools. The description only states what the tool does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_summaryC
This endpoint will provide you with an overview of backlinks data available for a given domain, subdomain, or webpage
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain, subdomain or webpage to get backlinks for required field a domain or a subdomain should be specified without https:// and www. a page should be specified with absolute URL (including http:// or https://) | |
| include_subdomains | No | indicates if indirect links to the target will be included in the results if set to true, the results will include data on indirect links pointing to a page that either redirects to the target, or points to a canonical page if set to false, indirect links will be ignored | |
| exclude_internal_backlinks | No | indicates if internal backlinks from subdomains to the target will be excluded from the results if set to true, the results will not include data on internal backlinks from subdomains of the same domain as target if set to false, internal links will be included in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool provides an 'overview' but doesn't disclose behavioral traits like whether it's a read-only operation, what the output format looks like, if there are rate limits, authentication requirements, or potential costs. For a data-fetching tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It wastes no words and is appropriately sized for a tool with a clear function, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of backlinks analysis and the lack of annotations and output schema, the description is insufficient. It doesn't explain what an 'overview' entails (e.g., summary statistics, aggregated metrics), how it differs from detailed backlinks tools, or what the agent can expect in return. For a tool in a crowded namespace with no structured output guidance, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description mentions 'domain, subdomain, or webpage' which aligns with the 'target' parameter but adds no additional meaning beyond what's in the schema. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with an overview of backlinks data available for a given domain, subdomain, or webpage.' It specifies the verb ('provide') and resource ('backlinks data'), but doesn't explicitly differentiate from sibling tools like 'backlinks_backlinks' or 'backlinks_summary' variants, which likely provide different levels of detail or aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. With many sibling tools related to backlinks (e.g., 'backlinks_backlinks', 'backlinks_competitors', 'backlinks_timeseries_summary'), there's no indication of what makes this 'overview' distinct or when it's preferred over other backlinks tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_timeseries_new_lost_summaryA
This endpoint will provide you with the number of new and lost backlinks and referring domains for the domain specified in the target field. The results will be provided for a period between the two indicated dates, and metrics will be grouped by the time range that you define: day, week, month, or year. Data from this endpoint will be especially helpful for building time-series graphs of new and lost backlinks and referring domains.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain to get data for required field a domain should be specified without https:// and www. example: "forbes.com" | |
| date_from | No | starting date of the time range optional field this field indicates the date which will be used as a threshold for summary data; minimum value: 2019-01-30 maximum value shouldn’t exceed the date specified in the date_to date format: "yyyy-mm-dd" example: "2021-01-01" | |
| date_to | No | ending date of the time range optional field if you don’t specify this field, the today’s date will be used by default minimum value shouldn’t preceed the date specified in the date_from maximum value: today’s date date format: "yyyy-mm-dd" example: "2021-01-15" | |
| group_range | No | time range which will be used to group the results optional field default value: month possible values: day, week, month, year note: for day, we will return items corresponding to all dates between and including date_from and date_to; for week/month/year, we will return items corresponding to full weeks/months/years, where each item will indicate the last day of the week/month/year for example, if you specify: "group_range": "month", "date_from": "2022-03-23", "date_to": "2022-05-13" we will return items falling between 2022-03-01 and 2022-05-31, namely, three items corresponding to the following dates: 2022-03-31, 2022-04-30, 2022-05-31 if there is no data for a certain day/week/month/year, we will return 0 | month |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (counts of new/lost backlinks and referring domains) and the grouping behavior. However, it doesn't mention important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or what happens when no data exists for certain periods (though the schema mentions returning 0).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that each serve a purpose: stating what the tool provides, describing the time parameters, and explaining the primary use case. It's front-loaded with the core functionality. While efficient, the third sentence could be slightly more concise by integrating the use case context earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (time-series analysis with grouping), no annotations, and no output schema, the description provides adequate but incomplete context. It explains what metrics are returned and their use case, but doesn't describe the output format, potential limitations, or how to interpret the results. For a time-series tool with no output schema, more detail about the return structure would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions the target field and date range parameters but doesn't provide additional semantic context. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('provide you with the number of new and lost backlinks and referring domains'), resource ('for the domain specified'), and scope ('for a period between the two indicated dates, and metrics will be grouped by the time range'). It distinguishes from sibling tools like 'backlinks_summary' or 'backlinks_timeseries_summary' by focusing specifically on new/lost metrics for time-series analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Data from this endpoint will be especially helpful for building time-series graphs of new and lost backlinks and referring domains.' This provides clear context about its primary use case. However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinks_timeseries_summaryB
This endpoint will provide you with an overview of backlink data for the target domain available during a period between the two indicated dates. Backlink metrics will be grouped by the time range that you define: day, week, month, or year. Data from this endpoint will be especially helpful for building time-series graphs of daily, weekly, monthly, and yearly link-building progress
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain to get data for required field a domain should be specified without https:// and www. example: "forbes.com" | |
| date_from | No | starting date of the time range optional field this field indicates the date which will be used as a threshold for summary data; minimum value: 2019-01-30 maximum value shouldn’t exceed the date specified in the date_to date format: "yyyy-mm-dd" example: "2021-01-01" | |
| date_to | No | ending date of the time range optional field if you don’t specify this field, the today’s date will be used by default minimum value shouldn’t preceed the date specified in the date_from maximum value: today’s date date format: "yyyy-mm-dd" example: "2021-01-15" | |
| group_range | No | time range which will be used to group the results optional field default value: month possible values: day, week, month, year note: for day, we will return items corresponding to all dates between and including date_from and date_to; for week/month/year, we will return items corresponding to full weeks/months/years, where each item will indicate the last day of the week/month/year for example, if you specify: "group_range": "month", "date_from": "2022-03-23", "date_to": "2022-05-13" we will return items falling between 2022-03-01 and 2022-05-31, namely, three items corresponding to the following dates: 2022-03-31, 2022-04-30, 2022-05-31 if there is no data for a certain day/week/month/year, we will return 0 | month |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions grouping behavior and that 'if there is no data for a certain day/week/month/year, we will return 0,' which adds useful context. However, it doesn't disclose critical behavioral traits such as rate limits, authentication needs, data freshness, error handling, or pagination. For a data retrieval tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded with core functionality. The first sentence covers purpose and key parameters, while the second adds usage context. There's no redundant information, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (time-series data with grouping), no annotations, and no output schema, the description is moderately complete. It explains the grouping logic and data gaps, but lacks details on output format, error cases, or performance considerations. It's adequate for basic use but has clear gaps for advanced scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds minimal value beyond the schema, only implying the grouping functionality without providing additional syntax or format details. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with an overview of backlink data for the target domain available during a period between the two indicated dates' and specifies that metrics are 'grouped by the time range that you define.' It distinguishes from siblings by focusing on time-series summary rather than other backlink analyses like anchors, competitors, or summary. However, it doesn't explicitly contrast with 'backlinks_timeseries_new_lost_summary' which appears to be a close sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'Data from this endpoint will be especially helpful for building time-series graphs of daily, weekly, monthly, and yearly link-building progress,' which suggests when to use it. However, it lacks explicit guidance on when to choose this tool over alternatives like 'backlinks_summary' or 'backlinks_timeseries_new_lost_summary,' and doesn't mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
business_data_business_listings_searchC
Business Listings Search API provides results containing information about business entities listed on Google Maps in the specified categories. You will receive the address, contacts, rating, working hours, and other relevant data
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | description of the element in SERP optional field the description of the business entity for which the results are collected; can contain up to 200 characters | |
| title | No | title of the element in SERP optional field the name of the business entity for which the results are collected; can contain up to 200 characters | |
| categories | No | business categories the categories you specify are used to search for business listings; if you don’t use this field, we will return business listings found in the specified location; you can specify up to 10 categories | |
| location_coordinate | No | GPS coordinates of a location optional field location_coordinate parameter should be specified in the “latitude,longitude,radius” format the maximum number of decimal digits for “latitude” and “longitude”: 7 the value of “radius” is specified in kilometres (km) the minimum value for “radius”: 1 the maximum value for “radius”: 100000 example: 53.476225,-2.243572,200 | |
| limit | No | the maximum number of returned businesses | |
| offset | No | offset in the results array of returned businesses optional field default value: 0 if you specify the 10 value, the first ten entities in the results array will be omitted and the data will be provided for the successive entities | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like, not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rating.value",">",3] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["rating.value,desc"]note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["rating.value,desc","rating.votes_count,desc"] | |
| is_claimed | No | indicates whether the business is verified by its owner on Google Maps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral information. It mentions the API returns results but doesn't disclose rate limits, authentication requirements, pagination behavior beyond offset/limit parameters, error conditions, or whether this is a read-only operation. The description is insufficient for a search tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently convey the core functionality. It's front-loaded with the main purpose and follows with the data returned. No wasted words, though it could be slightly more structured with bullet points for the returned data fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the response format, error handling, rate limits, authentication requirements, or how results are structured. The agent would need to rely heavily on the input schema alone without sufficient context about the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds no parameter-specific information beyond mentioning 'specified categories' and the types of data returned. It doesn't explain parameter interactions or provide examples beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for business listings on Google Maps and returns specific data fields like address, contacts, rating, and working hours. It specifies the resource (business entities on Google Maps) and verb (search), but doesn't differentiate from sibling tools, which appear unrelated to business listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description mentions searching 'in the specified categories' but doesn't explain when categories should be used versus location-based searches or how this tool relates to other search tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_analysis_phrase_trendsC
This endpoint will provide you with data on all citations of the target keyword for the indicated date range
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | target keyword Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; | |
| keyword_fields | No | target keyword fields and target keywords use this parameter to filter the dataset by keywords that certain fields should contain; you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: { "snippet": "\"logitech mouse\"", "main_title": "sale" } | |
| page_type | No | target page types | |
| initial_dataset_filters | No | initial dataset filtering parameters initial filtering parameters that apply to fields in the Search endpoint; you can add several filters at once (8 filters maximum); you should set a logical operator and, or between the conditions; the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like,not_like, has, has_not, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters; example: ["domain","<>", "logitech.com"] [["domain","<>","logitech.com"],"and",["content_info.connotation_types.negative",">",1000]] [["domain","<>","logitech.com"]], "and", [["content_info.connotation_types.negative",">",1000], "or", ["content_info.text_category","has",10994]] | |
| date_from | Yes | starting date of the time range date format: "yyyy-mm-dd" | |
| date_to | No | ending date of the time range date format: "yyyy-mm-dd" | |
| date_group | No | date grouping type | month |
| internal_list_limit | No | maximum number of elements within internal arrays you can use this field to limit the number of elements within the following arrays |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'will provide you with data', implying a read-only operation, but doesn't cover critical aspects like rate limits, authentication needs, data format, pagination, or error handling. For a data retrieval tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It's appropriately sized for a tool where parameter details are handled in the schema, and every word earns its place by stating what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, nested objects, no output schema) and lack of annotations, the description is incomplete. It doesn't explain the return data structure, potential limitations, or how to interpret results. For a data analysis tool with rich input schema but no output guidance, more context is needed to help the agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain how parameters interact or provide usage examples. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate with extra insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with data on all citations of the target keyword for the indicated date range'. It specifies the verb ('provide data'), resource ('citations of the target keyword'), and scope ('date range'). However, it doesn't explicitly differentiate from sibling tools like 'content_analysis_search' or 'content_analysis_summary', which appear related but have different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or contextual cues for selection. The agent must infer usage based on the purpose alone, which is insufficient for a complex tool with many parameters and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_analysis_searchC
This endpoint will provide you with detailed citation data available for the target keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | target keyword Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; | |
| keyword_fields | No | target keyword fields and target keywords use this parameter to filter the dataset by keywords that certain fields should contain; you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: { "snippet": "\"logitech mouse\"", "main_title": "sale" } | |
| page_type | No | target page types | |
| search_mode | No | results grouping type | |
| limit | No | maximum number of results to return | |
| offset | No | offset in the results array of returned keywords | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like,not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["country","=", "US"] [["domain_rank",">",800],"and",["content_info.connotation_types.negative",">",0.9]] [["domain_rank",">",800], "and", [["page_types","has","ecommerce"], "or", ["content_info.text_category","has",10994]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["content_info.sentiment_connotations.anger,desc"] default rule: ["content_info.sentiment_connotations.anger,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["content_info.sentiment_connotations.anger,desc","keyword_data.keyword_info.cpc,desc"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'detailed citation data' but doesn't clarify what that includes (e.g., format, structure, or limitations). It doesn't address behavioral aspects like rate limits, authentication requirements, pagination behavior (beyond schema parameters), or whether this is a read-only operation. The description provides minimal behavioral context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately front-loaded with the main functionality. However, given the complexity of the tool (8 parameters, no annotations), it could benefit from slightly more structure to guide usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex search tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'citation data' includes, doesn't provide examples of typical use cases, and offers no guidance on result interpretation. The agent would struggle to understand what this tool actually returns and how to use it effectively despite the comprehensive parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters like 'keyword' and 'keyword_fields', or provide usage examples that combine multiple parameters. With complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'provide you with detailed citation data available for the target keyword', which gives a general purpose but is vague about what 'citation data' entails and doesn't specify the resource domain (e.g., web content analysis). It doesn't clearly distinguish from sibling tools like 'content_analysis_summary' or 'content_analysis_phrase_trends', leaving ambiguity about when to use this specific search tool versus alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description doesn't mention any prerequisites, context, or exclusions. Given the many sibling tools in the content_analysis category, this lack of differentiation is a significant gap that could lead to incorrect tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_analysis_summaryC
This endpoint will provide you with an overview of citation data available for the target keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | target keyword Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; | |
| keyword_fields | No | target keyword fields and target keywords use this parameter to filter the dataset by keywords that certain fields should contain; you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: { "snippet": "\"logitech mouse\"", "main_title": "sale" } | |
| page_type | No | target page types | |
| initial_dataset_filters | No | initial dataset filtering parameters initial filtering parameters that apply to fields in the Search endpoint; you can add several filters at once (8 filters maximum); you should set a logical operator and, or between the conditions; the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like,not_like, has, has_not, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters; example: ["domain","<>", "logitech.com"] [["domain","<>","logitech.com"],"and",["content_info.connotation_types.negative",">",1000]] [["domain","<>","logitech.com"]], "and", [["content_info.connotation_types.negative",">",1000], "or", ["content_info.text_category","has",10994]] | |
| positive_connotation_threshold | No | positive connotation threshold specified as the probability index threshold for positive sentiment related to the citation content if you specify this field, connotation_types object in the response will only contain data on citations with positive sentiment probability more than or equal to the specified value | |
| sentiments_connotation_threshold | No | sentiment connotation threshold specified as the probability index threshold for sentiment connotations related to the citation content if you specify this field, sentiment_connotations object in the response will only contain data on citations where the probability per each sentiment is more than or equal to the specified value | |
| internal_list_limit | No | maximum number of elements within internal arrays you can use this field to limit the number of elements within the following arrays |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it only states what the tool does without revealing any behavioral traits such as whether it's a read-only operation, rate limits, authentication needs, or what the output looks like. For a tool with 7 parameters and no output schema, this lack of transparency is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the tool's function without unnecessary words. It is front-loaded and to the point, though it could be more informative. There is no wasted verbiage, making it concise, but it lacks depth which affects its overall helpfulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity with 7 parameters, nested objects, no annotations, and no output schema, the description is incomplete. It does not explain the return values, behavioral aspects, or how to interpret results. For a tool that likely returns aggregated citation data, more context is needed to guide effective use, making this description insufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description does not add any additional meaning or context beyond what the schema provides, such as explaining how parameters interact or typical use cases. Since the schema handles the heavy lifting, a baseline score of 3 is appropriate, as the description neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'provide you with an overview of citation data available for the target keyword,' which is a tautology that essentially restates the tool name 'content_analysis_summary.' It lacks a specific verb and resource, and does not differentiate from sibling tools like 'content_analysis_search' or 'content_analysis_phrase_trends.' The purpose is vague and does not clarify what 'citation data' entails or how it differs from other content analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context for usage, or exclusions. With many sibling tools available, such as 'content_analysis_search' and 'content_analysis_phrase_trends,' there is no indication of when this summary tool is preferred over others, leading to potential misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_available_filtersC
Here you will find all the necessary information about filters that can be used with DataForSEO Labs API endpoints.
Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | The name of the tool to get filters for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that filters are 'associated with a certain object in the result array,' hinting at output structure, but doesn't describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and relatively concise, but it's not front-loaded with critical information. The first sentence is vague, and the second adds a useful but buried detail about filter association. While not wasteful, it could be more structured to prioritize clarity and actionable insights.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool that likely returns filter metadata for API endpoints, with no annotations and no output schema, the description is incomplete. It lacks details on what the output contains (e.g., filter names, types, usage examples), how to interpret results, or any behavioral context. This makes it inadequate for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage ('tool' as 'The name of the tool to get filters for'), so the schema does the heavy lifting. The description doesn't add any parameter-specific details beyond the schema, but with 0 parameters requiring extra semantics (only one well-documented parameter), a baseline of 4 is appropriate as it doesn't need to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides 'information about filters that can be used with DataForSEO Labs API endpoints,' which is a tautology of the tool name 'dataforseo_labs_available_filters.' It doesn't specify a clear verb (e.g., 'retrieve' or 'list') or distinguish from siblings like 'domain_analytics_technologies_available_filters' or 'ai_optimization_llm_mentions_filters.' The purpose is vague beyond restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a note about filters being 'associated with a certain object in the result array,' which implies some context for usage, but it doesn't explicitly state when to use this tool versus alternatives (e.g., other filter-related tools in the sibling list). No guidance on prerequisites, timing, or exclusions is provided, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_bulk_keyword_difficultyC
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.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the metric's meaning (logarithmic scale 0-100) and bulk limits, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, whether it requires authentication, rate limits, error handling, or what the output format looks like. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured in two sentences: the first states the tool's function and limits, the second explains the metric. There's no unnecessary fluff, and key information is front-loaded. However, it could be slightly more efficient by integrating the metric explanation more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (bulk keyword analysis), no annotations, and no output schema, the description is partially complete. It covers the core purpose and metric definition but misses behavioral context (e.g., safety, performance) and output details. It's adequate as a starting point but requires the agent to infer or seek additional information for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (keywords, location_name, language_code). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain keyword formatting, location/language implications, or default behaviors. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the Keyword Difficulty metric' for up to 1,000 keywords. It specifies the verb ('provide') and resource ('Keyword Difficulty metric'), and explains what the metric represents. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_overview' or 'keywords_data_google_ads_search_volume', which might offer related keyword metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the bulk capability (1,000 keywords) but doesn't compare it to other keyword analysis tools in the sibling list, such as those for search volume or historical data. There's no mention of prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_bulk_traffic_estimationC
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.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool provides 'estimated monthly traffic volumes' and lists traffic types (organic, paid, featured snippet, local pack), but doesn't disclose important behavioral aspects like rate limits, data freshness, accuracy limitations, authentication requirements, or whether this is a read-only operation. The description is insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that convey the core functionality and traffic breakdown. It's appropriately sized without unnecessary elaboration, though it could be slightly more front-loaded by mentioning the bulk capability earlier. Every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (structure, units, confidence intervals), doesn't mention performance characteristics (speed, limitations), and provides minimal behavioral context. The description should do more to compensate for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - it mentions 'domains, subdomains, or webpages' which aligns with the 'targets' parameter but provides no additional semantic context. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with estimated monthly traffic volumes for up to 1,000 domains, subdomains, or webpages' with specific traffic types listed. It uses a specific verb ('provide') and resource ('traffic volumes'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_historical_rank_overview' that might also provide traffic-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it mentions the tool handles 'up to 1,000 domains, subdomains, or webpages,' it doesn't indicate when bulk estimation is preferable over individual domain tools, nor does it reference any sibling tools for comparison. There are no usage prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_competitors_domainC
This endpoint will provide you with a full overview of ranking and traffic data of the competitor domains from organic and paid search. In addition to that, you will get the metrics specific to the keywords both competitor domains and your domain rank for within the same SERP.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]], "or", ["metrics.organic.etv",">=","100"]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] example: ["relevance,desc","keyword_info.search_volume,desc"] | |
| exclude_top_domains | No | indicates whether to exclude world's largest websites optional field default value: false set to true if you want to get highly-relevant competitors excluding the top websites | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the type of data returned (ranking, traffic, keyword metrics), it lacks critical behavioral details such as whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or pagination behavior. For a complex tool with 11 parameters, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary details. It's appropriately front-loaded with the main purpose. While it could potentially be split for clarity, it avoids redundancy and stays focused on the tool's value proposition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't address behavioral aspects like safety, performance, or error handling, and provides no guidance on interpreting results. For a tool that likely returns rich competitive analysis data, the description should offer more context about the output structure and typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema—it doesn't explain parameter relationships, provide usage examples, or clarify complex parameters like 'filters' and 'order_by.' With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'a full overview of ranking and traffic data of the competitor domains from organic and paid search' and 'metrics specific to the keywords both competitor domains and your domain rank for within the same SERP.' This is a specific verb+resource combination (analyze competitor domains and keyword metrics). However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_serp_competitors' or 'backlinks_competitors,' which may offer overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools in the 'dataforseo_labs_google_' and 'backlinks_' categories, there's no mention of specific use cases, prerequisites, or comparisons to help the agent choose appropriately. The description only states what the tool does, not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_domain_intersectionB
This endpoint will provide you with the keywords for which both specified domains rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on the first and second domain's SERP element discovered for this keyword, as well as the estimated traffic volume and cost of ad traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| target1 | Yes | target domain 1 | |
| target2 | Yes | target domain 2 | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_data.keyword_info.search_volume","in",[100,1000]] [["first_domain_serp_element.etv",">",0],"and",["first_domain_serp_element.description","like","%goat%"]] [["keyword_data.keyword_info.search_volume",">",100],"and",[["first_domain_serp_element.description","like","%goat%"],"or",["second_domain_serp_element.type","=","organic"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["keyword_data.keyword_info.competition,desc"] default rule: ["keyword_data.keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_data.keyword_info.search_volume,desc","keyword_data.keyword_info.cpc,desc"] | |
| intersections | No | domain intersections in SERP optional field if you set intersections to true, you will get the keywords for which both target domains specified as target1 and target2 have results within the same SERP; the corresponding SERP elements for both domains will be provided in the results array Note: this endpoint will not provide results if the number of intersecting keywords exceeds 10 million if you specify intersections: false, you will get the keywords for which the domain specified as target1 has results in SERP, and the domain specified as target2 doesn’t; thus, the corresponding SERP elements and other data will be provided for the domain specified as target1only default value: true | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the data returned (e.g., search volume, traffic estimates) but fails to disclose critical behavioral traits: it does not specify if this is a read-only or mutating operation, rate limits, authentication needs, or error conditions. The schema hints at a 10-million keyword limit, but the description does not surface this, leaving gaps in transparency for a complex tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by details on returned data. It uses two sentences efficiently, with no redundant information. However, it could be slightly more structured by separating usage context from data details, but overall it is concise and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no annotations, no output schema), the description is inadequate. It explains what the tool does but lacks context on behavioral aspects (e.g., safety, performance), output structure, or error handling. Without annotations or an output schema, the description should compensate more to guide effective use, but it falls short, leaving significant gaps for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description adds no specific parameter semantics beyond implying the use of 'target1' and 'target2' for domains. It does not explain parameter interactions or provide examples beyond what the schema offers, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the keywords for which both specified domains rank within the same SERP.' It specifies the verb ('provide'), resource ('keywords'), and scope ('both specified domains rank within the same SERP'), distinguishing it from sibling tools like 'dataforseo_labs_google_keywords_for_site' or 'dataforseo_labs_google_page_intersection' by focusing on domain intersection in SERP rankings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for comparing two domains' keyword rankings and provides some context about the data returned (e.g., search volume, SERP elements). However, it lacks explicit guidance on when to use this tool versus alternatives like 'dataforseo_labs_google_competitors_domain' or 'dataforseo_labs_google_ranked_keywords', and does not mention prerequisites or exclusions, such as the 10-million keyword limit noted in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_domain_rank_overviewC
This endpoint will provide you with ranking and traffic data from organic and paid search for the specified domain. You will be able to review the domain ranking distribution in SERPs as well as estimated monthly traffic volume for both organic and paid results.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool provides data but doesn't disclose behavioral traits such as whether it's a read-only operation, requires authentication, has rate limits, or involves data freshness/latency. The description is vague about what 'estimated monthly traffic volume' entails and doesn't mention potential costs or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly state the tool's function. It's front-loaded with the core purpose and avoids unnecessary details. However, it could be slightly more structured by explicitly separating organic vs. paid data aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of SEO/ranking data and lack of annotations or output schema, the description is incomplete. It doesn't explain the format or structure of returned data (e.g., metrics, timeframes), potential errors, or how to interpret 'ranking distribution in SERPs.' For a data retrieval tool with no output schema, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds no parameter-specific information beyond implying the 'target' parameter is a domain. It doesn't explain how parameters interact or affect results, so it meets the baseline but adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with ranking and traffic data from organic and paid search for the specified domain.' It specifies the verb ('provide') and resource ('ranking and traffic data'), and mentions the domain scope. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_historical_rank_overview' or 'dataforseo_labs_google_ranked_keywords', which likely have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions what data is provided but doesn't specify use cases, prerequisites, or comparisons to sibling tools. For example, it doesn't clarify if this is for current vs. historical data or how it differs from other domain ranking tools in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_historical_keyword_dataB
This endpoint provides Google historical keyword data for specified keywords, including search volume, cost-per-click, competition values for paid search, monthly searches, and search volume trends. You can get historical keyword data since August, 2021, depending on keywords along with location and language combination
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers limited behavioral insight. It mentions historical data availability constraints and that results may omit keywords not in the database, but doesn't disclose rate limits, authentication requirements, cost implications (though schema hints at charging), error handling, or response format. For a data retrieval tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: first states purpose and data points, second adds temporal scope and context parameters. It avoids redundancy and is appropriately sized, though could be slightly more front-loaded by leading with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a data-rich tool with historical constraints, the description is incomplete. It doesn't explain the return structure, data granularity (e.g., monthly/quarterly), how trends are represented, error cases, or usage limits. The schema covers parameters well, but overall context for effective tool use is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed constraints for all three parameters. The description adds minimal value beyond schema: it mentions location and language combination but doesn't explain their interaction with historical data or provide additional context about parameter effects. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'Google historical keyword data for specified keywords' and lists specific data points like search volume, CPC, competition, monthly searches, and trends. It distinguishes from some siblings by focusing on historical data (e.g., vs. 'keyword_ideas' or 'keyword_overview'), but doesn't explicitly differentiate from all similar tools like 'google_historical_rank_overview' or 'google_historical_serp'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for historical keyword analysis since August 2021 with location/language context, but provides no explicit guidance on when to use this tool versus alternatives like 'google_keyword_overview' (current data) or 'google_historical_rank_overview' (rank data). It mentions data availability constraints ('depending on keywords'), but lacks clear when/when-not instructions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_historical_rank_overviewC
This endpoint will provide you with historical data on rankings and traffic of the specified domain, such as domain ranking distribution in SERPs and estimated monthly traffic volume for both organic and paid results
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool provides 'historical data' and examples of data types, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, potential rate limits, authentication requirements, data freshness, or error conditions. For a data retrieval tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main purpose and includes specific examples, making it easy to parse. However, it could be slightly more concise by avoiding the phrase 'such as' redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It adequately explains what the tool does but fails to address key contextual aspects: no guidance on usage versus siblings, no behavioral transparency (e.g., read-only status, rate limits), and no details on output format or error handling. For a tool with rich parameters and no structured safety hints, more comprehensive description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain the 'target' domain format or clarify 'include_clickstream_data' implications). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, though the description could have enhanced understanding with practical examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with historical data on rankings and traffic of the specified domain' with specific examples like 'domain ranking distribution in SERPs and estimated monthly traffic volume for both organic and paid results'. It uses specific verbs ('provide') and resources ('historical data', 'rankings', 'traffic'), though it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' which might offer similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools (e.g., 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_historical_serp'), leaving the agent to infer usage context solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_historical_serpC
This endpoint will provide you with Google SERPs collected within the specified time frame. You will also receive a complete overview of featured snippets and other extra elements that were present within the specified dates. The data will allow you to analyze the dynamics of keyword rankings over time for the specified keyword and location.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | target keyword | |
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It describes the data returned (SERPs, featured snippets, ranking dynamics) but doesn't mention important behavioral aspects like rate limits, authentication requirements, pagination, data freshness, or whether this is a read-only operation. The description is insufficient for a mutation-sensitive agent to assess risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences that progressively explain what data is provided, what extra elements are included, and how the data can be used. There's no wasted text, though it could be slightly more front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (structure, format), doesn't address behavioral concerns like rate limits or authentication, and provides minimal guidance on usage versus alternatives. The agent would struggle to use this tool effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds marginal value by mentioning 'specified time frame' (though time parameters aren't in the schema) and reinforcing keyword/location focus, but doesn't provide additional syntax, format, or constraint details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides Google SERPs collected within a specified time frame with analysis of featured snippets and ranking dynamics. It specifies the verb ('provide', 'analyze') and resource ('Google SERPs'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_historical_keyword_data' or 'dataforseo_labs_google_historical_rank_overview' that might offer similar historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions analyzing keyword ranking dynamics over time for specific keywords and locations, which implies usage context. However, it provides no explicit guidance on when to use this tool versus alternatives like 'dataforseo_labs_google_historical_keyword_data' or 'serp_organic_live_advanced', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_keyword_ideasC
The Keyword Ideas provides search terms that are relevant to the product or service categories of the specified keywords. The algorithm selects the keywords which fall into the same categories as the seed keywords specified in a POST array. As a result, you will get a list of relevant keyword ideas for up to 200 seed keywords. Along with each keyword idea, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | target keywords | |
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]],"and",["keyword_info.competition_level","=","LOW"]] [["keyword_info.search_volume",">",100],"and",[["keyword_info.cpc","<",0.5],"or",["keyword_info.high_top_of_page_bid","<=",0.5]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] relevance is used as the default sorting rule to provide you with the closest keyword ideas. We recommend using this sorting rule to get highly-relevant search terms. Note that relevance is only our internal system identifier, so it can not be used as a filter, and you will not find this field in the result array. The relevance score is based on a similar principle as used in the Keywords For Keywords endpoint. note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["relevance,desc","keyword_info.search_volume,desc"] | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses some behavioral traits: it returns up to 200 seed keywords, includes metrics like search volume and CPC, and supports filtering and sorting. However, it omits critical details such as rate limits, authentication requirements, error handling, pagination behavior (beyond offset/limit), and whether it's a read-only or mutating operation. For a complex tool with 8 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise with three sentences, but it could be more front-loaded. The first sentence states the purpose, but the second and third detail output metrics without prioritizing critical information like limitations or key parameters. Some phrasing is verbose (e.g., 'Along with each keyword idea...'), and it lacks bullet points or structured formatting for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and output metrics but fails to address behavioral aspects like rate limits, error conditions, or response format. Without annotations or an output schema, the agent lacks sufficient context to use the tool effectively, especially for a data-intensive operation like keyword analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it implies the 'keywords' parameter is for seed keywords and mentions metrics like search volume and CPC, which relate to output rather than inputs. It does not clarify parameter interactions or provide usage examples, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides search terms that are relevant to the product or service categories of the specified keywords' and 'get a list of relevant keyword ideas.' It specifies the verb ('provides,' 'get') and resource ('keyword ideas'), but does not explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_suggestions' or 'dataforseo_labs_google_related_keywords,' which may have overlapping functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the algorithm selects keywords based on categories of seed keywords, but does not specify use cases, prerequisites, or exclusions. With many sibling tools available (e.g., 'dataforseo_labs_google_keyword_suggestions'), this lack of differentiation leaves the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_keyword_overviewC
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
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions what data is returned, it doesn't address important behavioral aspects: whether this is a read-only operation, potential costs/rate limits, data freshness, authentication requirements, or error conditions. The description is purely functional without operational context that would help an agent use it appropriately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise - a single sentence that efficiently lists the key data points returned. It's front-loaded with the core purpose and doesn't waste words. However, it could be slightly more structured by separating the tool's function from the data points returned for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (keyword analysis tool with 4 parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, data structure, or what happens when keywords aren't found (though the schema mentions this). For a data retrieval tool with multiple parameters and no output schema, the description should provide more context about the response format and operational considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 4 parameters. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description. The description doesn't compensate or add value regarding parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides Google keyword data for specified keywords' and lists specific data points (cost-per-click, competition, search volume, intent, monthly searches). It distinguishes itself from siblings by focusing on keyword overview data rather than historical data, keyword ideas, or other specialized functions. However, it doesn't explicitly contrast with similar tools like 'keywords_data_google_ads_search_volume' or 'dataforseo_labs_google_historical_keyword_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (including 'keywords_data_google_ads_search_volume', 'dataforseo_labs_google_historical_keyword_data', 'dataforseo_labs_google_keyword_ideas'), there's no indication of when this 'overview' tool is appropriate versus those other keyword data tools. The description simply states what data is returned without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_keywords_for_siteC
The Keywords For Site endpoint will provide you with a list of keywords relevant to the target domain. Each keyword is supplied with relevant, search volume data for the last month, cost-per-click, competition
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] example: ["relevance,desc","keyword_info.search_volume,desc"] | |
| include_subdomains | No | Include keywords from subdomains | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the type of data returned (search volume, CPC, competition) but doesn't cover important behavioral aspects like whether this is a read-only operation, rate limits, authentication requirements, data freshness (it mentions 'last month' but not update frequency), pagination behavior (implied by offset/limit but not explained), or error conditions. For a tool with 9 parameters and no annotations, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality. It's appropriately sized and front-loaded with the main purpose. However, it could be slightly more structured by separating the purpose from the data details for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the tool's behavioral characteristics, usage context, or output format. While the schema covers parameters well, the description fails to provide the broader context needed for an AI agent to use this tool effectively, especially given the complex sibling tool landscape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It mentions the data fields returned (search volume, CPC, competition) which relate to output, not input parameters. Baseline 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a list of keywords relevant to the target domain' with specific data fields (search volume, cost-per-click, competition). It uses a specific verb ('provide') and resource ('keywords'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords' that might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools in the 'dataforseo_labs_google_' category (e.g., keyword_ideas, related_keywords, ranked_keywords), there's no indication of how this tool differs or when it's the appropriate choice. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_keyword_suggestionsB
The Keyword Suggestions provides search queries that include the specified seed keyword.
The algorithm is based on the full-text search for the specified keyword and therefore returns only those search terms that contain the keyword you set in the POST array with additional words before, after, or within the specified key phrase. Returned keyword suggestions can contain the words from the specified key phrase in a sequence different from the one you specify.
As a result, you will get a list of long-tail keywords with each keyword in the list matching the specified search term.
Along with each suggested keyword, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | target keyword | |
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order a comma is used as a separator example: ["keyword_info.competition,desc"] default rule: ["keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_info.search_volume,desc","keyword_info.cpc,desc"] | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does well by detailing what data is returned (search volume, trends, CPC, competition, impressions, clicks) and explaining the algorithm's matching behavior (keywords can contain seed with additional words in different sequences). However, it lacks critical behavioral information: no mention of rate limits, authentication requirements, potential costs, error conditions, or pagination behavior (despite having offset/limit parameters). For a tool with 8 parameters and no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but could be better structured. It uses 5 sentences to explain the tool's function, algorithm, and returned data. While each sentence adds value, the information isn't optimally front-loaded - the key purpose is clear in the first sentence, but important behavioral details are scattered. Some redundancy exists (e.g., 'returns only those search terms' and 'each keyword in the list matching' convey similar ideas). It's neither excessively verbose nor perfectly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema, no annotations), the description is moderately complete. It covers the core functionality and return data well, but misses important contextual elements: no output format description, no error handling information, no rate limit or authentication context, and no guidance on when to use this versus sibling tools. For a data retrieval tool with filtering capabilities and no output schema, the description should provide more complete operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions the 'seed keyword' (mapping to 'keyword' parameter) and implies filtering capabilities through the algorithm description, but doesn't provide additional context about parameter interactions or usage patterns. With high schema coverage, the baseline of 3 is appropriate as the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides search queries that include the specified seed keyword' and 'returns only those search terms that contain the keyword you set'. It specifies the verb ('provides', 'returns') and resource ('search queries', 'keyword suggestions'), making it clear this is a keyword suggestion generator. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords', which likely serve similar purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It mentions the algorithm is 'based on full-text search' and returns 'long-tail keywords', but offers no explicit when-to-use instructions, no prerequisites, and no comparison to alternative tools. With many sibling tools available for keyword analysis, the agent receives no help in selecting this specific tool over others in the same domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_page_intersectionA
This endpoint will provide you with the keywords for which specified pages rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on SERP elements that specified pages rank for in search results, as well as the estimated traffic volume and cost of ad traffic. Page Intersection endpoint supports organic, paid, local pack and featured snippet results.
Find keywords several webpages rank for: If you would like to get the keywords several pages rank for, you need to specify webpages only in the pages object. This way, you will receive intersected ranked keywords for the specified URLs.
Find keywords your competitors rank for but you do not: If you would like to receive all keywords several pages rank for, but particular pages do not, you need to use the exclude_pages array as well. This way you will receive the keywords for which the URLs from the pages object rank for, but the URLs from the exclude_pages array do not
| Name | Required | Description | Default |
|---|---|---|---|
| pages | Yes | pages array required field you can set up to 20 pages in this object the pages should be specified with absolute URLs (including http:// or https://) if you specify a single page here, we will return results only for this page; you can also use a wildcard ('*') character to specify the search pattern example: "example.com" search for the exact URL "example.com/eng/*" search for the example.com page and all its related URLs which start with '/eng/', such as "example.com/eng/index.html" and "example.com/eng/help/", etc. note: a wilcard should be placed after the slash ('/') character in the end of the URL, it is not possible to place it after the domain in the following way: https://dataforseo.com* use https://dataforseo.com/* instead | |
| exclude_pages | No | URLs of pages you want to exclude optional field you can set up to 10 pages in this array if you use this array, results will contain the keywords for which URLs from the pages object rank, but URLs from exclude_pages array do not; note that if you specify this field, the results will be based on the keywords any URL from pages ranks for regardless of intersections between them. However, you can set intersection_mode to intersect and results will contain the keywords all URLs from pages rank for in the same SERP and URLs from exclude_pages do not. use a wildcard (‘*’) character to specify the search pattern example: "exclude_pages": [ "https://www.apple.com/iphone/*", "https://dataforseo.com/apis/*", "https://www.microsoft.com/en-us/industry/services/" ] | |
| intersection_mode | No | indicates whether to intersect keywords optional field use this field to intersect or merge results for the specified URLs possible values: union, intersect union – results are based on all keywords any URL from pages rank for; intersect – results are based on the keywords all URLs from pages rank for in the same SERP: by default, results are based on the intersect mode if you specify only pages array. If you specify exclude_pages as well, results are based on the union mode | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_data.keyword_info.search_volume","in",[100,1000]] [["intersection_result.1.etv",">",0],"and",["intersection_result.2.description","like","%goat%"]] [["keyword_data.keyword_info.search_volume",">",100],"and",[["intersection_result.1.description","like","%goat%"],"or",["intersection_result.2.type","=","organic"]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["keyword_data.keyword_info.competition,desc"] default rule: ["keyword_data.keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["intersection_result.1.rank_group,asc","intersection_result.2.rank_absolute,asc"] | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (returns keyword intersection data with metrics), its scope (supports multiple SERP result types), and usage patterns (two main use cases). However, it lacks details on rate limits, authentication needs, or error handling, which are important for a complex tool with 12 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into two clear use-case paragraphs, but it could be more front-loaded with a concise summary. Some sentences are verbose (e.g., 'Along with that, you will get data on SERP elements...'), and the text could be tightened without losing clarity. It earns its place by explaining usage but isn't optimally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no annotations, no output schema), the description is moderately complete. It covers purpose and usage well but lacks details on output format, error conditions, or performance considerations. For a tool with rich input schema but no output schema, more information on what to expect in results would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed documentation for all 12 parameters. The description adds minimal parameter-specific semantics, only briefly mentioning 'pages' and 'exclude_pages' in the context of use cases. Since the schema already does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to find keywords for which specified pages rank within the same SERP, providing detailed metrics like search volume, competition, CPC, and impressions. It distinguishes itself from sibling tools by focusing on page intersection analysis rather than individual keyword research or backlink analysis, as seen in tools like 'dataforseo_labs_google_keywords_for_site' or 'backlinks_page_intersection'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool, including two distinct use cases: finding keywords several webpages rank for (using the 'pages' array) and finding keywords competitors rank for but you do not (using 'exclude_pages'). It also mentions support for organic, paid, local pack, and featured snippet results, helping users understand its scope compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_ranked_keywordsB
This endpoint will provide you with the list of keywords that any domain or webpage is ranking for. You will also get SERP elements related to the keyword position, as well as impressions, monthly searches and other data relevant to the returned keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | domain name or page url required field the domain name of the target website or URL of the target webpage; the domain name must be specified without https:// or www.; the webpage URL must be specified with https:// or www. Note: if you specify the webpage URL without https:// or www., the result will be returned for the entire domain rather than the specific page | |
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | Array of filter conditions and logical operators. Each filter condition is an array of [field, operator, value]. Maximum 8 filters allowed. Available operators: =, <>, <, <=, >, >=, in, not_in, like, not_like, ilike, not_ilike, regex, not_regex, match, not_match Logical operators: "and", "or" Examples: Simple filter: [["ranked_serp_element.serp_item.rank_group","<=",10]] With logical operator: [["ranked_serp_element.serp_item.rank_group","<=",10],"or",["ranked_serp_element.serp_item.type","<>","paid"]] Complex filter: [["keyword_data.keyword_info.search_volume","<>",0],"and",[["ranked_serp_element.serp_item.type","<>","paid"],"or",["ranked_serp_element.serp_item.is_malicious","=",false]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["keyword_data.keyword_info.competition,desc"] default rule: ["ranked_serp_element.serp_item.rank_group,asc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_data.keyword_info.search_volume,desc","keyword_data.keyword_info.cpc,desc"] | |
| include_subdomains | No | Include keywords from subdomains | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool returns 'SERP elements, impressions, monthly searches, and other data,' which gives some output context, but lacks critical behavioral details like rate limits, authentication requirements, pagination behavior (beyond offset/limit parameters), error conditions, or whether it's a read-only or mutating operation. This is inadequate for a tool with 10 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently states the tool's purpose and key output elements. It avoids redundancy and is appropriately front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema, no annotations), the description is incomplete. It lacks behavioral transparency, usage guidelines, and any explanation of return values or error handling. The schema covers parameters well, but the description fails to compensate for missing annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 10 parameters. The description adds no parameter-specific information beyond implying the target is a domain or webpage. Baseline 3 is appropriate when the schema does the heavy lifting, though the description could have clarified high-level parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the list of keywords that any domain or webpage is ranking for.' It specifies the resource (keywords) and the action (list/retrieve), and distinguishes from siblings like 'dataforseo_labs_google_keyword_ideas' (keyword ideas) or 'dataforseo_labs_google_keyword_overview' (overview).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions no prerequisites, exclusions, or comparisons to sibling tools (e.g., 'dataforseo_labs_google_keywords_for_site' or 'dataforseo_labs_google_historical_keyword_data'), leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_relevant_pagesC
This endpoint will provide you with rankings and traffic data for the web pages of the specified domain. You will be able to review each page’s ranking distribution and estimated monthly traffic volume from both organic and paid searches.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]], "or", ["metrics.organic.etv",">=","100"]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to specify a sorting type example: ["metrics.paid.etv,asc"] Note: you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["metrics.organic.etv,desc","metrics.paid.count,asc"] default rule: ["metrics.organic.count,desc"] | |
| exclude_top_domains | No | indicates whether to exclude world’s largest websites optional field default value: false set to true if you want to get highly-relevant competitors excluding the top websites | |
| item_types | No | display results by item type indicates the type of search results included in the response | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what data is returned (rankings and traffic) but fails to describe important behavioral aspects: whether this is a read-only operation, potential rate limits, authentication requirements, data freshness (real-time vs. historical), pagination behavior (implied by limit/offset but not explained), error conditions, or response format. For a tool with 11 parameters and no output schema, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that clearly state the tool's purpose and what data it provides. There's no wasted language or redundancy. However, it could be slightly improved by front-loading the most critical information (e.g., starting with 'Get rankings and traffic data for domain pages') rather than beginning with 'This endpoint will provide you with...'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the response structure, data formats, or what 'rankings and traffic data' actually means in practice. For a data analysis tool with extensive filtering and sorting capabilities, users need more context about what they'll receive and how to interpret it. The description fails to compensate for the lack of output schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how parameters like 'filters' or 'order_by' relate to the returned rankings and traffic data, nor does it provide examples of typical parameter combinations. With high schema coverage, the baseline is 3, and the description doesn't add meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with rankings and traffic data for the web pages of the specified domain' and specifies what data is included ('ranking distribution and estimated monthly traffic volume from both organic and paid searches'). It distinguishes itself from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_ranked_keywords' by focusing on page-level data rather than domain-level or keyword-level metrics. However, it doesn't explicitly name these alternatives for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or scenarios where this tool is preferred over sibling tools like 'dataforseo_labs_google_ranked_keywords' (which might provide keyword-level data) or 'dataforseo_labs_google_domain_rank_overview' (which might provide domain-level summaries). The only implied usage is for analyzing domain page performance, but no explicit context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_serp_competitorsC
This endpoint will provide you with a list of domains ranking for the keywords you specify. You will also get SERP rankings, rating, estimated traffic volume, and visibility values the provided domains gain from the specified keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | keywords array required field the results will be based on the keywords you specify in this array UTF-8 encoding; the keywords will be converted to lowercase format; you can specify the maximum of 200 keywords | |
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters example: ["median_position","in",[1,10]] [["median_position","in",[1,10]],"and",["domain","not_like","%wikipedia.org%"]] [["domain","not_like","%wikipedia.org%"], "and", [["relevant_serp_items",">",0],"or",["median_position","in",[1,10]]]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order the comma is used as a separator example: ["avg_position,asc"] default rule: ["rating,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["avg_position,asc","etv,desc"] | |
| include_subdomains | No | Include keywords from subdomains | |
| item_types | No | display results by item type indicates the type of search results included in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool provides a list of domains with metrics, but does not cover critical aspects such as whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or error handling. For a tool with 9 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's output and key metrics. It is front-loaded with the core purpose and avoids unnecessary details. However, it could be slightly improved by structuring into two sentences for better readability (e.g., separating the list of metrics), but overall it is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is incomplete. It lacks information on behavioral traits, usage context, output format, and how parameters interact. While the schema covers parameter details, the description does not provide enough holistic context for an agent to confidently invoke the tool without additional inference or trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description does not add any meaningful parameter-specific information beyond what the schema provides (e.g., it does not explain how 'keywords' relate to 'filters' or 'order_by'). With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a list of domains ranking for the keywords you specify' with additional metrics like SERP rankings, rating, traffic volume, and visibility. It specifies the verb ('provide') and resource ('domains ranking for keywords'), but does not explicitly differentiate from sibling tools like 'dataforseo_labs_google_competitors_domain' or 'dataforseo_labs_google_ranked_keywords', which appear related. This makes it clear but not fully sibling-distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or specific contexts for application. With many sibling tools available (e.g., 'dataforseo_labs_google_competitors_domain', 'dataforseo_labs_google_ranked_keywords'), the lack of comparative guidance leaves the agent to infer usage based on tool names alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_subdomainsC
This endpoint will provide you with a list of subdomains of the specified domain, along with the ranking distribution across organic and paid search. In addition to that, you will also get the estimated traffic volume of subdomains based on search volume.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain | |
| 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 |
| ignore_synonyms | No | ignore highly similar keywords, if set to true, results will be more accurate | |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]],"or",["metrics.organic.etv",">=","100"]] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to specify a sorting type example: ["metrics.paid.etv,asc"] Note: you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["metrics.organic.etv,desc","metrics.paid.count,asc"] default rule: ["metrics.organic.count,desc"] | |
| item_types | No | display results by item type indicates the type of search results included in the response | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what data is returned (subdomains, ranking distribution, traffic estimates) but lacks critical behavioral details: whether this is a read-only operation, rate limits, authentication requirements, data freshness, or error conditions. For a tool with 10 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise—two sentences that directly state the tool's core functionality. It's front-loaded with the primary purpose and avoids unnecessary elaboration. However, it could be slightly more structured by explicitly separating outputs (subdomains, ranking, traffic) for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return format, pagination, error handling, and usage context. Without annotations or output schema, the description should provide more behavioral and operational details to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 10 parameters. The description adds no parameter-specific information beyond what's in the schema—it doesn't explain how 'target' relates to subdomains, or how 'filters' apply to the results. With high schema coverage, the baseline is 3, and the description doesn't compensate with additional semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with a list of subdomains of the specified domain, along with the ranking distribution across organic and paid search' and 'estimated traffic volume of subdomains'. It specifies the verb ('provide'), resource ('subdomains'), and key outputs. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_competitors_domain', which might offer overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, limitations, or compare it to sibling tools like 'dataforseo_labs_google_domain_intersection' or 'dataforseo_labs_google_ranked_keywords'. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_google_top_searchesC
The Top Searches endpoint of DataForSEO Labs API can provide you with over 7 billion keywords from the DataForSEO Keyword Database. Each keyword in the API response is provided with a set of relevant keyword data with Google Ads metrics
| Name | Required | Description | Default |
|---|---|---|---|
| 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 |
| limit | No | Maximum number of keywords to return | |
| offset | No | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords | |
| filters | No | you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]] | |
| order_by | No | resuresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["keyword_info.competition,desc"] default rule: ["keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_info.search_volume,desc","keyword_info.cpc,desc"] | |
| include_clickstream_data | No | Include or exclude data from clickstream-based metrics in the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't mention whether this is a read-only operation, potential rate limits, authentication requirements, or what the API response looks like (e.g., pagination, error handling). The mention of 'over 7 billion keywords' hints at scale but doesn't clarify practical constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary fluff and directly states what the tool does, though it could be slightly more structured by explicitly mentioning it's an API endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like safety, performance, or output format, leaving significant gaps for an AI agent to understand how to use it effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no parameter-specific information beyond implying keyword data includes Google Ads metrics, which is already suggested by the tool name. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves keywords from a database with Google Ads metrics, specifying the resource (keywords) and key data provided. However, it doesn't differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords', which likely serve similar keyword discovery purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description mentions it provides 'over 7 billion keywords' but doesn't explain how this differs from other keyword-related tools in the sibling list, such as those for keyword ideas, suggestions, or historical data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataforseo_labs_search_intentB
This endpoint will provide you with search intent data for up to 1,000 keywords. For each keyword that you specify when setting a task, the API will return the keyword's search intent and intent probability. Besides the highest probable search intent, the results will also provide you with other likely search intent(s) and their probability. Based on keyword data and search results data, our system has been trained to detect four types of search intent: informational, navigational, commercial, transactional.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | target keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000 | |
| language_code | No | language code required field Note: this endpoint currently supports the following languages only: ar, zh-TW, cs, da, nl, en, fi, fr, de, he, hi, it, ja, ko, ms, nb, pl, pt, ro, ru, es, sv, th, uk, vi, bg, hr, sr, sl, bs | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it processes up to 1,000 keywords, returns intent types (informational, navigational, commercial, transactional) with probabilities, and is based on trained system data. However, it lacks details on rate limits, authentication needs, error handling, or response format, which are important for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It front-loads the core functionality, then elaborates on output details and intent types. Every sentence adds value, though it could be slightly more concise by integrating some details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It explains what the tool does and the intent types but lacks crucial context like response structure, error cases, or usage limits. This leaves gaps for an AI agent to invoke it correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'keywords' and 'language_code' parameters. The description adds no additional parameter semantics beyond implying keyword processing, which is already covered. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with search intent data for up to 1,000 keywords' and specifies it returns 'search intent and intent probability' for each keyword. It distinguishes the tool by focusing on intent analysis rather than volume or location data, though it doesn't explicitly differentiate from all sibling tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the tool's capabilities but doesn't indicate scenarios where it's appropriate, prerequisites, or comparisons to sibling tools like 'keywords_data_google_ads_search_volume' or 'dataforseo_labs_google_keyword_ideas'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_analytics_technologies_available_filtersC
Here you will find all the necessary information about filters that can be used with DataForSEO Technologies API endpoints.
Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | The name of the tool to get filters for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It hints at behavioral aspects by mentioning filters are 'associated with a certain object,' suggesting structured data, but fails to disclose key traits like whether this is a read-only operation, if it requires authentication, rate limits, or what the output format might be. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, but it's not optimally structured; the first sentence is vague, and the second adds a minor clarification without front-loading critical information. While not verbose, it lacks efficiency in conveying purpose, making it adequate but with room for improvement in clarity and flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (inferred from sibling tools in analytics/SEO domains), no annotations, no output schema, and a description that only vaguely explains purpose, the description is incomplete. It fails to provide enough context for an agent to understand how to use it effectively, especially compared to richer sibling tools, leaving gaps in usage and behavioral understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage ('tool' parameter described as 'The name of the tool to get filters for'), so the schema does the heavy lifting. The description adds no additional parameter details beyond what's in the schema, but since coverage is high, the baseline score of 3 is appropriate—it doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides 'information about filters that can be used with DataForSEO Technologies API endpoints,' which gives a vague purpose but doesn't specify what action the tool performs (e.g., 'list' or 'retrieve'). It mentions filters are 'associated with a certain object in the result array,' adding some context but not clearly distinguishing it from sibling tools like 'backlinks_available_filters' or 'domain_analytics_whois_available_filters.' The purpose is implied but not explicit, falling short of clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers minimal guidance, noting filters should be 'specified accordingly' with objects in result arrays, but it doesn't explain when to use this tool versus alternatives (e.g., other 'available_filters' tools for different domains). There's no mention of prerequisites, exclusions, or specific contexts, leaving the agent with little direction on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_analytics_technologies_domain_technologiesC
Using this endpoint you will get a list of technologies used in a particular domain
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | target domain required field domain name of the website to analyze Note: results will be returned for the specified domain only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool returns a list of technologies but doesn't disclose behavioral traits like whether it's a read-only operation, requires authentication, has rate limits, or what the output format looks like (e.g., JSON structure, pagination). For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more structured by front-loading key details like output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain the return values (e.g., what 'list of technologies' entails), potential errors, or usage context, leaving gaps for an AI agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, fully documenting the single required parameter 'target' as a domain name. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'get a list of technologies used in a particular domain.' It specifies the verb ('get'), resource ('technologies'), and scope ('particular domain'). However, it doesn't explicitly differentiate from sibling tools like 'domain_analytics_technologies_available_filters' or 'domain_analytics_whois_overview,' which might offer related domain analytics functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, limitations, or compare it to sibling tools such as 'domain_analytics_whois_overview' for domain information or other analytics tools. Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_analytics_whois_available_filtersC
Here you will find all the necessary information about filters that can be used with DataForSEO WHOIS API endpoints.
Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | The name of the tool to get filters for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that filters are 'associated with a certain object in the result array,' hinting at structural constraints, but fails to describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the output looks like (e.g., a list of filter options). This leaves significant gaps for a tool that likely returns metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and avoids unnecessary fluff, but it's not optimally front-loaded; the first sentence is somewhat generic, and the second adds a technical note that could be integrated more smoothly. It's concise but could be structured better for clarity, earning a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's likely purpose (returning filter metadata for WHOIS endpoints), the description is incomplete. With no annotations and no output schema, it fails to explain what the tool returns (e.g., a list of filter names, types, or usage examples), behavioral aspects, or how it differs from similar tools. This leaves the agent under-informed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter ('tool') with 100% description coverage in the schema itself, so the description doesn't need to add parameter details. The description doesn't provide any additional semantic context about the parameter, but since schema coverage is high, the baseline score of 3 is appropriate—adequate but not adding value beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides 'information about filters that can be used with DataForSEO WHOIS API endpoints,' which clarifies the general domain (WHOIS filters) but lacks a specific verb or action. It doesn't distinguish from sibling tools like 'domain_analytics_technologies_available_filters' or 'dataforseo_labs_available_filters,' making the purpose vague and overlapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a note about filters being 'associated with a certain object in the result array,' which implies some context for usage, but it doesn't specify when to use this tool versus alternatives (e.g., other 'available_filters' tools) or provide explicit guidance on prerequisites or exclusions. This leaves the agent with minimal actionable direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_analytics_whois_overviewC
This endpoint will provide you with Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results. Using this endpoint you will be able to get all these data for the domains matching the parameters you specify in the request
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | the maximum number of returned domains | |
| offset | No | offset in the results array of returned businesses optional field default value: 0 if you specify the 10 value, the first ten entities in the results array will be omitted and the data will be provided for the successive entities | |
| filters | No | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like, not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rating.value",">",3] | |
| order_by | No | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["rating.value,desc"]note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["rating.value,desc","rating.votes_count,desc"] | |
| is_claimed | No | indicates whether the business is verified by its owner on Google Maps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is returned but doesn't mention critical behaviors like rate limits, authentication needs, pagination (beyond limit/offset parameters), error handling, or whether it's a read-only or mutating operation. For a tool with complex filtering and sorting, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences that directly state the tool's purpose and usage. There's no wasted verbiage, and it efficiently communicates the core functionality. However, it could be slightly more structured by explicitly separating purpose from usage instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters with rich filtering/sorting logic), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects, output format, error conditions, or usage context. While the schema covers parameters well, the description fails to compensate for other gaps, making it inadequate for informed tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter semantics beyond implying that parameters filter domains. It doesn't explain the meaning or typical use of 'filters' or 'order_by' beyond what's in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results.' It specifies the verb ('provide'), resource ('Whois data'), and additional enriched data. However, it doesn't explicitly differentiate from sibling tools like 'domain_analytics_whois_available_filters' or other domain analytics tools, which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'domains matching the parameters you specify' but doesn't clarify use cases, prerequisites, or comparisons to sibling tools like 'domain_analytics_technologies_domain_technologies' or 'backlinks_domain_pages'. This lack of contextual guidance limits its utility for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_dataforseo_trends_demographyC
This endpoint will provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the output ('demographic breakdown by age and gender') but doesn't mention critical behaviors like rate limits, authentication needs, data freshness, or error handling. For a data query tool with no annotations, this leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words and directly states what the tool does. However, it could be slightly more structured by separating key constraints (e.g., data source limitations) into additional sentences for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema, no annotations), the description is incomplete. It lacks details on output format, data interpretation, limitations (e.g., keyword count constraints implied by schema but not highlighted), and how it fits among sibling tools. For a tool with rich parameters and no structured behavioral hints, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no parameter-specific information beyond implying keywords are analyzed for demographic trends. It doesn't explain parameter interactions or provide additional context, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data.' It specifies the verb ('provide'), resource ('demographic breakdown'), and data source ('DataForSEO Trends data'). However, it doesn't explicitly differentiate from sibling tools like 'keywords_data_dataforseo_trends_explore' or 'keywords_data_dataforseo_trends_subregion_interests,' which appear related but have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this demographic breakdown is preferred over other keyword analysis tools. Usage is implied by the purpose but lacks explicit when/when-not instructions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_dataforseo_trends_exploreC
This endpoint will provide you with the keyword popularity data from DataForSEO Trends. You can check keyword trends for Google Search, Google News, and Google Shopping
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions the data source (DataForSEO Trends) and scope (Google Search, News, Shopping), but fails to describe critical behaviors: whether this is a read-only operation, if it has rate limits, authentication requirements, error handling, or what the output format looks like (since no output schema exists). For a data query tool with 6 parameters, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise—two sentences that directly state the tool's purpose and scope. It's front-loaded with the main function. However, the second sentence could be more efficiently integrated, and there's some redundancy ('keyword trends' vs 'keyword popularity data'). Overall, it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't address behavioral aspects like rate limits or authentication, doesn't explain the output format, and provides no usage context relative to siblings. For a tool that fetches trend data with multiple configuration options, more contextual information is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain relationships between parameters (e.g., how 'type' relates to the data sources mentioned) or provide usage examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't add value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide keyword popularity data from DataForSEO Trends' and specifies the data sources (Google Search, News, Shopping). It uses specific verbs ('provide', 'check') and identifies the resource ('keyword popularity data'). However, it doesn't explicitly differentiate from sibling tools like 'keywords_data_google_trends_explore' or 'keywords_data_dataforseo_trends_demography', which likely serve related but distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the data sources but doesn't indicate scenarios where this tool is preferred over sibling tools like 'keywords_data_google_trends_explore' or 'keywords_data_dataforseo_trends_demography'. There are no explicit when/when-not statements or named alternatives, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_dataforseo_trends_subregion_interestsC
This endpoint will provide you with location-specific keyword popularity data from DataForSEO Trends
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'provide you with location-specific keyword popularity data', implying a read-only operation, but fails to detail critical aspects like authentication needs, rate limits, error handling, or data format. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the tool's purpose without unnecessary details. It's front-loaded and appropriately sized, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 6 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral traits, output format, and usage context, making it incomplete for effective tool invocation by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or use cases. The baseline score of 3 reflects adequate coverage by the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'location-specific keyword popularity data from DataForSEO Trends', which clarifies it's a data retrieval tool for keyword trends. However, it doesn't specify the exact verb (e.g., 'fetch' or 'retrieve') or differentiate from siblings like 'keywords_data_dataforseo_trends_demography' or 'keywords_data_dataforseo_trends_explore', leaving the scope somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about use cases, prerequisites, or comparisons to sibling tools, leaving the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_google_ads_search_volumeC
Get search volume data for keywords from Google Ads
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| language_code | No | Language two-letter ISO code (e.g., 'en'). optional field | |
| keywords | Yes | Array of keywords to get search volume for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states what the tool does but fails to mention critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or what format the search volume data returns. For a data-fetching tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core function without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., metrics like monthly searches, competition level), error conditions, or behavioral constraints. For a data retrieval tool with multiple parameters, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions, so it meets the baseline expectation without providing extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('search volume data for keywords from Google Ads'), making the purpose immediately understandable. However, it doesn't distinguish this tool from the sibling 'ai_optimization_keyword_data_search_volume', which appears to serve a similar function, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, particularly the similar-sounding sibling tool. It doesn't mention prerequisites, constraints, or appropriate contexts for invocation, leaving the agent with insufficient usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_google_trends_categoriesB
This endpoint will provide you list of Google Trends Categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'will provide' a list, implying a read-only operation, but doesn't specify if it's a simple fetch, requires authentication, has rate limits, or returns structured data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'This endpoint will provide you list of Google Trends Categories.' It's front-loaded with the core purpose, has no redundant words, and every part contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally adequate. It states what the tool does but lacks details on behavioral traits, output format, or usage context. For a simple list-fetching tool, this might suffice, but it doesn't fully compensate for the absence of structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't mention any parameters, which is appropriate since none exist. It adds no semantic details beyond the schema, but with zero parameters, the baseline is high as there's nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you list of Google Trends Categories.' It specifies the verb 'provide' and the resource 'list of Google Trends Categories,' making the function unambiguous. However, it doesn't differentiate from sibling tools, as none appear to be direct alternatives for listing categories, but the purpose is still clear without that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It lacks context about prerequisites, such as authentication or rate limits, and doesn't mention any sibling tools like 'keywords_data_google_trends_explore' that might be related. Without such information, users must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_data_google_trends_exploreC
This endpoint will provide you with the keyword popularity data from the ‘Explore’ feature of Google Trends. You can check keyword trends for Google Search, Google News, Google Images, Google Shopping, and YouTube
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| language_code | No | Language two-letter ISO code (e.g., 'en'). optional field | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 the maximum number of characters you can specify in a keyword: 100 the minimum number of characters must be greater than 1 comma characters (,) in the specified keywords will be unset and ignored Note: keywords cannot consist of a combination of the following characters: < > | " - + = ~ ! : * ( ) [ ] { } Note: to obtain google_trends_topics_list and google_trends_queries_list items, specify no more than 1 keyword | |
| type | No | google trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
| item_types | No | types of items returned to speed up the execution of the request, specify one item at a time | |
| category_code | No | google trends search category you can receive the list of available categories with their category_code by making a separate request to the keywords_data_google_trends_categories tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what data is provided but lacks critical behavioral details: it doesn't specify whether this is a read-only operation, rate limits, authentication requirements, error conditions, or what the output format looks like (especially important since there's no output schema). The description is insufficient for a tool with 9 parameters and complex functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear sentences that efficiently state the tool's purpose and scope. It's front-loaded with the main functionality and avoids unnecessary elaboration. However, it could be slightly more structured by explicitly mentioning the tool's core use case before listing data sources.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (critical without output schema), doesn't mention performance characteristics, and provides no context about how this fits with sibling tools. The description fails to compensate for the lack of structured metadata that would help an agent understand this tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how parameters interact (e.g., date_from/date_to vs. time_range), provide usage examples, or clarify parameter relationships. The baseline score of 3 reflects adequate coverage through the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the keyword popularity data from the ‘Explore’ feature of Google Trends' and specifies the data sources (Google Search, News, Images, Shopping, YouTube). It uses specific verbs ('provide', 'check') and identifies the resource ('keyword popularity data'), but doesn't explicitly differentiate from sibling tools like 'keywords_data_dataforseo_trends_explore' or 'keywords_data_google_trends_categories'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the data sources but doesn't indicate scenarios where this tool is preferred over sibling tools like 'keywords_data_google_ads_search_volume' or 'keywords_data_dataforseo_trends_explore'. There's no mention of prerequisites, limitations, or typical use cases beyond the broad statement about checking keyword trends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
on_page_content_parsingC
This endpoint allows parsing the content on any page you specify and will return the structured content of the target page, including link URLs, anchors, headings, and textual content.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to parse | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_js | No | Custom JavaScript code to execute | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | Accept-Language header value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns structured content but does not cover critical aspects like rate limits, authentication needs, error handling, or performance implications (e.g., timeouts for JavaScript-heavy pages). This leaves significant gaps for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core functionality. It is front-loaded with the main purpose and avoids unnecessary details, though it could be slightly more concise by omitting 'This endpoint allows'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of web parsing (with parameters like JavaScript rendering) and no output schema or annotations, the description is insufficient. It lacks details on return format, error cases, or behavioral traits, making it incomplete for safe and effective use by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain how 'enable_javascript' affects parsing or what 'custom_js' can achieve), so it meets but does not exceed the minimum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: parsing page content to extract structured elements like links, anchors, headings, and text. It specifies the verb 'parsing' and resource 'content on any page', but does not differentiate from sibling tools, as none appear to be direct alternatives for content parsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or exclusions. It mentions 'any page you specify' but lacks context about limitations or ideal use cases compared to other tools in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
on_page_instant_pagesC
Using this function you will get page-specific data with detailed information on how well a particular page is optimized for organic search
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_js | No | Custom JavaScript code to execute | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | language header for accessing the website all locale formats are supported (xx, xx-XX, xxx-XX, etc.) Note: if you do not specify this parameter, some websites may deny access; in this case, pages will be returned with the "type":"broken in the response array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool returns 'detailed information on how well a particular page is optimized for organic search,' it lacks critical behavioral details: what specific metrics or data are returned, whether this involves external API calls or rate limits, authentication requirements, error handling (beyond a hint in the 'accept_language' parameter description), or performance characteristics. For a tool with 5 parameters and no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the tool's purpose. It's front-loaded with the core function and avoids unnecessary words. However, given the tool's complexity (5 parameters, no output schema) and lack of sibling differentiation, it could benefit from slightly more detail to be fully helpful, keeping it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the output looks like (e.g., the structure or types of 'detailed information'), how to interpret results, or any dependencies or limitations. With no output schema and rich parameterization, the description should provide more context to guide effective use, but it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description adds no additional parameter information beyond what's already in the schema (e.g., it doesn't explain the 'url' format, when to use 'custom_js', or default behaviors). With high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'get page-specific data with detailed information on how well a particular page is optimized for organic search.' It specifies the verb ('get'), resource ('page-specific data'), and outcome ('optimized for organic search'). However, it doesn't explicitly distinguish this tool from its many siblings (e.g., 'on_page_content_parsing', 'on_page_lighthouse'), which appear to be related on-page analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With numerous sibling tools like 'on_page_content_parsing' and 'on_page_lighthouse' that likely serve similar on-page analysis purposes, the description fails to indicate what makes this tool unique or when it should be preferred over others. No context, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
on_page_lighthouseD
The OnPage Lighthouse API is based on Google’s open-source Lighthouse project for measuring the quality of web pages and web apps.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to parse | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_js | No | Custom JavaScript code to execute | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | Accept-Language header value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it fails to describe key traits such as whether this is a read-only or mutative operation, potential rate limits, authentication needs, or what the output entails (e.g., performance scores, audits). This omission makes it inadequate for a tool with potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is appropriately sized and front-loaded, but it lacks structure and could be more informative. While concise, it doesn't earn its place fully by providing actionable details, making it somewhat under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (likely involving web performance audits), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., Lighthouse scores, metrics) or behavioral aspects, leaving significant gaps for an agent to understand and use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the input schema. The description adds no additional meaning or context about the parameters beyond what the schema provides, such as explaining how 'enable_javascript' affects the audit or what 'custom_js' is used for. This meets the baseline score of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is 'based on Google's open-source Lighthouse project for measuring the quality of web pages and web apps,' which provides some context but is vague about the specific action. It doesn't clearly state what the tool does (e.g., run a Lighthouse audit, generate performance reports) or distinguish it from sibling tools like 'on_page_content_parsing' or 'on_page_instant_pages,' making it tautological by restating the name's implication without concrete details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, and with many sibling tools available (e.g., for SEO, backlinks, content analysis), the lack of usage guidelines leaves the agent guessing about its specific application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_locationsC
Utility tool for serp_organic_live_advanced to get list of availible locations.
| Name | Required | Description | Default |
|---|---|---|---|
| search_engine | No | search engine name, one of: google, yahoo, bing. | |
| country_iso_code | Yes | ISO 3166-1 alpha-2 country code, for example: US, GB, MT | |
| location_type | No | Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University' | |
| location_name | No | Name of location or it`s part. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool 'gets list of availible locations,' which implies a read-only operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, pagination, or error handling. The description is minimal and lacks essential context for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and efficient, with no wasted words. However, it contains a typo ('availible') and could be slightly more polished, but overall it's appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list format, data structure) or provide context on complexity. For a tool with 4 parameters and no structured output info, more detail is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters with descriptions and constraints. The description adds no additional meaning beyond the schema, as it doesn't explain parameter interactions or usage examples. Baseline 3 is appropriate when schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a 'Utility tool for serp_organic_live_advanced to get list of availible locations.' This clarifies it fetches location data for a specific sibling tool, but the purpose is somewhat vague—it doesn't specify what 'availible locations' means (e.g., search engine locations, geographic regions). It distinguishes from most siblings by focusing on locations, but lacks specificity in verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it's for 'serp_organic_live_advanced,' implying usage context, but provides no explicit guidance on when to use this tool versus alternatives (e.g., serp_youtube_locations or other location-related tools in the sibling list). There are no exclusions or prerequisites stated, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_organic_live_advancedC
Get organic search results for a keyword in specified search engine
| Name | Required | Description | Default |
|---|---|---|---|
| search_engine | No | search engine name, one of: google, yahoo, bing. | |
| location_name | No | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | United States |
| depth | No | parsing depth optional field number of results in SERP | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| keyword | Yes | Search keyword | |
| max_crawl_pages | No | page crawl limit optional field number of search results pages to crawl max value: 100 Note: the max_crawl_pages and depth parameters complement each other | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| people_also_ask_click_depth | No | clicks on the corresponding element specify the click depth on the people_also_ask element to get additional people_also_ask_element items; |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' results, implying a read-only operation, but doesn't clarify if it's a live query (suggesting real-time data), potential rate limits, authentication needs, or error handling. For a tool with 8 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get organic search results for a keyword in specified search engine.' It's front-loaded with the core purpose, uses clear language, and avoids redundancy. Every word contributes to understanding, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain the return format (e.g., what data is included in 'organic search results'), behavioral aspects like real-time vs. cached data, or error conditions. For a tool that likely returns rich SERP data, this leaves critical gaps for an AI agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'keyword' and 'specified search engine,' which align with two parameters, but doesn't add meaningful context beyond the schema. With 100% schema description coverage, the schema already documents all parameters thoroughly (e.g., defaults, constraints, formats). The description provides no additional semantics, such as how parameters interact (e.g., 'depth' vs. 'max_crawl_pages'), so it meets the baseline but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get organic search results for a keyword in specified search engine.' It specifies the verb ('get'), resource ('organic search results'), and key parameters ('keyword,' 'search engine'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'serp_youtube_organic_live_advanced,' which might cause confusion in tool selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools, such as 'serp_youtube_organic_live_advanced' for YouTube searches or other SERP-related tools. This lack of context could lead to incorrect tool selection in complex scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_locationsA
Utility tool to get list of available locations for: serp_youtube_organic_live_advanced, serp_youtube_video_info_live_advanced, serp_youtube_video_comments_live_advanced, serp_youtube_video_subtitles_live_advanced.
| Name | Required | Description | Default |
|---|---|---|---|
| country_iso_code | Yes | ISO 3166-1 alpha-2 country code, for example: US, GB, MT | |
| location_type | No | Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University' | |
| location_name | No | Name of location or it`s part. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it states this is a 'utility tool' that 'gets list of available locations,' it doesn't disclose important behavioral traits like whether this is a read-only operation, what authentication might be required, rate limits, or what format the location list returns. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly communicates the tool's purpose and usage context. It's appropriately sized for a utility tool and front-loads the essential information without any wasted words or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a utility tool with 3 parameters (1 required), 100% schema coverage, and no output schema, the description provides adequate context about what the tool does and which tools it supports. However, it lacks information about return format and behavioral characteristics that would be helpful given the absence of annotations. The description is complete enough for basic understanding but could be more comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what the schema provides. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to 'get list of available locations' for specific YouTube SERP tools. It specifies the verb ('get') and resource ('list of available locations'), but doesn't distinguish it from the similar 'serp_locations' sibling tool, which appears to serve a parallel function for non-YouTube SERP tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists the four specific tools this location utility supports: 'serp_youtube_organic_live_advanced, serp_youtube_video_info_live_advanced, serp_youtube_video_comments_live_advanced, serp_youtube_video_subtitles_live_advanced.' This provides clear guidance on when to use this tool versus alternatives - specifically for YouTube-related SERP tools rather than general SERP tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_organic_live_advancedC
provides top 20 blocks of youtube search engine results for a keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Search keyword | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
| block_depth | No | parsing depth optional field number of blocks of results in SERP max value: 700 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'top 20 blocks' and implies live results, but lacks critical details: it doesn't specify if results are real-time or cached, whether there are rate limits, authentication requirements, error handling, or the structure of returned data (since no output schema exists). For a tool with 6 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality ('provides top 20 blocks of youtube search engine results for a keyword'). It wastes no words and directly communicates the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral context (e.g., live vs. cached, rate limits), usage guidelines compared to siblings, and details on output format. While the input schema is thorough, the description alone doesn't provide enough information for an agent to fully understand how to use this tool effectively in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description adds no additional parameter semantics beyond implying keyword-based search. Since the schema handles the heavy lifting, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to given the comprehensive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides top 20 blocks of youtube search engine results for a keyword.' It specifies the verb ('provides'), resource ('youtube search engine results'), and scope ('top 20 blocks'), which is specific and actionable. However, it doesn't explicitly distinguish this tool from sibling tools like 'serp_organic_live_advanced' or 'serp_youtube_video_info_live_advanced', which might offer similar or overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons with sibling tools (e.g., 'serp_organic_live_advanced' for general SERP or other YouTube-specific tools). Without such context, an agent must infer usage based on the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_comments_live_advancedD
provides data on the video comments you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
| depth | No | parsing depth, number of results in SERP, max value: 700 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It fails to do so—it doesn't indicate whether this is a read-only or mutating operation, what permissions might be required, rate limits, or what the output format looks like (e.g., JSON structure, pagination). The term 'provides data' is too generic, offering no insight into the tool's behavior beyond the basic action implied by the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence ('provides data on the video comments you specify'), which is concise but under-specified—it lacks necessary detail to be truly helpful. While it avoids verbosity, it doesn't front-load critical information or structure content effectively, leaving the agent with insufficient context. It's not wasteful, but it's too minimal to earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., comment data format, error handling), behavioral aspects, or usage context. While the schema covers parameters well, the description fails to provide a holistic understanding, making it inadequate for a tool that likely involves data retrieval from an external service like YouTube SERP.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the schema itself (e.g., 'video_id', 'location_name' with format details, 'depth' with max value). The description adds no additional semantic context beyond what's in the schema, such as explaining why these parameters matter or how they affect the results. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description doesn't compensate or enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'provides data on the video comments you specify' is vague and tautological—it essentially restates the tool name 'serp_youtube_video_comments_live_advanced' without specifying what kind of data (e.g., comment text, metadata, sentiment) or how it's retrieved. It lacks a clear verb-resource distinction and doesn't differentiate from sibling tools like 'serp_youtube_video_info_live_advanced' or 'serp_youtube_video_subtitles_live_advanced', which could also provide video-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for use (e.g., for SEO analysis, sentiment tracking), or exclusions. Given the many sibling tools (e.g., 'serp_youtube_organic_live_advanced', 'serp_youtube_video_info_live_advanced'), the absence of comparative guidance is a significant gap, leaving the agent to guess based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_info_live_advancedD
provides data on the video you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states it 'provides data' without specifying if it's a read-only operation, requires authentication, has rate limits, or what the output format might be. This leaves critical behavioral aspects undefined, failing to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While concise with a single sentence, it is under-specified rather than efficiently structured. The description fails to front-load essential information (e.g., what data, from where) and wastes its brevity on a vague statement that doesn't help the agent understand the tool's purpose or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks details on the tool's behavior, output format, and differentiation from siblings. Without annotations or output schema, the description should provide more context to guide the agent effectively, but it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (video_id, location_name, etc.) with detailed descriptions. The description adds no additional meaning beyond the schema, such as explaining why these parameters are needed or how they affect results, but the high schema coverage justifies a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'provides data on the video you specify' is vague and tautological—it essentially restates the tool name without specifying what type of data (e.g., metadata, analytics, rankings) or from what source (e.g., YouTube SERP). It fails to distinguish this tool from sibling tools like 'serp_youtube_organic_live_advanced' or 'serp_youtube_video_comments_live_advanced', leaving the agent unclear about its unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools (e.g., 'serp_youtube_organic_live_advanced', 'serp_youtube_video_comments_live_advanced'), there is no indication of context, prerequisites, or exclusions, making it impossible for an agent to choose appropriately without external knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_subtitles_live_advancedD
provides data on the video subtitles you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| subtitles_language | No | language code of original text (e.g., 'en') | |
| subtitles_translate_language | No | language code of translated text (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but fails to disclose any behavioral traits. It doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, or what the output looks like (e.g., structured data, raw text). The phrase 'provides data' is too generic to infer behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While concise (one sentence), the description is under-specified and fails to front-load critical information. It doesn't earn its place by adding value; instead, it's overly brief for a complex tool, making it inefficient for agent understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is severely incomplete. It doesn't explain the tool's purpose, usage, behavior, or output, leaving major gaps that hinder effective agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters with detailed descriptions and constraints. The description adds no additional meaning beyond the schema, but since coverage is high, the baseline score of 3 applies—adequate but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'provides data on the video subtitles you specify' is vague and tautological—it essentially restates the tool name without specifying what kind of data (e.g., transcript text, timing, availability) or how it's retrieved. It lacks a clear verb-resource combination and doesn't distinguish from sibling tools like 'serp_youtube_video_info_live_advanced' or 'serp_youtube_organic_live_advanced'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description offers no context, prerequisites, or exclusions, leaving the agent to guess based on parameters alone. This is inadequate for a tool with 7 parameters and no annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
34 tool updates
v1.0.0- Added
ai_optimization_keyword_data_locations_and_languages - Added
ai_optimization_keyword_data_search_volume - Added
ai_optimization_llm_mentions_aggregated_metrics - Added
ai_optimization_llm_mentions_cross_aggregated_metrics - Added
ai_optimization_llm_mentions_filters - Added
ai_optimization_llm_mentions_locations_and_languages - Added
ai_optimization_llm_mentions_search - Added
ai_optimization_llm_mentions_top_domains - Added
ai_optimization_llm_mentions_top_pages - Added
ai_optimization_llm_models - Added
ai_optimization_llm_response - Changed
dataforseo_labs_bulk_keyword_difficulty1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_bulk_traffic_estimation2 fields changed- added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_competitors_domain2 fields changed- added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_domain_intersection2 fields changed- added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_domain_rank_overview1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_historical_keyword_data1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_historical_rank_overview1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_historical_serp1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_keyword_ideas1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\n required field\n in format \"Country\"\n example:\n United Kingdom"New value: +"full name of the location\n required field\n only in format \"Country\" (not \"City\" or \"Region\")\n example:\n 'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_keyword_overview1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_keyword_suggestions1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_keywords_for_site1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_page_intersection2 fields changed- added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_ranked_keywords2 fields changed- added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack", + "ai_overview_reference" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_related_keywords1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Added
dataforseo_labs_google_relevant_pages - Changed
dataforseo_labs_google_serp_competitors3 fields changed- changed
Input schema / properties / filters / descriptionPrevious value: -"you can add several filters at once (8 filters maximum)\n you should set a logical operator and, or between the conditions\n the following operators are supported:\n regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like\n you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters\n merge operator must be a string and connect two other arrays, availible values: or, and.\n example:\n [\"ranked_serp_element.serp_item.rank_group\",\"<=\",10]\n [[\"ranked_serp_element.serp_item.rank_group\",\"<=\",10],\"or\",[\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"]]\n [[\"keyword_data.keyword_info.search_volume\",\"<>\",0],\"and\",[[\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"],\"or\",[\"ranked_serp_element.serp_item.is_malicious\",\"=\",false]]]"New value: +"you can add several filters at once (8 filters maximum)\nyou should set a logical operator and, or between the conditions\nthe following operators are supported:\nregex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like\nyou can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters\nexample:\n[\"median_position\",\"in\",[1,10]]\n[[\"median_position\",\"in\",[1,10]],\"and\",[\"domain\",\"not_like\",\"%wikipedia.org%\"]]\n\n[[\"domain\",\"not_like\",\"%wikipedia.org%\"],\n\"and\",\n[[\"relevant_serp_items\",\">\",0],\"or\",[\"median_position\",\"in\",[1,10]]]]" - added
Input schema / properties / item_typesAdded value: +{ + "default": [ + "organic" + ], + "description": "display results by item type\nindicates the type of search results included in the response", + "items": { + "enum": [ + "organic", + "paid", + "featured_snippet", + "local_pack" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_subdomains4 fields changed- added
Input schema / properties / item_types / defaultAdded value: +[ + "organic" +] - changed
Input schema / properties / item_types / descriptionPrevious value: -"item types to return\n optional field\n default: ['organic']\n possible values:\n organic\n paid"New value: +"display results by item type\nindicates the type of search results included in the response" - added
Input schema / properties / item_types / items / enumAdded value: +[ + "organic", + "paid", + "featured_snippet", + "local_pack" +] - changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
dataforseo_labs_google_top_searches1 field changed- changed
Input schema / properties / location_name / descriptionPrevious value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
- Changed
keywords_data_google_trends_categories1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
on_page_lighthouse - Changed
serp_locations5 fields changed- removed
Input schema / properties / country_codeRemoved value: -{ - "default": "US", - "description": "country code (e.g., 'US')", - "type": "string" -} - added
Input schema / properties / country_iso_codeAdded value: +{ + "description": "ISO 3166-1 alpha-2 country code, for example: US, GB, MT", + "type": "string" +} - added
Input schema / properties / location_nameAdded value: +{ + "description": "Name of location or it`s part.", + "type": "string" +} - added
Input schema / properties / location_typeAdded value: +{ + "description": "Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University'", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "country_iso_code" +]
- Changed
serp_youtube_locations5 fields changed- removed
Input schema / properties / country_codeRemoved value: -{ - "default": "US", - "description": "country code (e.g., 'US')", - "type": "string" -} - added
Input schema / properties / country_iso_codeAdded value: +{ + "description": "ISO 3166-1 alpha-2 country code, for example: US, GB, MT", + "type": "string" +} - added
Input schema / properties / location_nameAdded value: +{ + "description": "Name of location or it`s part.", + "type": "string" +} - added
Input schema / properties / location_typeAdded value: +{ + "description": "Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University'", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "country_iso_code" +]
63 tool updates
- First observed
backlinks_anchors - First observed
backlinks_available_filters - First observed
backlinks_backlinks - First observed
backlinks_bulk_backlinks - First observed
backlinks_bulk_new_lost_backlinks - First observed
backlinks_bulk_new_lost_referring_domains - First observed
backlinks_bulk_pages_summary - First observed
backlinks_bulk_ranks - First observed
backlinks_bulk_referring_domains - First observed
backlinks_bulk_spam_score - First observed
backlinks_competitors - First observed
backlinks_domain_intersection - First observed
backlinks_domain_pages - First observed
backlinks_domain_pages_summary - First observed
backlinks_page_intersection - First observed
backlinks_referring_domains - First observed
backlinks_referring_networks - First observed
backlinks_summary - First observed
backlinks_timeseries_new_lost_summary - First observed
backlinks_timeseries_summary - First observed
business_data_business_listings_search - First observed
content_analysis_phrase_trends - First observed
content_analysis_search - First observed
content_analysis_summary - First observed
dataforseo_labs_available_filters - First observed
dataforseo_labs_bulk_keyword_difficulty - First observed
dataforseo_labs_bulk_traffic_estimation - First observed
dataforseo_labs_google_competitors_domain - First observed
dataforseo_labs_google_domain_intersection - First observed
dataforseo_labs_google_domain_rank_overview - First observed
dataforseo_labs_google_historical_keyword_data - First observed
dataforseo_labs_google_historical_rank_overview - First observed
dataforseo_labs_google_historical_serp - First observed
dataforseo_labs_google_keyword_ideas - First observed
dataforseo_labs_google_keyword_overview - First observed
dataforseo_labs_google_keyword_suggestions - First observed
dataforseo_labs_google_keywords_for_site - First observed
dataforseo_labs_google_page_intersection - First observed
dataforseo_labs_google_ranked_keywords - First observed
dataforseo_labs_google_related_keywords - First observed
dataforseo_labs_google_serp_competitors - First observed
dataforseo_labs_google_subdomains - First observed
dataforseo_labs_google_top_searches - First observed
dataforseo_labs_search_intent - First observed
domain_analytics_technologies_available_filters - First observed
domain_analytics_technologies_domain_technologies - First observed
domain_analytics_whois_available_filters - First observed
domain_analytics_whois_overview - First observed
keywords_data_dataforseo_trends_demography - First observed
keywords_data_dataforseo_trends_explore - First observed
keywords_data_dataforseo_trends_subregion_interests - First observed
keywords_data_google_ads_search_volume - First observed
keywords_data_google_trends_categories - First observed
keywords_data_google_trends_explore - First observed
on_page_content_parsing - First observed
on_page_instant_pages - First observed
serp_locations - First observed
serp_organic_live_advanced - First observed
serp_youtube_locations - First observed
serp_youtube_organic_live_advanced - First observed
serp_youtube_video_comments_live_advanced - First observed
serp_youtube_video_info_live_advanced - First observed
serp_youtube_video_subtitles_live_advanced
TDQS
The tool set suffers from significant ambiguity, with many tools having overlapping purposes that could confuse an agent. For example, multiple backlinks tools (e.g., backlinks_backlinks, backlinks_summary, backlinks_bulk_pages_summary) provide similar backlink overviews, and there are several 'available_filters' tools across different categories that serve identical utility functions. While descriptions help differentiate some, the sheer number and redundancy make misselection likely.
Tool names follow a highly consistent snake_case pattern with a clear hierarchical structure, typically using category prefixes (e.g., ai_optimization_, backlinks_, dataforseo_labs_). This predictability makes it easy for agents to understand the domain and purpose of each tool, with only minor deviations like 'dataforseo_labs_' vs. 'keywords_data_' but overall maintaining a uniform naming convention.
With 76 tools, the count is excessively high for an MCP server, making it overwhelming and difficult for agents to navigate effectively. While the server covers a broad SEO/data analytics domain, the tool surface could be consolidated (e.g., merging similar backlinks or filters tools) to reduce complexity without losing functionality, as many tools appear redundant or overly granular.
The tool set provides extensive coverage for SEO and data analytics, including AI optimization, backlinks, keyword research, SERP analysis, and domain analytics. There are few obvious gaps for core workflows, though some edge cases like real-time monitoring or advanced reporting might be missing. The completeness is high but slightly diminished by the redundancy rather than missing essential operations.
Related MCP Connectors
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Enables AI assistants to natively interact with the Serpzilla link-building marketplace.
Related MCP Servers
- AlicenseAqualityCmaintenanceAI assistants to query and analyze Azure Data Explorer databases through standardized interfaces.557MIT
- AlicenseNot gradedqualityDmaintenanceA stdio-based server that enables interaction with the DataForSEO API through the Model Context Protocol, allowing users to fetch SEO data including search results, keywords data, backlinks, on-page analysis, and more.207MIT
- AlicenseDqualityDmaintenanceEnables LLMs to interact with DataForSEO and other SEO APIs through natural language, allowing for keyword research, SERP analysis, backlink analysis, and local SEO tasks.10022,89882MIT
- FlicenseBqualityDmaintenanceProvides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.716-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravinwebsurgeon/seo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server