Content Analysis – Rating Distribution API
DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
Content Analysis – Rating Distribution API
Splits a keyword's citations into rating buckets and reports the full metric set for each. Returns one entry per bucket with min, max and a metrics object holding total_count, rank, top_domains (each domain and count), sentiment_connotations (anger, happiness, love, sadness, share, fun), connotation_types (positive, negative, neutral), text_categories, page_categories, page_types, countries and languages. rank_scale chooses the bucketing. For the same metrics un-bucketed use post_dataforseo_content_summary_live; for sentiment alone, post_dataforseo_content_sentiment_analysis_live.
- Тип: array object[]
- keywordТип: stringобязательно
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
- initialТип: array
_dataset _filters initial dataset filtering parameters optional field initial filtering parameters that apply to fields in the Search endpoint you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, , , >, >=, =, , in, not_in, like,not_like, has, has_not, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["domain","", "logitech.com"] [["domain","","logitech.com"],"and",["content_info.connotation_types.negative",">",1000]] [["domain","","logitech.com"]], "and", [["content_info.connotation_types.negative",">",1000], "or", ["content_info.text_category","has",10994]]] for more information about filters, please refer to Content Analysis API – Filters learn more about the initial dataset filters in this help center article.
- internalТип: integer
_list _limit maximum number of elements within internal arrays optional field you can use this field to limit the number of elements within the following arrays: top_domains text_categories page_categories countries languages default value: 1 maximum value: 20
- keywordТип: object
_fields 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" }
- mainТип: string
_title - previousТип: string
_title - snippetТип: string
- titleТип: string
- pageТип: array string[]
_type target page types optional field use this parameter to filter the dataset by page types possible values: "ecommerce", "news", "blogs", "message-boards", "organization"
- positiveТип: number
_connotation _threshold positive connotation threshold optional field specified as the probability index threshold for positive sentiment related to the citation content if you specify this field, connotation_types object in the response will only contain data on citations with positive sentiment probability more than or equal to the specified value possible values: from 0 to 1 default value: 0.4
- rankТип: string
_scale defines the scale used for calculating and displaying the 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
- searchТип: string
_mode 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
- sentimentsТип: number
_connotation _threshold sentiment connotation threshold optional field specified as the probability index threshold for sentiment connotations related to the citation content if you specify this field, sentiment_connotations object in the response will only contain data on citations where the probability per each sentiment is more than or equal to the specified value possible values: from 0 to 1 default value: 0.4
- tagТип: string
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
- Тип: object200
Successful response
- Тип: numbercost
total tasks cost, USD
- Тип: integerstatus
_code general status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
- Тип: stringstatus
_message general informational message you can find the full list of general informational messages here
- Тип: array string[]tasks
array of tasks
- Тип: integertasks
_count the number of tasks in the tasks array
- Тип: integertasks
_error the number of tasks in the tasks array returned with an error
- Тип: numbertasks
.cost cost of the task, USD
- Тип: objecttasks
.data contains the same parameters that you specified in the POST request
- Тип: stringtasks
.id task identifier unique task identifier in our system in the UUID format
- Тип: array string[]tasks
.path URL path
- Тип: array string[]tasks
.result array of results
- Тип: integertasks
.result _count number of elements in the result array
- Тип: numbertasks
.result .max max rating on a distribution scale
- Тип: objecttasks
.result .metrics contains rating distribution metrics
- Тип: objecttasks
.result .metrics .connotation _types connotation types contains types of sentiments (sentiment polarity) related to the keyword citation and citation count per each sentiment type; possible connotation types: "positive", "negative", "neutral"
- Тип: objecttasks
.result .metrics .countries countries contains countries and citation count in each country to obtain a full list of available countries, refer to the Locations endpoint
- Тип: objecttasks
.result .metrics .languages languages contains languages and citation count in each language to obtain a full list of available languages, refer to the Languages endpoint
- Тип: array string[]tasks
.result .metrics .page _categories page categories contains objects with page categories and citation count in each page category to obtain a full list of available categories, refer to the Categories endpoint
- Тип: objecttasks
.result .metrics .page _types page types contains page types and citation count per each page type
- Тип: integertasks
.result .metrics .rank rank of all URLs citing the keyword normalized sum of ranks of all URLs citing the target keyword
- Тип: objecttasks
.result .metrics .sentiment _connotations sentiment connotations contains sentiments (emotional reactions) related to the target keyword citation and the number of citations per each sentiment; possible connotations: "anger", "happiness", "love", "sadness", "share", "fun"
- Тип: array string[]tasks
.result .metrics .text _categories text categories contains objects with text categories and citation count in each text category to obtain a full list of available categories, refer to the Categories endpoint
- Тип: array string[]tasks
.result .metrics .top _domains top domains citing the target keyword contains objects with top domains citing the target keyword and citation count per each domain
- Тип: integertasks
.result .metrics .total _count total amount of results in our database relevant to your request
- Тип: stringtasks
.result .metrics .type type of element = ‘content_analysis_summary’
- Тип: numbertasks
.result .min min rating on a distribution scale
- Тип: stringtasks
.result .type type of element = ‘content_analysis_rating_distribution’
- Тип: integertasks
.status _code status code of the task generated by DataForSEO; can be within the following range: 10000-60000 you can find the full list of the response codes here
- Тип: stringtasks
.status _message informational message of the task you can find the full list of general informational messages here
- Тип: stringtasks
.time execution time, seconds
- Тип: stringtime
execution time, seconds
- Тип: stringversion
the current version of the API
application/json - 400
Bad request
- 401
Unauthorized
- 402
The request cannot proceed because a billing requirement is not met.
- 403
The account is not permitted to perform this operation.
- 429
Rate limit exceeded
- 500
Internal server error
- 502
The service could not complete the request.
- 503
The API or billing service is temporarily unavailable.
- 504
The service timed out while processing the request.
- default
The operation failed. Keep the response request ID when contacting Felo support.
curl https://openapi.felo.ai/v1/beta/dataforseo/content_analysis/rating_distribution/live \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"keyword": "",
"keyword_fields": {
"title": "",
"main_title": "",
"previous_title": "",
"snippet": ""
},
"page_type": [
""
],
"internal_list_limit": 1,
"search_mode": "",
"positive_connotation_threshold": 1,
"sentiments_connotation_threshold": 1,
"initial_dataset_filters": [],
"rank_scale": "",
"tag": ""
}
]'
{
"version": "string",
"status_code": 1,
"status_message": "string",
"time": "string",
"cost": 1,
"tasks_count": 1,
"tasks_error": 1,
"tasks": [
"string"
],
"tasks.id": "string",
"tasks.status_code": 1,
"tasks.status_message": "string",
"tasks.time": "string",
"tasks.cost": 1,
"tasks.result_count": 1,
"tasks.path": [
"string"
],
"tasks.data": {},
"tasks.result": [
"string"
],
"tasks.result.type": "string",
"tasks.result.min": 1,
"tasks.result.max": 1,
"tasks.result.metrics": {},
"tasks.result.metrics.type": "string",
"tasks.result.metrics.total_count": 1,
"tasks.result.metrics.rank": 1,
"tasks.result.metrics.top_domains": [
"string"
],
"tasks.result.metrics.sentiment_connotations": {},
"tasks.result.metrics.connotation_types": {},
"tasks.result.metrics.text_categories": [
"string"
],
"tasks.result.metrics.page_categories": [
"string"
],
"tasks.result.metrics.page_types": {},
"tasks.result.metrics.countries": {},
"tasks.result.metrics.languages": {}
}