Data API / DataForSEO / Content Analysis
Content Analysis – Phrase Trends API
The summary metrics for a keyword, repeated per time period. Each entry carries a date plus 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. date_from, date_to and date_group (day, week, month) set the range and granularity. Use this to see whether mentions of a phrase are rising or falling; for a single point in time use post_dataforseo_content_summary_live. To track a whole product category rather than one phrase, use post_dataforseo_content_category_trends_live.
Parameters
No path, query, or header parameters.
Request body
keywordstringRequiredtarget 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
keyword_fieldsobjectOptionaltarget 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" }
titlestringOptionalmain_titlestringOptionalprevious_titlestringOptionalsnippetstringOptionalpage_typestring[]Optionaltarget page types optional field use this parameter to filter the dataset by page types possible values: "ecommerce", "news", "blogs", "message-boards", "organization"
search_modestringOptionalresults grouping type optional field possible grouping types: as_is – returns data on all citations for the target keyword one_per_domain – returns data on one citation of the keyword per domain default value: as_is
internal_list_limitintegerOptionalmaximum 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
date_fromstringRequiredstarting date of the time range required field date format: "yyyy-mm-dd" example: "2019-01-15"
date_tostringOptionalending date of the time range optional field if you don’t specify this field, today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15"
date_groupstringOptionaltime range which will be used to group the results optional field default value: month possible values: day, week, month
initial_dataset_filtersarrayOptionalinitial 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.
rank_scalestringOptionaldefines 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
tagstringOptionaluser-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
Example request
curl -X POST "https://openapi.felo.ai/v1/beta/dataforseo/content_analysis/phrase_trends/live" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "<string>",
"date_from": "<string>",
"keyword_fields": {},
"page_type": [
"<string>"
],
"search_mode": "<string>",
"internal_list_limit": 0,
"date_to": "<string>",
"date_group": "<string>"
}'Response
Response fields
versionstringOptionalthe current version of the API
status_codeintegerOptionalgeneral 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
status_messagestringOptionalgeneral informational message you can find the full list of general informational messages here
timestringOptionalexecution time, seconds
costnumberOptionaltotal tasks cost, USD
tasks_countintegerOptionalthe number of tasks in the tasks array
tasks_errorintegerOptionalthe number of tasks in the tasks array returned with an error
tasksstring[]Optionalarray of tasks
idstringOptionaltask identifier unique task identifier in our system in the UUID format
status_codeintegerOptionalstatus 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
status_messagestringOptionalinformational message of the task you can find the full list of general informational messages here
timestringOptionalexecution time, seconds
costnumberOptionalcost of the task, USD
result_countintegerOptionalnumber of elements in the result array
pathstring[]OptionalURL path
dataobjectOptionalcontains the same parameters that you specified in the POST request
resultstring[]Optionalarray of results
typestringOptionaltype of element = ‘content_analysis_trends’
datestringOptionaldate for which the data is provided
total_countintegerOptionaltotal number of results in our database relevant to your request
rankintegerOptionalrank of all URLs citing the keyword normalized sum of ranks of all URLs citing the target keyword for the given date
top_domainsstring[]Optionaltop domains citing the target keyword contains objects with top domains citing the target keyword and citation count per each domain
sentiment_connotationsobjectOptionalsentiment 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"
connotation_typesobjectOptionalconnotation 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"
text_categoriesstring[]Optionaltext 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
page_categoriesstring[]Optionalpage 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
page_typesobjectOptionalpage types contains page types and citation count per each page type
countriesobjectOptionalcountries contains countries and citation count in each country to obtain a full list of available countries, refer to the Locations endpoint
languagesobjectOptionallanguages contains languages and citation count in each language to obtain a full list of available languages, refer to the Languages endpoint