Skip to main content
Glama

AIsa SEO & AI Visibility

Content Analysis – Search API

post_dataforseo_content_search_live
Destructive

‌ This endpoint will provide you with detailed citation data available for the target keyword.

Usage-based billing; Default request estimate: $0.0276 USD (not a fixed price). Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      {
      +        "items": {
      +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
      +        },
      +        "type": "array"
      +      }
      +    ],
      +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
      +  }
      +}
    • addedInput schema / properties / body / items / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "filters": {
      +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      +        "items": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "additionalProperties": {
      +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
      +              },
      +              "type": [
      +                "object",
      +                "null"
      +              ]
      +            },
      +            {
      +              "items": {
      +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
      +              },
      +              "type": "array"
      +            }
      +          ],
      +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "keyword": {
      +        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      +        "type": "string"
      +      },
      +      "keyword_fields": {
      +        "additionalProperties": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset": {
      +        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset_token": {
      +        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "order_by": {
      +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "page_type": {
      +        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "rank_scale": {
      +        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "search_mode": {
      +        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / oneOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "filters": [
      -          "main_domain",
      -          "=",
      -          "reviewfinder.ca"
      -        ],
      -        "keyword": "logitech",
      -        "keyword_fields": {
      -          "snippet": "logitech"
      -        },
      -        "limit": 10,
      -        "order_by": [
      -          "content_info.sentiment_connotations.anger,desc"
      -        ],
      -        "page_type": [
      -          "ecommerce",
      -          "news",
      -          "blogs",
      -          "message-boards",
      -          "organization"
      -        ],
      -        "search_mode": "as_is"
      -      }
      -    ],
      -    "properties": {
      -      "filters": {
      -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      -        "items": {
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "keyword": {
      -        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      -        "type": "string"
      -      },
      -      "keyword_fields": {
      -        "additionalProperties": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "limit": {
      -        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset": {
      -        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset_token": {
      -        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "order_by": {
      -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "page_type": {
      -        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "rank_scale": {
      -        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "search_mode": {
      -        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
  2. Changed2 schema fields changed
    • removedInput schema / properties / body / items / anyOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "filters": [
      -          "main_domain",
      -          "=",
      -          "reviewfinder.ca"
      -        ],
      -        "keyword": "logitech",
      -        "keyword_fields": {
      -          "snippet": "logitech"
      -        },
      -        "limit": 10,
      -        "order_by": [
      -          "content_info.sentiment_connotations.anger,desc"
      -        ],
      -        "page_type": [
      -          "ecommerce",
      -          "news",
      -          "blogs",
      -          "message-boards",
      -          "organization"
      -        ],
      -        "search_mode": "as_is"
      -      }
      -    ],
      -    "properties": {
      -      "filters": {
      -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      -        "items": {
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "keyword": {
      -        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      -        "type": "string"
      -      },
      -      "keyword_fields": {
      -        "additionalProperties": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "limit": {
      -        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset": {
      -        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset_token": {
      -        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "order_by": {
      -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "page_type": {
      -        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "rank_scale": {
      -        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "search_mode": {
      -        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / body / items / oneOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "filters": [
      +          "main_domain",
      +          "=",
      +          "reviewfinder.ca"
      +        ],
      +        "keyword": "logitech",
      +        "keyword_fields": {
      +          "snippet": "logitech"
      +        },
      +        "limit": 10,
      +        "order_by": [
      +          "content_info.sentiment_connotations.anger,desc"
      +        ],
      +        "page_type": [
      +          "ecommerce",
      +          "news",
      +          "blogs",
      +          "message-boards",
      +          "organization"
      +        ],
      +        "search_mode": "as_is"
      +      }
      +    ],
      +    "properties": {
      +      "filters": {
      +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      +        "items": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "keyword": {
      +        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      +        "type": "string"
      +      },
      +      "keyword_fields": {
      +        "additionalProperties": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset": {
      +        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset_token": {
      +        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "order_by": {
      +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "page_type": {
      +        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "rank_scale": {
      +        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "search_mode": {
      +        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  3. Changed6 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "filters": [
      +      "main_domain",
      +      "=",
      +      "reviewfinder.ca"
      +    ],
      +    "keyword": "logitech",
      +    "keyword_fields": {
      +      "snippet": "logitech"
      +    },
      +    "limit": 10,
      +    "order_by": [
      +      "content_info.sentiment_connotations.anger,desc"
      +    ],
      +    "page_type": [
      +      "ecommerce",
      +      "news",
      +      "blogs",
      +      "message-boards",
      +      "organization"
      +    ],
      +    "search_mode": "as_is"
      +  }
      +]
    • changedInput schema / properties / body / items / anyOf
      Previous value: -[
      -  {
      -    "required": [
      -      "keyword"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "offset_token"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "example": [
      +      {
      +        "filters": [
      +          "main_domain",
      +          "=",
      +          "reviewfinder.ca"
      +        ],
      +        "keyword": "logitech",
      +        "keyword_fields": {
      +          "snippet": "logitech"
      +        },
      +        "limit": 10,
      +        "order_by": [
      +          "content_info.sentiment_connotations.anger,desc"
      +        ],
      +        "page_type": [
      +          "ecommerce",
      +          "news",
      +          "blogs",
      +          "message-boards",
      +          "organization"
      +        ],
      +        "search_mode": "as_is"
      +      }
      +    ],
      +    "properties": {
      +      "filters": {
      +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      +        "items": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "keyword": {
      +        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      +        "type": "string"
      +      },
      +      "keyword_fields": {
      +        "additionalProperties": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset": {
      +        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset_token": {
      +        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "order_by": {
      +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "page_type": {
      +        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "rank_scale": {
      +        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "search_mode": {
      +        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "filters": {
      -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, , , >, >=, =, , in, not_in, like,not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country\",\"=\", \"US\"] [[\"domain_rank\",\">\",800],\"and\",[\"content_info.connotation_types.negative\",\">\",0.9]] [[\"domain_rank\",\">\",800], \"and\", [[\"page_types\",\"has\",\"ecommerce\"], \"or\", [\"content_info.text_category\",\"has\",10994]]] for more information about filters, please refer to Content Analysis API – Filters",
      -    "items": {},
      -    "type": "array"
      -  },
      -  "keyword": {
      -    "description": "target keyword required field UTF-8 encoding the keywords will be converted to a lowercase format; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword\": \"\\\"tesla palo alto\\\"\" learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
      -    "type": "string"
      -  },
      -  "keyword_fields": {
      -    "description": "target keyword fields and target keywords optional field use this parameter to filter the dataset by keywords that certain fields should contain; fields you can specify: title, main_title, previous_title, snippet you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword_fields\": { \"snippet\": \"\\\"logitech mouse\\\"\", \"main_title\": \"sale\" }",
      -    "properties": {
      -      "main_title": {
      -        "type": "string"
      -      },
      -      "previous_title": {
      -        "type": "string"
      -      },
      -      "snippet": {
      -        "type": "string"
      -      },
      -      "title": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "limit": {
      -    "description": "the maximum number of returned citations optional field default value: 100 maximum value: 1000",
      -    "type": "integer"
      -  },
      -  "offset": {
      -    "description": "offset in the results array of returned citations optional field default value: 0 if you specify the 10 value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead.",
      -    "type": "integer"
      -  },
      -  "offset_token": {
      -    "description": "offset token for subsequent requests optional field provided in the identical field of the response to each request; use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters except limit will not be taken into account when processing a task learn more about this parameter on our Help Center",
      -    "type": "string"
      -  },
      -  "order_by": {
      -    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"content_info.sentiment_connotations.anger,desc\"] default rule: [\"content_info.sentiment_connotations.anger,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "page_type": {
      -    "description": "target page types optional field use this parameter to filter the dataset by page types possible values: \"ecommerce\", \"news\", \"blogs\", \"message-boards\", \"organization\"",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "rank_scale": {
      -    "description": "defines the scale used for calculating and displaying the domain_rank, and url_rank values optional field you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale possible values: one_hundred — rank values are displayed on a 0–100 scale one_thousand — rank values are displayed on a 0–1000 scale default value: one_thousand learn more about how this parameter works in this Help Center article",
      -    "type": "string"
      -  },
      -  "search_mode": {
      -    "description": "results grouping type optional field possible grouping types: as_is – returns all citations for the target keyword one_per_domain – returns one citation of the keyword per domain default value: as_is",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  }
      -}
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Changed6 schema fields changed
    • removedInput schema / properties / body / example
      Removed value: -[
      -  {
      -    "filters": [
      -      "main_domain",
      -      "=",
      -      "reviewfinder.ca"
      -    ],
      -    "keyword": "logitech",
      -    "keyword_fields": {
      -      "snippet": "logitech"
      -    },
      -    "limit": 10,
      -    "order_by": [
      -      "content_info.sentiment_connotations.anger,desc"
      -    ],
      -    "page_type": [
      -      "ecommerce",
      -      "news",
      -      "blogs",
      -      "message-boards",
      -      "organization"
      -    ],
      -    "search_mode": "as_is"
      -  }
      -]
    • changedInput schema / properties / body / items / anyOf
      Previous value: -[
      -  {
      -    "example": [
      -      {
      -        "filters": [
      -          "main_domain",
      -          "=",
      -          "reviewfinder.ca"
      -        ],
      -        "keyword": "logitech",
      -        "keyword_fields": {
      -          "snippet": "logitech"
      -        },
      -        "limit": 10,
      -        "order_by": [
      -          "content_info.sentiment_connotations.anger,desc"
      -        ],
      -        "page_type": [
      -          "ecommerce",
      -          "news",
      -          "blogs",
      -          "message-boards",
      -          "organization"
      -        ],
      -        "search_mode": "as_is"
      -      }
      -    ],
      -    "properties": {
      -      "filters": {
      -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      -        "items": {
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "keyword": {
      -        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      -        "type": "string"
      -      },
      -      "keyword_fields": {
      -        "additionalProperties": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "limit": {
      -        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset": {
      -        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "offset_token": {
      -        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "order_by": {
      -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "page_type": {
      -        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "rank_scale": {
      -        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "search_mode": {
      -        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "required": [
      +      "keyword"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "offset_token"
      +    ]
      +  }
      +]
    • addedInput schema / properties / body / items / properties
      Added value: +{
      +  "filters": {
      +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, , , >, >=, =, , in, not_in, like,not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country\",\"=\", \"US\"] [[\"domain_rank\",\">\",800],\"and\",[\"content_info.connotation_types.negative\",\">\",0.9]] [[\"domain_rank\",\">\",800], \"and\", [[\"page_types\",\"has\",\"ecommerce\"], \"or\", [\"content_info.text_category\",\"has\",10994]]] for more information about filters, please refer to Content Analysis API – Filters",
      +    "items": {},
      +    "type": "array"
      +  },
      +  "keyword": {
      +    "description": "target keyword required field UTF-8 encoding the keywords will be converted to a lowercase format; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword\": \"\\\"tesla palo alto\\\"\" learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
      +    "type": "string"
      +  },
      +  "keyword_fields": {
      +    "description": "target keyword fields and target keywords optional field use this parameter to filter the dataset by keywords that certain fields should contain; fields you can specify: title, main_title, previous_title, snippet you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword_fields\": { \"snippet\": \"\\\"logitech mouse\\\"\", \"main_title\": \"sale\" }",
      +    "properties": {
      +      "main_title": {
      +        "type": "string"
      +      },
      +      "previous_title": {
      +        "type": "string"
      +      },
      +      "snippet": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "limit": {
      +    "description": "the maximum number of returned citations optional field default value: 100 maximum value: 1000",
      +    "type": "integer"
      +  },
      +  "offset": {
      +    "description": "offset in the results array of returned citations optional field default value: 0 if you specify the 10 value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead.",
      +    "type": "integer"
      +  },
      +  "offset_token": {
      +    "description": "offset token for subsequent requests optional field provided in the identical field of the response to each request; use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters except limit will not be taken into account when processing a task learn more about this parameter on our Help Center",
      +    "type": "string"
      +  },
      +  "order_by": {
      +    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"content_info.sentiment_connotations.anger,desc\"] default rule: [\"content_info.sentiment_connotations.anger,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "page_type": {
      +    "description": "target page types optional field use this parameter to filter the dataset by page types possible values: \"ecommerce\", \"news\", \"blogs\", \"message-boards\", \"organization\"",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "rank_scale": {
      +    "description": "defines the scale used for calculating and displaying the domain_rank, and url_rank values optional field you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale possible values: one_hundred — rank values are displayed on a 0–100 scale one_thousand — rank values are displayed on a 0–1000 scale default value: one_thousand learn more about how this parameter works in this Help Center article",
      +    "type": "string"
      +  },
      +  "search_mode": {
      +    "description": "results grouping type optional field possible grouping types: as_is – returns all citations for the target keyword one_per_domain – returns one citation of the keyword per domain default value: as_is",
      +    "type": "string"
      +  },
      +  "tag": {
      +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      +    "type": "string"
      +  }
      +}
    • changedInput schema / properties / body / items / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • changedInput schema / required
      Previous value: -[]New value: +[
      +  "body"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  5. Changed6 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "filters": [
      +      "main_domain",
      +      "=",
      +      "reviewfinder.ca"
      +    ],
      +    "keyword": "logitech",
      +    "keyword_fields": {
      +      "snippet": "logitech"
      +    },
      +    "limit": 10,
      +    "order_by": [
      +      "content_info.sentiment_connotations.anger,desc"
      +    ],
      +    "page_type": [
      +      "ecommerce",
      +      "news",
      +      "blogs",
      +      "message-boards",
      +      "organization"
      +    ],
      +    "search_mode": "as_is"
      +  }
      +]
    • changedInput schema / properties / body / items / anyOf
      Previous value: -[
      -  {
      -    "required": [
      -      "keyword"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "offset_token"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "example": [
      +      {
      +        "filters": [
      +          "main_domain",
      +          "=",
      +          "reviewfinder.ca"
      +        ],
      +        "keyword": "logitech",
      +        "keyword_fields": {
      +          "snippet": "logitech"
      +        },
      +        "limit": 10,
      +        "order_by": [
      +          "content_info.sentiment_connotations.anger,desc"
      +        ],
      +        "page_type": [
      +          "ecommerce",
      +          "news",
      +          "blogs",
      +          "message-boards",
      +          "organization"
      +        ],
      +        "search_mode": "as_is"
      +      }
      +    ],
      +    "properties": {
      +      "filters": {
      +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>match</code>, <code>not_match</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country\",\"=\", \"US\"]</code><p><code>[[\"domain_rank\",\"&gt;\",800],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",0.9]]</code><p><code>[[\"domain_rank\",\"&gt;\",800],<br>\"and\",<br>[[\"page_types\",\"has\",\"ecommerce\"],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>for more information about filters, please refer to <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>",
      +        "items": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "keyword": {
      +        "description": "<em>target keyword</em><br><strong>required field</strong><br>UTF-8 encoding<br>the keywords will be converted to a lowercase format;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example: <br>`\"keyword\": \"\\\"tesla palo alto\\\"\"`<p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
      +        "type": "string"
      +      },
      +      "keyword_fields": {
      +        "additionalProperties": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "description": "<em>target keyword fields and target keywords</em><br>optional field<br>use this parameter to filter the dataset by keywords that certain fields should contain;<br>fields you can specify: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>you can indicate several fields;<br><strong>Note</strong>: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; <br>example:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}\"`",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "<em>the maximum number of returned citations</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset": {
      +        "description": "<em>offset in the results array of returned citations</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results<br>for retrieving over 10,000 results, use the <code>offset_token</code> instead.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "offset_token": {
      +        "description": "<em>offset token for subsequent requests</em><br>optional field<br>provided in the identical field of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters except <code>limit</code> will not be taken into account when processing a task<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "order_by": {
      +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br>default rule:<br><code>[\"content_info.sentiment_connotations.anger,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "page_type": {
      +        "description": "<em>target page types</em><br>optional field<br>use this parameter to filter the dataset by page types<br>possible values: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "rank_scale": {
      +        "description": "<em>defines the scale used for calculating and displaying the <code>domain_rank</code>, and <code>url_rank</code> values</em><br>optional field<p>you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale<p>possible values:<br><code>one_hundred</code> — rank values are displayed on a 0–100 scale<br><code>one_thousand</code> — rank values are displayed on a 0–1000 scale<p>default value: <code>one_thousand</code><p>learn more about how this parameter works in <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">this Help Center article</a>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "search_mode": {
      +        "description": "<em>results grouping type</em><br>optional field<br>possible grouping types:<br><code>as_is</code> - returns all citations for the target <code>keyword</code><br><code>one_per_domain</code> - returns one citation of the <code>keyword</code> per domain<br>default value: <code>as_is</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "filters": {
      -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, , , >, >=, =, , in, not_in, like,not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country\",\"=\", \"US\"] [[\"domain_rank\",\">\",800],\"and\",[\"content_info.connotation_types.negative\",\">\",0.9]] [[\"domain_rank\",\">\",800], \"and\", [[\"page_types\",\"has\",\"ecommerce\"], \"or\", [\"content_info.text_category\",\"has\",10994]]] for more information about filters, please refer to Content Analysis API – Filters",
      -    "items": {},
      -    "type": "array"
      -  },
      -  "keyword": {
      -    "description": "target keyword required field UTF-8 encoding the keywords will be converted to a lowercase format; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword\": \"\\\"tesla palo alto\\\"\" learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
      -    "type": "string"
      -  },
      -  "keyword_fields": {
      -    "description": "target keyword fields and target keywords optional field use this parameter to filter the dataset by keywords that certain fields should contain; fields you can specify: title, main_title, previous_title, snippet you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: \"keyword_fields\": { \"snippet\": \"\\\"logitech mouse\\\"\", \"main_title\": \"sale\" }",
      -    "properties": {
      -      "main_title": {
      -        "type": "string"
      -      },
      -      "previous_title": {
      -        "type": "string"
      -      },
      -      "snippet": {
      -        "type": "string"
      -      },
      -      "title": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "limit": {
      -    "description": "the maximum number of returned citations optional field default value: 100 maximum value: 1000",
      -    "type": "integer"
      -  },
      -  "offset": {
      -    "description": "offset in the results array of returned citations optional field default value: 0 if you specify the 10 value, the first ten citations in the results array will be omitted and the data will be provided for the successive citations Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead.",
      -    "type": "integer"
      -  },
      -  "offset_token": {
      -    "description": "offset token for subsequent requests optional field provided in the identical field of the response to each request; use this parameter to avoid timeouts while trying to obtain over 10,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters except limit will not be taken into account when processing a task learn more about this parameter on our Help Center",
      -    "type": "string"
      -  },
      -  "order_by": {
      -    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"content_info.sentiment_connotations.anger,desc\"] default rule: [\"content_info.sentiment_connotations.anger,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"content_info.sentiment_connotations.anger,desc\",\"keyword_data.keyword_info.cpc,desc\"]",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "page_type": {
      -    "description": "target page types optional field use this parameter to filter the dataset by page types possible values: \"ecommerce\", \"news\", \"blogs\", \"message-boards\", \"organization\"",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "rank_scale": {
      -    "description": "defines the scale used for calculating and displaying the domain_rank, and url_rank values optional field you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale possible values: one_hundred — rank values are displayed on a 0–100 scale one_thousand — rank values are displayed on a 0–1000 scale default value: one_thousand learn more about how this parameter works in this Help Center article",
      -    "type": "string"
      -  },
      -  "search_mode": {
      -    "description": "results grouping type optional field possible grouping types: as_is – returns all citations for the target keyword one_per_domain – returns one citation of the keyword per domain default value: as_is",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  }
      -}
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  6. First observed

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description frames the tool as a data-retrieval query ('provide you with detailed citation data'), while the annotations declare destructiveHint=true and readOnlyHint=false — a substantive mismatch that could make an agent hesitate or misuse the tool. The only genuine added context beyond annotations is the usage-based billing note ($0.0276 default estimate), which is useful but does not resolve the behavioral conflict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a single front-loaded sentence plus a compact, clearly delimited pricing disclosure, with no redundant filler. It is tight, though its brevity reflects under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a large nested request schema, an output schema, and a crowded sibling set, the description omits usage context, parameter guidance, and any behavioral caveats. The presence of an output schema excuses it from explaining return values, but it leaves too many gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole top-level parameter `body` carries no description, and the description adds nothing about the parameters — it never mentions the required nested `keyword`, the filter/order_by syntax, pagination via offset/offset_token, or search_mode. While the nested schema fields are individually well documented, the description contributes zero parameter meaning and does not compensate for the 0% top-level coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns 'detailed citation data available for the target keyword,' which conveys the resource and input, but the action is phrased loosely ('provide you with') rather than as a clear search/retrieval verb. It offers no differentiation from the many adjacent DataForSEO tools (e.g. post_dataforseo_content_summary_live, post_dataforseo_content_sentiment_analysis_live), so an agent cannot route confidently among siblings from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement, no when-not-to-use exclusion, and no named alternative despite ~60 sibling tools that overlap heavily. An agent gets no signal about when citation search is the right choice versus content summary or sentiment analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources