AIsa App Store Data
Server Details
Your agent needs app-store data — what an app looks like on the App Store and Google Play, what reviewers say, and what ranks for a search in a given country.
What you can ask for • "What does this app's store listing look like, and how is it rated?" • "Pull recent reviews for this app and group the complaints." • "What apps rank for this search term in Japan?" • "List the top apps in this category on both stores." • "Compare this app's listing on iOS and Android."
How to use it Point any MCP client at https://mcp.aisa.one/seo-apps/mcp and sign in with OAuth — there is no key to create or paste. 37 tools: Apple App Store and Google Play app info, app lists, category listings, reviews and store search results, in live and queued forms, with categories, languages and locations for each.
It is also a door to the rest The same login reaches 26 sources and 580+ operations. Read the store listing here, then ask the same agent what the app's website ranks for — without adding a second server.
What it costs Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident.
Where else it reaches https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
- Status
- Healthy
- Uptime
- 89.2% over 21 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 42 tools
Several tool pairs have near-identical purposes (e.g., get_dataforseo_app_apple_categories vs get_dataforseo_app_apple_app_listings_categories, and fetch vs submit variants for info/list/reviews/searches), so an agent cannot easily tell which to call. The *_html tools have essentially no description, worsening the ambiguity.
DataForSEO tools follow a mostly predictable get_/post_ + provider + resource pattern, but the meta tools (batch_use, use, search, get_details, list_categories) break that convention with short generic names. The fetch/submit suffix pairing is also an unusual verb pattern that muddies consistency.
42 tools is heavy for an app-store data server, and many are redundant provider variants (Apple vs Google) or overlapping fetch/submit/html duplicates. The surface feels bloated rather than well-scoped.
Coverage is broad: app info, charts, reviews, keyword searches, categories, languages, locations, plus competitive/ranking labs for both App Store and Google Play. Only minor gaps exist, such as under-documented HTML variants and no unified cross-store operation.
Available Tools
42 toolsbatch_useRun up to 20 operationsADestructiveInspect
Execute up to 20 operations concurrently (tool-router's batch_use). Each item answers independently; one failure never cancels the others. Billed per call to your AIsa key.
| Name | Required | Description | Default |
|---|---|---|---|
| calls | Yes | Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch | |
| search_id | No | search_id from the search that found these operations | |
| max_price_usd | No | Per-call price cap applied to every item |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so safety is covered. The description adds valuable behavior: independence of items (one failure doesn't cancel others) and per-call billing. These are not derivable from annotations and help the agent set expectations.
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?
Three short sentences with zero filler. The action and limit are front-loaded. The phrase 'tool-router's batch_use' is redundant since it restates the tool name, but it's a minor flaw. 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?
With annotations covering destructive behavior and an output schema presumably describing results, the description covers the key operational aspects: concurrency limit, independence, and billing. It doesn't mention error reporting formats, but those likely live in the output schema. It is sufficiently complete for a batch tool.
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 each parameter. The description adds no parameter-specific details. The calls parameter's description already explains the structure and batching context, so the baseline of 3 applies; the description doesn't need to compensate.
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 a clear action (execute) and resource (operations) with a concrete limit (up to 20) and concurrency. It doesn't explicitly name the sibling 'use' for single operations, but the distinction is clear enough from the concurrency and limit. The redundancy of 'tool-router's batch_use' is minor.
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 gives no guidance on when to use this tool versus the sibling 'use' tool. The schema note about 'steps at the same execution_level of a plan go in one batch' is helpful, but it lives in the schema, not the description. The description only implies batching via concurrency but doesn't state when to choose it over the single-operation alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_app_info_fetchGet Apple App Info Results by idBRead-onlyIdempotentInspect
This endpoint will provide you with information about the mobile application specified in a POST request. You will receive its ID, icon, description, reviews count, rating, images, and other data. The results are specific to the app_id parameter specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds little beyond that, and 'the app_id parameter specified in the POST request' refers to the submission call rather than this invocation, which is potentially confusing since the actual parameter here is named 'id'.
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?
Three sentences with noticeable redundancy ('specified in a POST request' is effectively stated twice) and a return-value enumeration that duplicates the output schema. Front-loaded purpose is fine, but wording does not earn its keep.
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?
With an output schema present, listing returned fields is unnecessary, and the description omits the more valuable context: that the id originates from the corresponding submit task and expires after 30 days. Adequate for a simple fetch, but the key workflow linkage is missing.
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% and the single 'id' parameter is fully documented in the schema (UUID task identifier, 30-day validity). The description's reference to an 'app_id parameter in the POST request' does not match the 'id' parameter name and adds confusion rather than meaning, so it sits at the baseline.
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 a concrete verb (provides/fetches) and resource (mobile application info: ID, icon, description, reviews count, rating, images), so the agent can identify it as an app-detail retrieval tool. It is not explicitly differentiated from the sibling get_dataforseo_app_google_app_info_fetch or the *_list_fetch tools, but the Apple/app-info scope is clear.
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 versus siblings, nor that it must be called after post_dataforseo_app_apple_app_info_submit to retrieve the queued task's results. The only hint that an id is required comes from the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_app_list_fetchGet Apple App List Results by idARead-onlyIdempotentInspect
This endpoint will provide you with a list of applications published in the top app charts on the App Store platform, including app IDs, ratings, prices, titles, and more. The results are specific to the app_collection as well as the location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive behavior, so the safety profile is covered. The description adds genuine behavioral context: the result set is determined by the app_collection/location/language of the original POST, which tells the agent this is a read-back of a previously scoped task rather than an independent query.
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?
Two sentences, front-loaded with the resource and followed by the scoping caveat; nothing is padded or redundant. Slightly boilerplate phrasing but every sentence carries 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 one-parameter fetch tool with an output schema that already documents return values, the description is sufficient: it says what comes back and what determines the scope. The main omission is an explicit statement of the submit-then-fetch workflow, which the agent must infer.
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?
There is a single 'id' parameter with 100% schema description coverage, so the schema fully explains its UUID format and 30-day retention. The description's only parameter-related content (app_collection, location, language) refers to the POST request, not this tool's input, so it adds no meaning to the id parameter itself.
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 a specific resource (a list of applications published in the top App Store charts) and the fields returned (app IDs, ratings, prices, titles), which separates it from the app_info and reviews siblings. It does not explicitly frame itself as the retrieval half of a submit/fetch pair, so the distinction from post_dataforseo_app_apple_app_list_submit is left to the reader.
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?
Mentioning that results are scoped to the app_collection, location and language 'specified in the POST request' implies this tool is called after a prior submit, which is useful usage context. However, it never states when to use this over alternatives or states the prerequisite explicitly, so usage remains inferred rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_app_listings_categoriesList of App Store Listings Categories for App Data APIARead-onlyIdempotentInspect
This endpoint will provide you with a full list of app categories available on Apple App Store.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds only that the list is 'full' (implying no pagination), which is modest additional context for a simple read endpoint.
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?
A single front-loaded sentence with no filler. Appropriately sized for a no-parameter list 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 zero-parameter read tool with an output schema that documents return values, the description is nearly sufficient. The only missing element is distinguishing this tool from the sibling apple_categories endpoint.
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 takes zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify beyond what the empty schema already conveys.
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?
States a specific verb and resource: retrieves a full list of app categories on the Apple App Store. However, it does not differentiate from the similarly named sibling get_dataforseo_app_apple_categories, leaving ambiguity about which categories tool to call.
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 when-to-use or when-not-to-use guidance is given. With a sibling like get_dataforseo_app_apple_categories in the list, the description should explain how this listings-categories tool differs, but it offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_app_reviews_fetchGet Apple App Reviews Results by idBRead-onlyIdempotentInspect
This endpoint will provide you with feedback data on applications listed on the App Store platform, including review ratings, review content, user profile info of each reviewer, review publication dates, and more. The results are specific to the app_id as well as the location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that results are scoped to app_id, location, and language from the originating POST, which is useful context, but omits any note about task lifetime or result availability windows (those live only in the 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?
Two sentences, front-loaded with the resource, but padded with 'and more' and a trailing sentence that re-explains the POST-derived scoping without adding actionable detail. Adequate but not tight.
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?
With an output schema present, the description need not enumerate return fields; it still sketches the payload (ratings, content, reviewer profiles, dates). For a simple one-parameter fetch tool, this is nearly complete, missing only the explicit submit-then-fetch workflow prerequisite.
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% for the single 'id' parameter, so the schema already carries the semantics. The description instead references app_id/location/language fields that are not actual input parameters here, adding no real meaning 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?
Specific verb+resource: retrieves feedback/review data for App Store applications, distinguishing it from the sibling get_dataforseo_app_google_app_reviews_fetch. However, it is framed as 'this endpoint will provide you with feedback data' rather than clearly stating it fetches results of a previously submitted task by id, so the retrieval-by-id nature is only implied.
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 mention of 'parameters specified in the POST request' weakly implies this is the companion to post_dataforseo_app_apple_app_reviews_submit, but no explicit when-to-use, prerequisite (task must be completed first), or alternative is named. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_app_searches_fetchGet Apple App Searches Results by idCRead-onlyIdempotentInspect
This endpoint will provide you with a list of apps ranking on the App Store for the keyword specified in a POST request. You will also receive additional information about each application: its ID, icon, reviews count, rating, price, and other data. The results are specific to the keyword as well as location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds some context about what the payload contains (id, icon, reviews count, rating, price), but discloses nothing about the 30-day task-id validity window (only in the schema) or the async submit-then-fetch coupling.
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?
Effectively three sentences with the core result set front-loaded and little wasted wording. It is not bloated, though the trailing enumeration of app fields is somewhat redundant given the output schema exists.
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?
An output schema exists, so return-value detail is not required, yet the description spends its length on return fields while omitting the critical context: this is an id-based result fetch tied to an earlier submission. For a DataForSEO task-retrieval endpoint that omission is a real gap.
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 coverage is 100% for the single 'id' parameter, so the baseline would be 3, but the description discusses keyword/location/language 'specified in the POST request' — parameters this tool does not accept — which can mislead an agent about what it needs to supply. It never explains that 'id' is the task identifier from the submit call.
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 a specific verb and resource: it returns apps ranking on the Apple App Store for a keyword, plus per-app fields. It implicitly distinguishes itself from the Google sibling via 'App Store'/'Apple', but never says it is the retrieval half of an asynchronously submitted task keyed by id, which the title implies.
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 when-to-use guidance and no mention of the prerequisite workflow (submit via post_dataforseo_app_apple_app_searches_submit, then fetch results with the returned task id). The agent is left to infer the dependency from 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.
get_dataforseo_app_apple_categoriesList of Apple App Categories for App Data APIBRead-onlyIdempotentInspect
This endpoint will provide you with a full list of app categories available on App Store.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the scope word 'full', with no note on freshness, caching, or whether results are static reference data.
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?
A single tight sentence with no filler, front-loading the resource returned. Slightly boilerplate ('This endpoint will provide you with') but not wasteful.
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?
An output schema exists, so return values need no explanation, and there are no parameters to document. For a simple reference-list endpoint the description is adequate, though it could note whether the list is static or locale-scoped.
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 takes zero parameters, so there is nothing for the description to clarify; the baseline for a parameterless tool applies.
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?
States a specific verb and resource: returns a full list of app categories on the App Store. The name/title already pins it to Apple, which distinguishes it from the Google counterpart, but the description itself does not call out that 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?
No when-to-use context, no prerequisites, and no mention of the parallel get_dataforseo_app_google_categories or list_categories siblings. An agent is left to infer that this is the Apple-specific lookup step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_languagesList of Apple Languages for App Data APIBRead-onlyIdempotentInspect
By calling this endpoint you will receive the list of Apple languages supported in App Data API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds essentially nothing beyond that — it does not note that no arguments are needed, that the result is a static catalog, or any rate/format 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?
A single, front-loaded sentence with no waste. It could be tightened ('Returns the list of Apple languages supported by the App Data API') but it is appropriately sized for a trivial lookup.
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?
With an output schema present, the description needn't explain return values, and with no parameters there is little else an agent needs in order to call it. Only the absence of usage context against the parallel Google tool is a gap.
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 takes zero parameters, which is the baseline-4 case; there is no parameter semantics to add or omit. The description correctly implies a no-argument call.
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?
States a specific verb and resource ('receive the list of Apple languages supported in App Data API'), which is enough to distinguish it from the sibling get_dataforseo_app_google_languages. The phrasing is slightly circular ('By calling this endpoint you will receive...') but the subject matter is unambiguous.
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 when-to-use guidance, no prerequisites, and no mention of the Google-language sibling it parallels. An agent must infer that this is a static reference lookup to be used for resolving language codes in other Apple App Data calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_apple_locationsList of Apple Locations for App Data APIBRead-onlyIdempotentInspect
By calling this endpoint you will receive the list of Apple locations supported in App Data API. for more info please visit 'https://docs.dataforseo.com/v3/app_data/apple/locations/?bash'
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds little beyond that, only noting it's a list endpoint. It doesn't describe return format, rate limits, or authentication, but the annotations carry most of the burden here.
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 reasonably concise but includes a documentation link that may not be immediately actionable for an agent. It is not front-loaded with key information like 'returns a list of supported Apple locations,' though that is present. The structure is acceptable but not optimal.
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 that this is a simple, parameterless listing tool with rich annotations and an output schema, the description covers the essentials. However, it misses an opportunity to explain the practical use case (e.g., obtaining location identifiers for other App Data API calls) and does not mention the output schema, which could help the agent understand what to expect.
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 zero parameters, so there is nothing to document. The baseline for zero parameters is 4. The description correctly implies a parameterless retrieval, and no contradiction exists.
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 a specific verb ('receive the list') and resource ('Apple locations supported in App Data API'), which is clear. However, it does not differentiate from the sibling tool get_dataforseo_app_google_locations, which performs the analogous function for Google. It relies on the tool name and context to make 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 provides no guidance on when to use this tool versus alternatives. It does not mention the Google locations sibling or explain that this is for discovering valid Apple location identifiers needed for other App Data API calls. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_info_fetchGet Google App Info Results by idBRead-onlyIdempotentInspect
This endpoint will provide you with information about the mobile application specified in a POST request. You will receive its ID, icon, description, reviews count, rating, number of installs, images, and other data. The results are specific to the app_id parameter specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a note about results being tied to the POST request's app_id, but doesn't mention pagination, error behavior, or task-expiry beyond what the schema already says.
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?
Three sentences that are front-loaded but include a long enumeration of return fields (ID, icon, description, reviews count, rating, installs, images) that duplicates the output schema and adds length without value.
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?
An output schema exists, so enumerating return values is redundant, and the key workflow detail (call this after post_dataforseo_app_google_app_info_submit using its task id) is left implicit. Adequate but with a clear gap for an id-based results-retrieval tool.
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% for the single 'id' parameter, so the baseline is 3. The description's mention of 'app_id' does not map to the actual parameter name 'id' and could confuse rather than clarify.
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?
States a clear verb+resource: it returns mobile-app information for the app referenced in a prior POST request. However, it does not distinguish itself from the sibling get_dataforseo_app_google_app_info_fetch_html or make explicit that it retrieves results of an already-submitted task.
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 phrase 'specified in a POST request' implies this is a follow-up results-fetch, but it never names post_dataforseo_app_google_app_info_submit as the prerequisite step. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_info_fetch_htmlGet Google App Info HTML Results by idDRead-onlyIdempotentInspect
Description of the fields for sending a request:
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds nothing beyond that—no auth needs, no rate limits, no caching/expiration details. With the bar lowered by annotations, zero added context earns a 1.
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 short but is a placeholder sentence that conveys no usable information; it is under-specified rather than concise. It fails to front-load any actionable detail.
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 fetch-by-id tool with one required parameter, an output schema, and rich annotations, the description should at least identify the resource being fetched and the task-result relationship. Instead it is a generic placeholder, leaving the agent to infer nearly everything from the name and 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%, and the single id parameter is fully documented in the schema, including its UUID format and 7-day window. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
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 is a placeholder that does not state what the tool does; it reads as a meta-instruction about request fields. The agent must rely entirely on the tool name/title to infer that it fetches Google App Info HTML results by id. As a description, it is missing and misleading.
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, no prerequisites, and no mention of the sibling tools. The agent is given no context for selecting this fetch tool over its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_list_fetchGet Google App List Results by idARead-onlyIdempotentInspect
This endpoint will provide you with a list of applications published in the top charts on the Google Play platform, including app IDs, ratings, prices, titles, and more. The results are specific to the app_collection as well as the location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds that output scope is bound to app_collection/location/language from the originating POST, which is useful context, but says nothing about retention, pagination, or failure modes for an expired task id.
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?
Two sentences, front-loaded with what the tool returns, followed by the scoping caveat. No filler, though the second sentence could be trimmed since it references parameters not accepted by this call.
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?
With a rich annotation set and an output schema, the description need not explain return format. It adequately conveys that this is a result-retrieval endpoint whose output is determined by the earlier POST, leaving only the explicit submit-then-fetch workflow to inference.
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% for the single 'id' parameter (UUID, usable for 30 days), so the schema carries the semantics. The description's mention of app_collection/location/language parameters is somewhat misleading since those are not inputs to this call, but it does clarify that they were fixed at submission time.
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?
States a specific verb and resource: retrieves a list of apps from Google Play top charts, including the fields returned (IDs, ratings, prices, titles). It does not name the sibling it pairs with (post_dataforseo_app_google_app_list_submit) or contrast itself with get_dataforseo_app_google_app_list_fetch_html, so sibling differentiation is only implicit via 'by id'.
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?
Usage is implied rather than stated: the phrase 'specified in the POST request' hints that this retrieves results of a previously submitted task, but the description never tells the agent to call the list-submit endpoint first or when to prefer this over the _html variant. No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_list_fetch_htmlGet Google App List HTML Results by idDRead-onlyIdempotentInspect
Description of the fields for sending a request:
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no mention of the 7-day result retention window (which the schema docstring covers but the description ignores), no note that it is idempotent retrieval, no error behavior for expired ids.
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?
It is short, but this is under-specification rather than conciseness — the single sentence is a content-free placeholder with a dangling colon. It is not front-loaded with anything an agent can act on.
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?
An output schema exists so return values need not be described, but the description still fails to state the basic operation (retrieve Google app list HTML results for a previously submitted task id). For a tool in a large family of nearly identically named siblings, this leaves the agent with only the name and title to work from.
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 id parameter's UUID format and 7-day validity window are already documented in the schema. The description's "Description of the fields for sending a request" explains nothing about the parameter and reads as an unfilled template, adding zero meaning and slightly implying it will explain fields that it never does.
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?
"Description of the fields for sending a request:" is generic boilerplate that names no verb, resource, or outcome. It could be pasted under any tool in this server, and it gives an agent no way to distinguish this from sibling get_dataforseo_app_google_app_list_fetch or ..._fetch_html based on the description itself.
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 when-to-use guidance, no mention of the id-based retrieval model, no reference to the sibling submit/list tools that would produce the id. Nothing tells the agent when this tool is the right choice versus get_details or get_dataforseo_app_google_app_list_fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_listings_categoriesList of Google App Listings Categories for App Data APIARead-onlyIdempotentInspect
This endpoint will provide you with a full list of app categories available on Google Play.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds only the word 'full', implying no pagination or filtering, which is marginal extra context beyond the structured fields.
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?
A single front-loaded sentence with no filler or repetition. Every word earns its place.
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?
With no parameters and an output schema present, the description need not explain return values. It is adequate for a simple listing endpoint, though it could note the relationship to the sibling categories tool.
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 takes zero parameters, so there is nothing for the description to document; the baseline for a parameterless tool applies. No parameter ambiguity exists.
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?
States a specific verb and resource: returns the full list of app categories on Google Play. This clear purpose is mostly distinguishable from the Apple counterpart, but the description does not clarify how it differs from the sibling get_dataforseo_app_google_categories, leaving a potential 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?
There is no guidance on when to use this tool versus alternatives such as get_dataforseo_app_google_categories or app_listings_search_live. Usage context is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_reviews_fetchGet Google App Reviews Results by idBRead-onlyIdempotentInspect
This endpoint will provide you with feedback data on applications listed on the Google Play platform, including review ratings, review content, user profile info of each reviewer, review publication dates, and more. The results are specific to the app_id as well as the location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds that results are scoped by the parameters chosen at submit time, but says nothing about pagination, result caps, or task-state behavior (e.g., what happens if the task is still processing).
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?
Two sentences, front-loaded with the capability and followed by the scoping note. Slightly verbose in listing return fields that the output schema already covers, but no wasted filler.
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?
An output schema exists, so the description's extensive list of return fields is largely redundant, while the one thing an agent actually needs — that 'id' is a task id obtained from the corresponding submit call — is left to the schema. Functional but with a misdirected emphasis.
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 coverage is 100% and the single 'id' property is fully documented in the schema, so the baseline is 3. Rather than reinforcing that, the description names app_id/location/language — parameters that do not exist on this tool — which risks mildly misleading the agent about what it must supply.
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?
States a specific verb and resource: retrieves Google Play app review feedback data, and enumerates the returned fields (ratings, review content, reviewer profile, dates). It hints at the task-based relationship by referencing the POST request, which helps distinguish it from the *_reviews_submit sibling, though it never states that relationship outright.
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?
Usage is only implied: the mention of 'the POST request' suggests this is the retrieval half of a submit/fetch pair, and the schema notes the id is valid for 30 days. It never says explicitly 'call this after post_dataforseo_app_google_app_reviews_submit with the returned task id', nor when to prefer it over the sibling fetch/submit tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_searches_fetchGet Google App Searches Results by idCRead-onlyIdempotentInspect
This endpoint will provide you with a list of apps ranking on Google Play for the keyword specified in a POST request. You will also receive additional information about each application: its ID, icon, reviews count, rating, price, and other data. The results are specific to the keyword as well as location and language parameters specified in the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds some context about returned app data, but it does not disclose pagination, rate limits, auth requirements, or error behavior. It also misleadingly implies results are tied to a live POST request, though this doesn't contradict the safety 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?
Three sentences with redundancy ('keyword specified in a POST request' appears twice). The key fact—that this fetches stored results by id—is neither front-loaded nor stated at all, so the structure does not direct the agent to the essential 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?
An output schema exists, so return values need not be detailed. But for a simple fetch-by-id tool, the description must at least explain the retrieval-by-id operation and when to use it. It omits that entirely and mischaracterizes the input, leaving the agent without essential context to invoke 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?
Schema coverage is 100% for the single id parameter, which would normally set a baseline of 3. However, the description discusses keyword, location, and language parameters that are not in this tool's schema, adding active confusion rather than meaning for the actual input.
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 says it provides a list of apps ranking on Google Play for a keyword, which describes output content rather than the retrieval action. It never mentions fetching results by task id, and the phrase 'keyword specified in a POST request' conflates this fetch tool with the submit sibling, so an agent cannot tell what the tool actually does from the description alone.
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 when-to-use guidance, no mention of alternatives such as the HTML variant or the submit tool, and no prerequisite that a task id from a prior POST is required. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_app_searches_fetch_htmlGet Google App Searches HTML Results by idDRead-onlyIdempotentInspect
Description of the fields for sending a request:
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, giving a clear safety profile. The description adds no behavioral context beyond those annotations, but it does not contradict them either.
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, but it is a content-free placeholder rather than useful conciseness. It is under-specified and fails to front-load any actionable 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 low complexity, rich schema coverage, existing output schema, and full annotations, the structured fields carry most of the load. However, the description still omits the basic purpose and usage context that an agent needs to select this tool 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?
Schema description coverage is 100%, and the single id parameter is fully documented in the schema itself (UUID format, 7-day validity). The description adds no additional semantic meaning, so the baseline of 3 applies.
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 is a placeholder meta-sentence ("Description of the fields for sending a request:") that does not state what the tool does. It provides no verb, resource, or scope. An agent must rely entirely on the title and tool name to infer purpose.
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 gives no guidance on when to use this tool versus alternatives. It does not mention sibling tools, prerequisites, or any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_categoriesList of Google App Categories for App Data APIBRead-onlyIdempotentInspect
This endpoint will provide you with a full list of app categories available on Google Play.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description's only incremental claim, that the list is 'full', is thin and does not disclose pagination, ordering, or refresh behavior. Nothing contradicts the 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?
A single efficient sentence with the resource front-loaded and no filler. It is slightly boilerplate ('This endpoint will provide you with...') but wastes little space.
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?
An output schema exists and the tool is a simple zero-parameter lookup, so return-format explanation is unnecessary. The description is adequate for the complexity, though it could note the sibling that returns per-store listing categories to prevent misuse.
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 takes no parameters and schema coverage is 100%, so there is nothing for the description to clarify; baseline 4 applies.
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?
States a specific verb ('provide a full list') and resource ('app categories available on Google Play'), so an agent knows exactly what comes back. It does not, however, distinguish itself from near-neighbor siblings such as get_dataforseo_app_google_app_listings_categories or get_dataforseo_app_apple_categories, which look superficially 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?
There is no statement of when to reach for this tool versus the many sibling category/list endpoints, nor any prerequisite or sequencing guidance. For a zero-parameter lookup the intent is largely inferable from the name, but the description itself offers no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_languagesList of Google Languages for App Data APIBRead-onlyIdempotentInspect
By calling this endpoint you will receive the list of Google languages supported in App Data API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond restating that a list is returned.
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?
It is a single short sentence, but 'By calling this endpoint you will receive' is filler that delays the payload; 'Returns the list of Google languages supported in the App Data API' would convey the same in fewer 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?
With an output schema present, the description need not explain return values, and a zero-parameter reference lookup needs little else. It is essentially complete, lacking only a hint of why an agent would call it.
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 takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate. Schema coverage is 100% and empty, so no gap exists.
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?
States a specific verb (receive/list) and resource (Google languages supported in the App Data API). It implicitly distinguishes itself from get_dataforseo_app_apple_languages by naming Google, though it never explicitly contrasts the two siblings.
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 phrasing 'By calling this endpoint you will receive' describes the call itself rather than when to make it. There is no guidance on when to use this lookup versus siblings, though for a no-parameter enum lookup the use case is largely self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataforseo_app_google_locationsList of Google Locations for App Data APIBRead-onlyIdempotentInspect
By calling this endpoint you will receive the list of Google locations supported in App Data API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds only the fact that the payload is the supported-locations list, with no extra context such as static/cacheable reference data or result size.
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?
A single front-loaded sentence with no waste, though the lead-in 'By calling this endpoint you will receive' is slightly padded phrasing that could be trimmed.
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 zero-parameter reference lookup with an output schema that documents the return shape and annotations covering the safety profile, the description is essentially complete; only cross-referencing to how the returned locations are consumed is absent.
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 takes no parameters, so per the baseline there is nothing for the description to disambiguate; the empty schema is self-explanatory.
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 verb (receive/list) and resource (Google locations supported in the App Data API), which an agent can act on directly. It does not explicitly distinguish itself from close siblings like get_dataforseo_app_apple_locations or get_dataforseo_app_google_languages, relying on the name for that 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?
No guidance on when to call this versus the many sibling reference endpoints, and no mention that these location IDs are typically needed as inputs to other submit/live endpoints. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailsShow operation detailsARead-onlyInspect
Full contract of one or more operations: arguments_schema, response_schema, read_only, side_effects, availability, price, suggested_max_price_usd and known_pitfalls. Free — a quote authenticates like a call but stops before any spend.
price.model distinguishes the sources: quoted is what this
account would be charged now, list is the published price,
dynamic means the price varies with the request and only a quote
states it, composed means the operation runs several upstream
calls. suggested_max_price_usd is that estimate with headroom,
in the shape use and batch_use take as max_price_usd.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them. | |
| with_quote | No | Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing. | |
| operation_id | No | One operation_id from search | |
| operation_ids | No | Up to 20 operation_ids, for a batch |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context: it is free, stops before any spend, and explains how price.model varies (quoted, list, dynamic, composed). It also clarifies that suggested_max_price_usd has headroom. This goes beyond the annotation flags and gives the agent a clear model of what happens.
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 long but well structured: it opens with the core purpose, then explains the price model in a dedicated paragraph. No redundancy or filler. It front-loads the most critical information (contract fields) and then gives necessary detail about price semantics. Slightly dense but not overly verbose.
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?
The tool has an output schema, so return values need no description. The description covers the key behavioral aspects (no spend, pricing models, max_price headroom) and clarifies edge cases like routes without a price. For a read-only informational tool, this is complete enough for an agent to use 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?
Schema description coverage is 100%, so parameters are already documented. The description adds some nuance, such as how arguments affect pricing and that required parameters may be needed before a price can be quoted. It also clarifies with_quote's purpose (one round trip, spends nothing). These are useful but not essential 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 a specific purpose: returning the full contract of one or more operations, including schemas, read_only, side_effects, price, and known_pitfalls. It clearly distinguishes this from executing operations (use, batch_use) and from discovery (search, list_categories). The verb 'get' and the noun 'details' align with the title, and the first sentence is explicit.
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 the tool is used to assess an operation before spending (e.g., 'A quote authenticates like a call but stops before any spend'), and the schema says 'One operation_id from search', hinting at a flow. However, it never explicitly states when to choose this over siblings like use or search, nor does it give exclusions. The guidance is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesBrowse the AIsa catalogueARead-onlyInspect
The AIsa catalogue at a glance: categories, the servers in each, tool counts, and the dedicated endpoint to connect if you only need one category. Free; no key needed. (AIsa-only: tool-router has no equivalent.)
Use mcp.aisa.one/mcp?modules=<category> (or mcp.aisa.one/<category>/mcp)
to have that category's tools listed directly instead of via search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond annotations: the tool is free, requires no key, and can direct users to a category-specific endpoint that lists tools directly rather than through search.
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 detailed but every sentence adds useful information: output scope, cost/auth, sibling differentiation, and endpoint usage. It is slightly longer than strictly necessary but remains well-structured and 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 zero-parameter, read-only tool with an output schema and safety annotations, the description is complete. It covers what the tool returns, the free/no-key access model, and provides the category endpoint for specialized use, leaving no essential gap for an agent to call 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 tool has zero parameters, so the baseline is 4. The description includes a <category> placeholder only in the endpoint examples, not as a tool parameter, which is appropriate supplementary guidance rather than a parameter-semantics gap.
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 what the tool does: it presents the AIsa catalogue at a glance, including categories, servers, tool counts, and a dedicated category endpoint. It also distinguishes itself from search by explaining that the endpoint lists tools directly instead of via search.
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: use list_categories for a catalogue overview, and use the provided endpoint when you only need one category. It explicitly contrasts with search ('instead of via search') and notes tool-router has no equivalent, although it does not exhaustively cover all sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_apple_app_info_submitSetting Apple App Info TasksCDestructiveInspect
This endpoint will provide you with information about the App Store application specified in the app_id field of the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=true, openWorldHint=true and idempotentHint=false, but the description says only that the endpoint 'will provide you with information', which reads like a passive read and omits that it enqueues a billable task (priority 2 costs extra), that it is non-idempotent, and that results arrive via postback/pingback. The framing is directionally misleading, though not a strict reversal of the 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?
It is a single short sentence, so there is no padding to trim, but brevity here comes at the cost of accuracy - the one sentence that exists describes the wrong operation type for a task-submission 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 non-idempotent, destructive-flagged, credit-consuming async submission tool with a sibling fetch endpoint whose existence is essential to using it, the description is far too thin. It says nothing about the task lifecycle, the fetch step, cost implications, or callback URLs, leaving the agent unprepared to call it correctly in a workflow.
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?
Only the single top-level 'body' parameter is measured (0% coverage in context signals), and the description only mentions app_id, ignoring the required location_name/location_code and language_name/language_code pairs. However, the nested body properties are documented in extensive detail inside the schema itself, so the description's failure to repeat them is a partial gap rather than a fatal one.
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 names a verb ('provide') and resource ('information about the App Store application'), so the domain is identifiable, but it never states that this is a task-creation endpoint despite the name ending in '_submit' and the title saying 'Setting ... Tasks'. It also gives no differentiation from the sibling get_dataforseo_app_apple_app_info_fetch, which returns the actual results of the task this tool creates.
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 when-to-use guidance, no mention that this is an asynchronous task submission that must be paired with get_dataforseo_app_apple_app_info_fetch, and no exclusion relative to post_dataforseo_app_google_app_info_submit. The agent is left to infer the entire workflow from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_apple_app_listings_search_liveLive Apple App Listings Search ResultsCDestructiveInspect
This endpoint will provide you with a list of apps published on App Store along with additional information: its ID, icon, reviews count, rating, price, and other data. The results are specific to the title, description, and categories parameters specified in the API request.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description frames the tool as a retrieval operation ('will provide you with a list'), while annotations declare readOnlyHint=false and destructiveHint=true. That is a direct conflict in the safety profile an agent relies on for permission decisions.
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?
Two sentences, front-loaded with the core purpose and then the scoping behavior; nothing is padded. It could be slightly tighter but is 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?
An output schema exists so return values need not be explained, and the description correctly notes result scoping. However, for a search endpoint with no required parameters and a live/submit/fetch family of siblings, it omits pagination limits, cost/time implications, and how it differs from the submit variants.
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 for the top-level body array is reported as 0%, but the nested item fields are richly documented (title, limit, offset, filters, etc.). The description names title, description, and categories and explains that results are scoped to them, adding modest value beyond the structured 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 states a specific verb and resource (returns a list of App Store apps) plus the fields included, so an agent knows it is a search/listing retrieval endpoint. It does not, however, differentiate itself from close siblings like get_dataforseo_app_apple_app_list_fetch or post_dataforseo_app_google_app_listings_search_live.
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 live endpoint versus the submit/fetch variants, the Apple vs Google counterpart, or the app_list/app_info endpoints. The reader must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_apple_app_list_submitSetting Apple App List TasksCDestructiveInspect
This endpoint will provide you with a list of mobile applications published in the top app charts on the App Store platform. The returned results are specific to the app collection as well as the language and location parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true, so the write/non-idempotent profile is covered. The description adds only that results are scoped to app_collection/language/location; it omits the critical behavioral fact that this submits a task whose results must be retrieved later, and never addresses billing or the postback/pingback delivery options.
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?
Two sentences, front-loaded, no padding. However, the brevity is achieved by describing the wrong thing rather than by tight editing, so it is under-specified rather than genuinely 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?
This is a mis-scored dimension only in the sense that output schema exists and return-value explanation is not required. The description is complete enough for a task-submission tool whose detailed field semantics live in the nested schema and whose safety profile lives in 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?
The top-level body parameter has no description (0% coverage), but the nested task objects are documented in detail within the schema. The description names the three axes that actually drive the request (app collection, language, location), which adds modest value, but it introduces no syntax or defaults beyond what the schema already says.
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's verb is 'provide you with a list,' which describes the behavior of the sibling fetch endpoint (get_dataforseo_app_apple_app_list_fetch), not the task-submission action implied by the name and title. It never states that this tool queues/creates an asynchronous task, so an agent cannot cleanly distinguish it from its fetch 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?
There is no when-to-use guidance, no mention of the submit-then-fetch workflow, and no reference to alternatives such as the live listings search or the fetch endpoint. The framing actively suggests immediate list results, which is the opposite of what a submit tool should signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_apple_app_reviews_submitSetting Apple App Reviews TasksCDestructiveInspect
This endpoint will provide you with reviews published on the App Store platform for the app specified in the app_id field. The returned results are specific to the indicated language and location parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, i.e. a non-idempotent write that creates a billable task. The description instead frames the tool as retrieving reviews, which reads like a safe read operation and obscures the task-creation, pricing, and callback behavior. This is a direct inconsistency with the structured 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?
Two sentences with no padding, so it is concise. But the wording appears lifted from the fetch endpoint, so the brevity comes at the cost of saying the wrong thing about an async submit operation.
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 task-submission endpoint with a rich nested schema (priority billing, pingback/postback URLs, depth-based charges) and an output schema, the description omits every operational detail an agent needs: that this enqueues work, that results arrive later via fetch or postback, and that high priority and extra depth cost money.
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 single top-level body parameter has no description at all (0% coverage), so the description would need to compensate for the required app_id, the location/language either-or constraint, and the postback pairing. It adds none of that; the only meaningful documentation lives in the nested schema properties, which the description does not reference or clarify.
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 names a specific resource (App Store reviews) and a specific key field (app_id), so the subject matter is clear. However, it presents the endpoint as one that 'will provide you with reviews', when the tool name and annotations indicate it is an asynchronous task-submission endpoint that returns a task ID, not the reviews. It also fails to distinguish itself from the sibling get_dataforseo_app_apple_app_reviews_fetch.
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 on when to use this submit endpoint versus the fetch counterpart, and no mention of the prerequisite location/language pair or the postback workflow that the schema enforces. The agent must infer the submit-then-fetch pattern entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_apple_app_searches_submitSetting Apple App Searches TasksCDestructiveInspect
This endpoint will provide you with a list of apps ranking on the App Store for the specified keyword. The returned results are specific to the indicated keyword, as well as the location and language parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, destructive, non-idempotent, open-world write, but the description only describes the retrieved data as if this were a read. It omits the async task-creation model, that tasks are billed and that priority/or higher depth trigger additional charges, and the postback/pingback callback behavior exposed by the 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?
Two short sentences with no filler, appropriately sized for a task-specification endpoint. The second sentence ('results are specific to the indicated keyword, as well as the location and language parameters') adds little, but the overall structure is tight and readable.
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?
Output-schema presence excuses explaining return values, but for a billable, asynchronous task-submission endpoint with postback/pingback options the description is far too thin. It leaves the submit-vs-fetch split, billing implications, and required per-task fields entirely unaddressed.
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 single top-level 'body' parameter has no schema description (0% coverage), so the description must carry the weight. It only gestures at keyword/location/language; it never explains that body is an array of task objects, each requiring a keyword plus one of location_name/location_code and one of language_name/language_code.
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 identifies the resource ('list of apps ranking on the App Store for the specified keyword') but frames the tool as a synchronous data provider, while the name and title indicate it submits a task. It never uses a verb matching the operation and does not distinguish itself from the sibling get_dataforseo_app_apple_app_searches_fetch, so an agent cannot tell why it should call submit rather than fetch.
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 when-to-use guidance, no mention of the submit-then-fetch workflow, and no prerequisites such as first resolving valid location/language values via the languages and locations siblings. The only hint at context is the passing reference to 'the location and language parameters'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_google_app_info_submitSetting Google App Info TasksDDestructiveInspect
This endpoint will provide you with information about the Google Play application specified in the app_id field of the POST request.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a write-side operation (readOnlyHint=false, destructiveHint=true, idempotentHint=false), yet the description frames the endpoint as one that 'will provide you with information' — a read-style framing. Beyond that mismatch it discloses nothing about the asynchronous task lifecycle, cost implications of priority, or rate limits. The description contradicts the annotation profile.
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?
A single front-loaded sentence with no waste, but it is concise at the cost of informativeness; the brevity here reflects under-specification rather than discipline.
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?
This is a complex submit endpoint with a cost-sensitive priority field, an async result flow (postback/pingback), and required location/language pairs, none of which the description addresses. An output schema exists and covers return values, but the description does not fill the remaining gap about task submission 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?
Top-level schema description coverage is 0% (the sole 'body' parameter is undocumented), so the description must compensate, and it only names app_id — omitting the location/language requirement pairs, priority, postback_url/postback_data and pingback_url. Nested field descriptions in the schema are rich, but the description itself adds almost nothing and does not convey the array/body structure or the required location+language combination.
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 says the endpoint 'will provide you with information about the Google Play application,' but the tool name and title indicate a task-SUBMISSION endpoint ('submit', 'Setting ... Tasks'). The verb describing what the tool actually does (queue an async Google App Info task) is never stated, and the phrasing reads like its sibling get_dataforseo_app_google_app_info_fetch. An agent could easily pick the wrong 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?
There is no when-to-use guidance at all: nothing says this queues a task rather than returning data directly, nothing points to the fetch counterpart for retrieving results, and no prerequisites or cost conditions are mentioned. The agent is left to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_google_app_listings_search_liveLive Google App Listings Search ResultsCDestructiveInspect
This endpoint will provide you with a list of apps published on Google Play along with additional information: its ID, icon, reviews count, rating, price, and other data. The results are specific to the title, description, and categories parameters specified in the API request.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, yet the description describes a pure retrieval ('provide you with a list of apps...'). These conflict: the description implies a safe read while annotations flag a destructive, non-idempotent write. Beyond that conflict, no auth, cost, or rate-limit context is added.
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?
Two front-loaded sentences with no filler; the purpose and returned field set come first. It is efficient, though it could have used the second sentence for differentiation or behavioral context rather than repeating the scoping note.
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?
An output schema exists, so return values need not be spelled out. However, for a tool with 8 nested request options and many near-identical siblings, the description omits usage routing and leaves the annotation conflict unaddressed, making it only minimally sufficient.
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 top-level 'body' parameter has no description (0% coverage at that level), but every nested field (tag, limit, offset, filters, order_by, categories, offset_token) is thoroughly documented in the schema. The description adds little beyond naming title/description/categories, but the schema already carries the semantics, so the 4 baseline for well-covered params applies.
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?
States a specific verb and resource: it returns a list of Google Play apps with named data fields (ID, icon, reviews count, rating, price) and ties results to the title/description/categories parameters. It does not differentiate itself from the many sibling variants (app_list_fetch, app_list_submit, apple app_listings_search_live), so it stops short of 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?
No when-to-use guidance is given. With siblings like post_dataforseo_app_google_app_list_submit and get_dataforseo_app_google_app_list_fetch, an agent gets no signal about when this live endpoint is preferable to the submit/fetch pipeline. The description only notes which parameters scope the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_google_app_list_submitSetting Google App List TasksDDestructiveInspect
This endpoint will provide you with a list of mobile applications published in the top charts on the Google Play platform. The returned results are specific to the app collection as well as the the language and location parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=true and idempotentHint=false, so the description must at least acknowledge that this creates a billed, non-idempotent task. Instead it reads as a read-only listing endpoint, adding no context about task lifecycle, cost/priority surcharges, or postback delivery — and its 'provide you with a list' phrasing runs against the write 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?
It is short and front-loaded, so there is no padding, but the second sentence is clumsy ('the the'), and the lead sentence squanders the first-read position on a misleading characterization of the operation.
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 destructive, non-idempotent, open-world task-submission endpoint with an output schema, the description omits everything essential: that a task is queued, how results are retrieved, billing implications, and postback/pingback behavior. An agent cannot call this correctly based on the description.
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?
Top-level schema description coverage is effectively 0% for the body parameter, so the description should compensate, but it only gestures at app collection/language/location without any of the required-field logic, mutually exclusive groups (postback_url vs postback_data, location_name vs location_code), or allowed values. It adds no meaning beyond what the nested schema already documents.
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 names the resource (mobile apps in Google Play top charts) and scoping dimensions, but frames the endpoint as one that 'will provide you with a list' rather than as a task-submission POST. The verb is wrong for a 'submit' tool, and nothing distinguishes it from its sibling get_dataforseo_app_google_app_list_fetch, which is the actual retrieval counterpart.
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 when-to-use guidance at all: no mention that this queues an asynchronous task, no reference to the fetch sibling for obtaining results, and no prerequisites. The framing implies direct retrieval, which actively misdirects an agent about the submission-then-fetch workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_google_app_reviews_submitSetting Google App Reviews TasksCDestructiveInspect
This endpoint will provide you with reviews published on the Google Play platform for the app specified in the app_id field. The returned results are specific to the indicated language and location parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description instead describes a passive data-retrieval tool, masking the mutating task-creation behavior. It omits critical operational facts present only in the schema: billing per 150 results, extra charges for depth>150 and high priority, and the asynchronous postback/pingback notification model. This is a significant disclosure gap for a write-style endpoint.
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?
Two short, front-loaded sentences with no redundancy, which is structurally clean, but the brevity here reflects under-specification rather than discipline given the tool's complexity.
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 task-submission tool with a single structured body parameter, rich nested field schema, and an output schema, the description is too thin: it omits the async/task model, cost implications, and the fetch endpoint needed to retrieve results. An agent could call it but would not understand the workflow it initiates.
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?
Top-level schema description coverage is 0% (the sole 'body' array parameter has no description), and the description compensates for only three of the many fields (app_id, language, location). It says nothing about tag, depth, rating, sort_by, priority, pingback_url, postback_url, or postback_data, all of which carry billing or routing implications.
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 names a specific resource (Google Play reviews) and identifies the key filter dimensions (app_id, language, location), so the subject matter is clear. However, it frames the tool as one that 'will provide you with reviews' when it is actually a task-submission endpoint, and it never distinguishes itself from the sibling get_dataforseo_app_google_app_reviews_fetch that an agent would naturally reach for. The core verb ('submit a parsing task') is never stated.
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 submit endpoint versus the fetch counterpart, nor any mention that this is an asynchronous task-creation call whose results are retrieved later. No prerequisites, no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_app_google_app_searches_submitSetting Google App Searches TasksCDestructiveInspect
This endpoint will provide you with a list of apps ranking on Google Play for the specified keyword. The returned results are specific to the indicated keyword, as well as the language and location parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating, non-idempotent operation. The description adds nothing about the async task model, task IDs, postback/pingback delivery, or per-SERP billing, and its 'will provide you with a list of apps' phrasing actively suggests a synchronous read, obscuring the real 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?
Two tight sentences with the core resource and the keyword/language/location scoping front-loaded. No filler, though the second sentence largely restates the first.
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 an async submit tool feeding a separate fetch endpoint, the description omits the entire task lifecycle (submission, polling/retrieval, task ID) and the cost model. An output schema exists so return-shape detail is not needed, but the missing async workflow context is a material gap for correct 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?
Top-level schema description coverage is 0%, but the nested body fields carry extensive per-field descriptions (keyword rules, depth/billing, location/language alternates, postback_data). The description only gestures at keyword/language/location, so the schema does the heavy lifting; 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 names a resource (apps ranking on Google Play for a keyword) and scopes it by language/location, so the domain is identifiable. However, it frames a task-submission endpoint as if it returns results directly, and it does nothing to distinguish itself from the sibling get_dataforseo_app_google_app_searches_fetch, which is the tool that actually retrieves those results.
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 submit versus fetch, and no mention that this is an asynchronous task-creation call whose results arrive later. An agent cannot infer from the text how this tool fits into the submit-then-fetch workflow it clearly belongs to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_apple_app_competitors_liveApp Store App Competitors LiveCDestructiveInspect
This endpoint will provide you with a list of mobile applications that intersect with the target app for its ranking keywords on App Store. You will obtain the IDs of competitor apps along with search volume and ranking data on competitor ranking keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description frames this as a pure information retrieval endpoint ('will provide you with a list', 'you will obtain the IDs'), yet the annotations declare readOnlyHint=false and destructiveHint=true. This is a direct conflict between the stated read-only behavior and the structured safety profile, with no reconciliation or warning in the description.
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?
Two tight sentences, front-loaded with the core purpose and followed by the output summary. No filler, no repetition of the title.
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?
An output schema exists, so return values need not be re-explained, and the description already sketches the payload. However, for a live endpoint with a required body object and singleton English/US constraints (documented only in the schema), the description omits prerequisites, pagination defaults, and the destructive/read-only ambiguity, leaving it only minimally sufficient.
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 adds no parameter guidance at all; it only paraphrases the returned fields. The nested request-body properties (app_id, location/language pairs, filters, order_by) are actually well documented inside the schema, so an agent can still build a call, but the prose itself contributes nothing to parameter meaning or defaults.
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 a specific verb and resource: it returns a list of mobile apps that intersect with the target app for its App Store ranking keywords, plus competitor IDs, search volume and ranking data. That is enough to distinguish it from generic siblings, though it never names the closest alternatives (apple_app_intersection_live, keywords_for_app_live, google_app_competitors_live) to sharpen the boundary.
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 when-to-use guidance, no prerequisite note (e.g. that the target app must first be resolved to an app_id), and no comparison against the sibling competitor/intersection/keywords tools. The agent must infer usage entirely from the name and purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_apple_app_intersection_liveApp Store App Intersection LiveCDestructiveInspect
This endpoint will provide you with a list of keywords for which the mobile applications specified in the app_ids object rank within the same App Store SERP.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present (destructiveHint=true, readOnlyHint=false, non-idempotent, open world), so the safety profile is roughly covered, but the description adds nothing beyond purpose. It omits that this is a live-payable request, that app_ids is required with a max of 20 IDs, and the US/English-only restriction noted in the 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?
A single clean sentence with no filler, front-loaded on the outcome. It is efficient, though it is under-specified rather than over-long.
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?
Return values are covered by the output schema, but for a live POST endpoint whose single body parameter carries many nested fields, the description is too thin: no usage context, no constraints, and no differentiation from the many sibling labs endpoints.
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 only one top-level parameter (body) and reported schema description coverage of 0%, the description should carry the load, yet it mentions only the app_ids object and ignores filters, order_by, limit/offset, and the location/language constraints that live inside the nested body 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?
States a specific verb and resource: returns keywords for which the specified apps rank in the same App Store SERP. It is clear what the tool produces, but it never distinguishes itself from sibling labs tools like post_dataforseo_labs_apple_keywords_for_app_live or post_dataforseo_labs_apple_app_competitors_live.
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 on when to use this intersection endpoint versus keywords_for_app, competitors, or bulk_app_metrics. The description gives a purpose but no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_apple_bulk_app_metrics_liveApp Store Bulk App Metrics LiveCDestructiveInspect
This endpoint will provide you with ranking metrics for up to 1000 App Store applications.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true. The description adds no behavioral context beyond those flags — no mention of live vs queued execution, cost/rate limits, or that the response is returned synchronously. The 1000-item limit it cites is already stated in the app_ids schema description.
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?
A single front-loaded sentence with no filler, which is structurally sound. However it is terse to the point of under-specification for a bulk POST endpoint rather than genuinely 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?
An output schema exists, so return values need not be explained, but nothing else is covered: no usage routing, no request-shape guidance, no behavioral detail beyond the annotations for a destructive-flagged POST endpoint. The description is too thin 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?
Top-level schema description coverage is reported as 0% (the single 'body' parameter carries no description), and the description does nothing to compensate — it never explains that body is an array of per-app-request objects requiring app_ids plus location and language identifiers. The nested property docs exist, but the description leaves the report structure and required pairing rules (location_name OR location_code; English/US only) to be inferred.
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?
States a concrete verb+resource: it returns ranking metrics for up to 1000 App Store applications. That is clearly distinguishable from the Google counterpart and from the single-app tools, but it never names or contrasts those siblings, and 'ranking metrics' is left undefined, so it stops short of 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?
There is no when-to-use, when-not-to-use, or alternative guidance at all. An agent cannot tell from the description when to pick this bulk endpoint over post_dataforseo_labs_apple_keywords_for_app_live, apple_app_competitors_live, or the Google bulk variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_apple_keywords_for_app_liveApp Store Keywords For App LiveCDestructiveInspect
This endpoint will provide you with a list of keywords for which the target app ranks on App Store. You will obtain keyword data and discover the app’s ranking position for each returned keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do cover the safety profile (openWorldHint, destructiveHint, idempotentHint), lowering the bar, yet the description adds nothing behavioral: no auth requirements, no rate limits, no note about the English/US-only restriction that actually constrains this endpoint, and no mention of pagination despite limit/offset fields in the 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?
Two compact sentences, purpose front-loaded, no filler or repetition. Appropriately sized for a single-endpoint description, though it is under-informative rather than over-long.
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?
The endpoint takes a nested array body with many optional fields and enforces English/US-only and location/language pairing, none of which the description surfaces. Output schema exists so return values needn't be explained, but the routing and constraint gaps leave the definition materially incomplete.
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 reported at 0% for the top-level 'body' array parameter, and the description supplies no compensating detail about its structure, the app_id requirement, or the location/language pair constraints. It contributes no meaning beyond the inner property 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?
States a specific verb and resource: it returns a list of keywords an app ranks for on the App Store, plus the app's ranking position per keyword. The phrase 'App Store' implicitly distinguishes it from the sibling post_dataforseo_labs_google_keywords_for_app_live (Play Store), but no sibling is named explicitly.
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 only narrates the output; it gives no when-to-use guidance, no prerequisites (e.g. that location/language are effectively fixed to US/English), and never names an alternative endpoint such as the Google equivalent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_google_app_competitors_liveGoogle Play App Competitors LiveCDestructiveInspect
This endpoint will provide you with a list of mobile applications that intersect with the target app for its ranking keywords on Google Play. You will obtain the IDs of competitor apps along with search volume and ranking data on competitor ranking keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true — an unusual profile for what the description frames as a data-retrieval endpoint, and the description never reconciles that. It also omits that a live POST endpoint is billed per request, that it is rate-limited, or that auth is required. No annotation contradiction in the strict sense, but the description adds essentially no behavioral context over the annotations and leaves the read/write mismatch unexplained.
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?
Two sentences, front-loaded with the core capability and second sentence enumerating the returned fields. No padding or filler. Slightly under-structured for an endpoint with this much request-shape complexity, but no wasted text.
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?
An output schema exists, so return-value explanation is not required, but the description still omits usage routing, constraints (US-only location, English-only language, documented in the schema but never surfaced), and the batch-array request semantics. For a nested-body live endpoint in a crowded sibling set, this leaves real 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 reported as 0%, meaning the top-level `body` parameter is undocumented in the description, which says nothing about the array-of-task-objects structure or the required app_id/location/language fields. The description only names output concepts (IDs, search volume, ranking data), which the output schema already covers. It provides no compensating semantics for the request body.
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 names a specific verb+resource: it returns a list of Google Play mobile apps that intersect with a target app on ranking keywords, with competitor IDs, search volume, and ranking data. That is materially clearer than the title alone. It does not, however, distinguish itself from the near-identical sibling post_dataforseo_labs_google_app_intersection_live or the Apple counterpart, so sibling differentiation is left to inference.
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 when-to-use guidance is given. With a sibling literally named google_app_intersection_live plus google_keywords_for_app_live and google_bulk_app_metrics_live in the same family, the agent is given no rule for choosing among them. No prerequisites, no cost/live-vs-task distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_google_app_intersection_liveGoogle Play App Intersection LiveCDestructiveInspect
This endpoint will provide you with a list of keywords for which the mobile applications specified in the app_ids object rank within the same Google Play SERP.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, yet the description frames this purely as a retrieval that 'provides you with a list of keywords'. Nothing in the text suggests any destructive or write-like side effect, so the description and the annotations conflict rather than complement each other.
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?
A single tight sentence with the result subject front-loaded and no filler. Efficient, though its brevity comes at the cost of substance rather than being concisely complete.
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 request whose body requires location and language selection plus up to 20 app IDs, the description is silent on almost all of that structure. The existence of an output schema excuses it from explaining return values, but not from the input-side context it omits.
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?
Reported schema description coverage is 0% (the top-level body has no description), so the description carries the burden — but it only alludes to the app_ids object. Location/language requirements, limit/offset, filters, and order_by are not addressed at all, leaving the caller with no semantic guidance beyond one nested field.
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?
Names a concrete verb and resource: returning the list of keywords on which the given apps rank in the same Google Play SERP. The 'intersection' semantics distinguish it in spirit from single-app tools like google_keywords_for_app_live, but no sibling is named explicitly.
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 choose this over the many nearby siblings (apple_app_intersection_live, google_app_competitors_live, keywords_for_app_live). The reader must infer the use case entirely from the one-line output description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_google_bulk_app_metrics_liveGoogle Play Bulk App Metrics LiveCDestructiveInspect
This endpoint will provide you with ranking metrics for up to 1000 Google Play applications.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true) carry the safety profile, so the bar is lower, but the description adds nothing about cost, latency, rate limits, or what a live call consumes. It also implies a passive data retrieval ('provide you with ranking metrics') while annotations declare destructiveHint=true, a tension the description never resolves.
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?
A single front-loaded sentence with no filler, so nothing needs trimming. It is efficient but borders on under-specification rather than true conciseness, which keeps it below a 5.
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?
An output schema exists, so return values need not be described. However, for a bulk endpoint taking an array of up to 1000 app IDs with mandatory location and language selection, the description omits the input contract entirely and offers no behavioral context, leaving the definition thin 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?
Top-level schema description coverage is 0% and the description adds no parameter detail; the only overlap is 'up to 1000' echoing the app_ids limit. The nested item properties (app_ids, location_name/code, language_name/code, tag) are documented inside the schema, which mitigates the gap, but the description itself does not compensate for the uncovered body parameter or the required location/language pairing.
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 a concrete outcome (ranking metrics), the resource (Google Play applications) and a scope bound (up to 1000), which lets an agent separate it from siblings like google_keywords_for_app_live or google_app_competitors_live. It stops short of naming the closest sibling (apple_bulk_app_metrics_live) or explaining how 'ranking metrics' differ from competitor/intersection endpoints, so it is clear but not fully differentiated.
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 when-to-use guidance, no mention of when to prefer this bulk endpoint over the per-app or competitor endpoints, and no prerequisites such as account/credits. The agent is left to infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dataforseo_labs_google_keywords_for_app_liveGoogle Play Keywords For App LiveCDestructiveInspect
This endpoint will provide you with a list of keywords for which the target app ranks on Google Play. You will obtain keyword data and discover the app’s ranking position for each returned keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, which is notable for what reads like a data-retrieval endpoint; the description says nothing about safety, side effects, or why the destructive hint is set, nor about rate limits or the fact that only English/US are currently supported (that detail lives only in the schema). The description adds no behavioral context beyond 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?
Two short sentences, front-loaded with the core purpose, no filler or 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?
An output schema exists so return values need not be explained, but the description omits the critical constraints that the endpoint currently supports only English and only the US location, and offers no parameter or usage guidance for a tool whose schema has 0% description coverage.
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 reported as 0% and the description provides no parameter meaning at all – not app_id, limit, offset, filters, order_by, language, or location. With one top-level parameter (a required body array) and zero coverage, the description fully fails to compensate for the schema gap.
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?
States a specific verb+resource: provides a list of keywords for which the target app ranks on Google Play, and adds that ranking position is returned. This distinguishes it from sibling tools like app_competitors_live and bulk_app_metrics_live, though it doesn't explicitly name the alternative keyword endpoints (e.g., apple_keywords_for_app_live).
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 when-to-use, when-not-to-use, prerequisites, or named alternatives. The description states what the tool does but gives the agent no guidance on when this is the right choice versus the many related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFind AIsa operationsARead-onlyInspect
Find AIsa data operations across SEO & AI visibility, finance, social, web search & research, sales and agent mail — 950+ APIs — by describing the task. Free; no key needed.
Returns tool-router's SearchResponse: retrieval_mode (plan |
endpoint | clarification), an optional plan, and candidates with
operation_id, provider, method, path, summary, required_inputs,
price, match_reasons and details_ref — plus input_schema, so a
candidate can be passed to use without calling get_details, and
modules, the entry points that pin it.
Search spans the full AIsa catalogue, not only the category pinned
on this endpoint, so an operation is discoverable here even when it
is not in the current tools/list; a candidate whose modules does
not include the current one still runs. When more than one provider
offers the same metric, the candidates make that visible.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum candidates, 1-10 | |
| query | Yes | What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best. | |
| category | No | Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavior beyond annotations: search spans the entire AIsa catalogue, candidates may belong to modules other than the current one, multiple providers for the same metric are surfaced, and no API key is required. This gives the agent a clear picture of scope and output 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 front-loaded with the core purpose and is dense with useful information: scope, no-auth requirement, response shape, and relationship to the catalogue. Each sentence adds operational value, and the structure makes the tool's behavior predictable.
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 discovery tool with output schema, the description is unusually complete: it explains the response modalities, candidate fields, direct pass-through to `use`, full-catalogue search behavior, and cross-provider visibility. An agent has enough context to invoke and interpret the tool 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?
Schema coverage is 100%, so the schema already documents all parameters. The description adds value by explaining that the category parameter is not a hard boundary—search spans the full catalogue—and that queries are plain-language task descriptions, which clarifies how to use the tool effectively.
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 finds AIsa data operations across many categories via a plain-language query. It distinguishes itself from siblings like get_details and use by emphasizing that search covers the full catalogue, not just the pinned category.
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 conveys when to use search: when you need to discover operations across the full catalogue, even those not in the current tools/list. It also implicitly contrasts with get_details by noting that returned candidates already include input_schema, so they can be passed directly to `use` without an extra call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useRun an AIsa operationADestructiveInspect
Execute one AIsa operation. Billed per call to your AIsa key.
Answers in tool-router's BatchCallResult shape: successful, data or error {type, status, message, retryable}. Pinned tools in tools/list can also be called directly; this is the way to call anything found through search.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | Arguments matching input_schema / arguments_schema | |
| search_id | No | search_id from the search that found this operation | |
| operation_id | Yes | operation_id as returned by search | |
| max_price_usd | No | Refuse the call before any spend if it would cost more than this many USD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly=false, openWorldHint=true, and destructiveHint=true. The description adds valuable behavior beyond that: billing per call, the BatchCallResult response shape, and the error structure with retryable status. It does not spell out side effects, but the destructive flag is already carried by annotations, so the additional context is sufficient.
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?
Three short sentences, each earning its place: purpose, cost, response shape, and routing guidance. Key behavioral facts are front-loaded, and nothing is redundant with the schema or annotations.
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 that an output schema exists and all parameters have descriptions, the tool description is complete enough for correct invocation. It covers cost, return/error contracts, and how routing to this tool differs from calling pinned tools directly, leaving no practical gap.
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%, and each parameter is already clearly documented: operation_id as returned by search, search_id provenance, arguments matching input_schema, and max_price_usd as a spend guard. The description does not need to add parameter detail, so 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 opens with 'Execute one AIsa operation,' a specific verb+resource statement. The word 'one' distinguishes it from the sibling batch_use, and the closing note distinguishes it from calling pinned tools directly. An agent can tell what this tool is for immediately.
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?
It explicitly states when to use the tool: 'this is the way to call anything found through search.' It also gives the alternative: 'Pinned tools in tools/list can also be called directly.' This is clear when-versus-alternative guidance with no ambiguity.
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.
19 tool updates
- Changed
get_dataforseo_app_apple_app_info_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_apple_app_list_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_apple_app_reviews_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_apple_app_searches_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_info_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_info_fetch_html1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_list_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_list_fetch_html1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_reviews_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_searches_fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time"
- Changed
get_dataforseo_app_google_app_searches_fetch_html1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"DataForSEO task ID."New value: +"task identifier unique task identifier in our system in the UUID format you will be able to use it within 7 days to request the results of the task at any time"
- Changed
post_dataforseo_app_apple_app_info_submit1 field changed- changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if you don’t specify language_name if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: en"New value: +"search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to `https://api.dataforseo.com/v3/app_data/apple/languages` example: en"
- Changed
post_dataforseo_app_apple_app_list_submit1 field changed- changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if you don’t specify language_name if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: en"New value: +"search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: enn"
- Changed
post_dataforseo_app_apple_app_listings_search_live1 field changed- changed
Input schema / properties / body / items / properties / filters / descriptionPrevious value: -"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 you can use the % operator with like and not_like to match any string of zero or more characters example: [\"rating.value\",\">\",3] you can receive the list of available filters by making a separate request to https://api.dataforseo.com/v3/app_data/apple/app_listings/available_filters"New value: +"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 you can use the % operator with like and not_like to match any string of zero or more characters example: [\"rating.value\",\">\",3] you can receive the list of available filters_by making a separate request to https://api.dataforseo.com/v3/app_data/apple/app_listings/available_filtersn"
- Changed
post_dataforseo_app_apple_app_reviews_submit2 fields changed- changed
Input schema / properties / body / items / properties / depth / descriptionPrevious value: -"parsing depth optional field number of reviews to be returned in the API response; we strongly recommend setting the parsing depth in the multiples of 50, because our system processes 50 reviews in a row; default value: 50; maximum value: 500; Your account will be billed per each SERP containing up to 50 results; Setting depth above 50 may result in additional charges if the search engine returns more than 50 results; The cost can be calculated on the Pricing page."New value: +"parsing depth optional field number of reviews to be returned in the API response; we strongly recommend setting the parsing depth in the multiples of 25, because our system processes 25 reviews in a row; default value: 25; maximum value: 500; Your account will be billed per each SERP containing up to 25 results; Setting depth above 25 may result in additional charges if the search engine returns more than 25 results; The cost can be calculated on the Pricing page." - changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if you don’t specify language_name if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: en"New value: +"search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: enn"
- Changed
post_dataforseo_app_apple_app_searches_submit1 field changed- changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if language_name is not specified if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: en"New value: +"search engine language code required field if language_name is not specified if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to https://api.dataforseo.com/v3/app_data/apple/languages example: enn"
- Changed
post_dataforseo_app_google_app_info_submit1 field changed- changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if language_name is not specified if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/google/languages example: en"New value: +"search engine language code required field if language_name is not specified if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to https://api.dataforseo.com/v3/app_data/google/languages example: en"
- Changed
post_dataforseo_app_google_app_list_submit1 field changed- changed
Input schema / properties / body / items / properties / language_code / descriptionPrevious value: -"search engine language code required field if language_name is not specified if you use this field, you don’t need to specify language_name you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/app_data/google/languages example: en"New value: +"search engine language code required field if language_name is not specified if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code_by making a separate request to https://api.dataforseo.com/v3/app_data/google/languages example: en"
- Changed
post_dataforseo_app_google_app_listings_search_live1 field changed- changed
Input schema / properties / body / items / properties / filters / descriptionPrevious value: -"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 you can use the % operator with like and not_like to match any string of zero or more characters example: [\"item.rating.value\",\">\",3] you can receive the list of available filters by making a separate request to https://api.dataforseo.com/v3/app_data/google/app_listings/available_filters"New value: +"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 you can use the % operator with like and not_like to match any string of zero or more characters example: [\"item.rating.value\",\">\",3] you can receive the list of available filters_by making a separate request to https://api.dataforseo.com/v3/app_data/google/app_listings/available_filters"
42 tool updates
- First observed
batch_use - First observed
get_dataforseo_app_apple_app_info_fetch - First observed
get_dataforseo_app_apple_app_list_fetch - First observed
get_dataforseo_app_apple_app_listings_categories - First observed
get_dataforseo_app_apple_app_reviews_fetch - First observed
get_dataforseo_app_apple_app_searches_fetch - First observed
get_dataforseo_app_apple_categories - First observed
get_dataforseo_app_apple_languages - First observed
get_dataforseo_app_apple_locations - First observed
get_dataforseo_app_google_app_info_fetch - First observed
get_dataforseo_app_google_app_info_fetch_html - First observed
get_dataforseo_app_google_app_list_fetch - First observed
get_dataforseo_app_google_app_list_fetch_html - First observed
get_dataforseo_app_google_app_listings_categories - First observed
get_dataforseo_app_google_app_reviews_fetch - First observed
get_dataforseo_app_google_app_searches_fetch - First observed
get_dataforseo_app_google_app_searches_fetch_html - First observed
get_dataforseo_app_google_categories - First observed
get_dataforseo_app_google_languages - First observed
get_dataforseo_app_google_locations - First observed
get_details - First observed
list_categories - First observed
post_dataforseo_app_apple_app_info_submit - First observed
post_dataforseo_app_apple_app_list_submit - First observed
post_dataforseo_app_apple_app_listings_search_live - First observed
post_dataforseo_app_apple_app_reviews_submit - First observed
post_dataforseo_app_apple_app_searches_submit - First observed
post_dataforseo_app_google_app_info_submit - First observed
post_dataforseo_app_google_app_list_submit - First observed
post_dataforseo_app_google_app_listings_search_live - First observed
post_dataforseo_app_google_app_reviews_submit - First observed
post_dataforseo_app_google_app_searches_submit - First observed
post_dataforseo_labs_apple_app_competitors_live - First observed
post_dataforseo_labs_apple_app_intersection_live - First observed
post_dataforseo_labs_apple_bulk_app_metrics_live - First observed
post_dataforseo_labs_apple_keywords_for_app_live - First observed
post_dataforseo_labs_google_app_competitors_live - First observed
post_dataforseo_labs_google_app_intersection_live - First observed
post_dataforseo_labs_google_bulk_app_metrics_live - First observed
post_dataforseo_labs_google_keywords_for_app_live - First observed
search - First observed
use
Publisher details
- Operator
- AIsa · Publisher source
- Operator website
- https://aisa.one
- Vendor relationship
- Independent
- Documentation
- https://mcp.aisa.one/servers
- Trust center
- Not available
- Restrictions
- No paid plan, admin approval, regional limit or custom OAuth app is needed to connect. Sign-in is OAuth against auth.aisa.one with dynamic client registration (RFC 7591), or an Authorization: Bearer AIsa API key. search, get_details and list_categories are free. use and batch_use are billed per call to the caller's own AIsa key, and max_price_usd refuses anything above a cap before any spend. Some operations are subscription-only on the gateway and answer 402 without the Hive GTM Growth plan.
Related MCP Connectors
Your agent needs marketplace data — what a product costs on Amazon and Google Shopping, who the sellers are, what reviewers actually complain about. **What you can ask for** • "What is this ASIN's price history, rating and seller list?" • "Who else sells this product, and at what price?" • "Pull the reviews for this product and group the complaints." • "What comes up on Google Shopping for this query in the UK?" • "Compare these products across both marketplaces." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-merchant/mcp and sign in with OAuth — there is no key to create or paste. 22 tools: Amazon products, ASIN detail and sellers; Google Shopping products, product info, sellers and reviews; live and queued forms, with raw HTML where you need it. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Price the product here, then ask the same agent what the brand's site traffic or ad spend looks like — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
Your agent needs the derived numbers — domain authority, what a site ranks for, related and relevant keywords, search intent, and who the real competitors are — for Google, Amazon and the app stores. **What you can ask for** • "What is this domain's authority, and how has its rank history moved?" • "Which keywords does this site rank for, and with what intent?" • "Who are this domain's organic competitors, and where do we overlap?" • "Which keywords does this Amazon product rank for?" • "Compare these two domains keyword by keyword." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-labs/mcp and sign in with OAuth — there is no key to create or paste. 46 tools: ranked, related and relevant keywords, keyword ideas and intent, domain authority and rank history, competitor and intersection analysis, bulk metrics, plus the same shapes for Amazon products and Apple and Google Play apps. **Why this rather than the source** Ahrefs domain rating, Semrush rank history and DataForSEO Labs answering the same questions side by side. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Size the competitor here, then ask the same agent for their traffic mix or their contacts — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
Your agent needs what customers say in public — Google Business profiles and reviews, Trustpilot, Tripadvisor, hotel listings and the Q&A under a listing. **What you can ask for** • "Pull this business's Google reviews and group the complaints." • "What do Trustpilot reviewers say about this competitor?" • "Find hotels matching this search and their live prices." • "What questions are people asking on this Google listing, and are they answered?" • "Search listings for this category in this city." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-business/mcp and sign in with OAuth — there is no key to create or paste. 22 tools: Google Business info, reviews, extended reviews, updates and Q&A; Trustpilot and Tripadvisor search and reviews; Google hotel info and searches; business listing search; plus Reddit and Pinterest signals for a business. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the reviews here, then ask the same agent what that business ranks for or who links to it — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA remote MCP server that gives AI agents structured access to Google Play and the Apple App Store — search apps, fetch metadata, pull reviews.MIT

GetAppNiche MCPofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to query live App Store and Google Play data, including app search, revenue/download metrics, keyword difficulty, and reviews, via a hosted MCP server with API-key authentication.76 npmMIT- AlicenseNot gradedqualityBmaintenanceProvides live App Store and Google Play data as MCP tools, enabling search, app details, reviews, charts, estimates, and more through natural language.1MIT
- FlicenseNot gradedqualityBmaintenanceMCP server for App Store Optimization, enabling AI agents to read rankings, keywords, competitors, reviews, and revenue, and manage metadata with human approval.11-
Glama MCP Gateway
Add one secure layer between your agents and this server.