DataForSEO · Schema
DataForSEO Content Analysis API Schemas
SEOSERPKeywordsBacklinksDomain AnalyticsOn-Page SEOCompetitor ResearchSearch EnginesContent AnalysisE-CommerceApp StoreBusiness DataAI OptimizationSocial Media
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "DataForSEO Content Analysis API Schemas",
"definitions": {
"ContentAnalysisIdListResponseInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseInfo"
},
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisIdListTaskInfo"
}
],
"nullable": true
},
"description": "array of tasks",
"nullable": true
}
}
}
]
},
"ContentAnalysisIdListTaskInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseTaskInfo"
},
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisIdListResultInfo"
}
],
"nullable": true
},
"description": "array of results",
"nullable": true
}
}
}
]
},
"ContentAnalysisIdListResultInfo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id of the task",
"nullable": true
},
"url": {
"type": "string",
"description": "URL of the task\nURL you used for making an API call",
"nullable": true
},
"datetime_posted": {
"type": "string",
"description": "date and time when the task was made\nin the UTC format: \u201cyyyy-mm-dd hh-mm-ss +00:00\u201d\nexample:\n2023-01-15 12:57:46 +00:00",
"nullable": true
},
"datetime_done": {
"type": "string",
"description": "date and time when the task was completed\nin the UTC format: \u201cyyyy-mm-dd hh-mm-ss +00:00\u201d\nexample:\n2023-01-15 12:57:46 +00:00",
"nullable": true
},
"status": {
"type": "string",
"description": "informational message of the task\nyou can find the full list of general informational messages here",
"nullable": true
},
"cost": {
"type": "number",
"description": "cost of the task, USD",
"nullable": true
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "object",
"nullable": true
},
"description": "contains parameters you specified in the POST request",
"nullable": true
}
}
},
"BaseResponseTaskInfo": {
"properties": {
"id": {
"type": "string",
"description": "task identifier\nunique task identifier in our system in the UUID format",
"nullable": true
},
"status_code": {
"type": "integer",
"description": "status code of the task\ngenerated by DataForSEO, can be within the following range: 10000-60000\nyou can find the full list of the response codes here",
"nullable": true
},
"status_message": {
"type": "string",
"description": "informational message of the task\nyou can find the full list of general informational messages here",
"nullable": true
},
"time": {
"type": "string",
"description": "execution time, seconds",
"nullable": true
},
"cost": {
"type": "number",
"description": "total tasks cost, USD",
"format": "double",
"nullable": true
},
"result_count": {
"type": "integer",
"description": "number of elements in the result array",
"format": "int64",
"nullable": true
},
"path": {
"type": "array",
"items": {
"type": "string",
"nullable": true
},
"description": "URL path",
"nullable": true
},
"data": {
"type": "object",
"additionalProperties": {
"type": "object",
"nullable": true
},
"description": "contains the same parameters that you specified in the POST request",
"nullable": true
}
}
},
"BaseResponseInfo": {
"properties": {
"version": {
"type": "string",
"description": "the current version of the API",
"nullable": true
},
"status_code": {
"type": "integer",
"description": "general status code\nyou can find the full list of the response codes here",
"nullable": true
},
"status_message": {
"type": "string",
"description": "general informational message\nyou can find the full list of general informational messages here",
"nullable": true
},
"time": {
"type": "string",
"description": "total execution time, seconds",
"nullable": true
},
"cost": {
"type": "number",
"description": "total tasks cost, USD",
"format": "double",
"nullable": true
},
"tasks_count": {
"type": "integer",
"description": "the number of tasks in the tasks array",
"format": "int64",
"nullable": true
},
"tasks_error": {
"type": "integer",
"description": "the number of tasks in the tasks array returned with an error",
"format": "int64",
"nullable": true
}
}
},
"ContentAnalysisPhraseTrendsLiveResponseInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseInfo"
},
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisPhraseTrendsLiveTaskInfo"
}
],
"nullable": true
},
"description": "array of tasks",
"nullable": true
}
}
}
]
},
"ContentAnalysisPhraseTrendsLiveTaskInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseTaskInfo"
},
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisPhraseTrendsLiveResultInfo"
}
],
"nullable": true
},
"description": "array of results",
"nullable": true
}
}
}
]
},
"ContentAnalysisPhraseTrendsLiveResultInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "type of element",
"nullable": true
},
"date": {
"type": "string",
"description": "date for which the data is provided",
"nullable": true
},
"total_count": {
"type": "integer",
"description": "total number of results in our database relevant to your request",
"format": "int64",
"nullable": true
},
"rank": {
"type": "integer",
"description": "rank of all URLs citing the keyword\nnormalized sum of ranks of all URLs citing the target keyword for the given date",
"nullable": true
},
"top_domains": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/TopDomainInfo"
}
],
"nullable": true
},
"description": "top domains citing the target keyword\ncontains objects with top domains citing the target keyword and citation count per each domain",
"nullable": true
},
"sentiment_connotations": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "sentiment connotations\ncontains sentiments (emotional reactions) related to the target keyword citation and the number of citations per each sentiment\npossible connotations: \"anger\", \"happiness\", \"love\", \"sadness\", \"share\", \"fun\"",
"nullable": true
},
"connotation_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "connotation types\ncontains types of sentiments (sentiment polarity) related to the keyword citation and citation count per each sentiment type\npossible connotation types: \"positive\", \"negative\", \"neutral\"",
"nullable": true
},
"text_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "text categories\ncontains objects with text categories and citation count in each text category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "page categories\ncontains objects with page categories and citation count in each page category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "page types\ncontains page types and citation count per each page type",
"nullable": true
},
"countries": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "countries\ncontains countries and citation count in each country\nto obtain a full list of available countries, refer to the Locations endpoint",
"nullable": true
},
"languages": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "languages\ncontains languages and citation count in each language\nto obtain a full list of available languages, refer to the Languages endpoint",
"nullable": true
}
}
},
"TopDomainInfo": {
"properties": {
"domain": {
"type": "string",
"nullable": true
},
"count": {
"type": "integer",
"format": "int64",
"nullable": true
}
}
},
"ContentAnalysisCategoriesInfo": {
"properties": {
"category": {
"type": "array",
"items": {
"type": "integer",
"nullable": true
},
"nullable": true
},
"count": {
"type": "integer",
"format": "int64",
"nullable": true
}
}
},
"ContentAnalysisCategoryTrendsLiveResponseInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseInfo"
},
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoryTrendsLiveTaskInfo"
}
],
"nullable": true
},
"description": "array of tasks",
"nullable": true
}
}
}
]
},
"ContentAnalysisCategoryTrendsLiveTaskInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseTaskInfo"
},
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoryTrendsLiveResultInfo"
}
],
"nullable": true
},
"description": "array of results",
"nullable": true
}
}
}
]
},
"ContentAnalysisCategoryTrendsLiveResultInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "type of element",
"nullable": true
},
"date": {
"type": "string",
"description": "date for which the data is provided",
"nullable": true
},
"total_count": {
"type": "integer",
"description": "total number of results in our database relevant to your request",
"format": "int64",
"nullable": true
},
"rank": {
"type": "integer",
"description": "rank of all URLs citing the keyword\nnormalized sum of ranks of all URLs citing the target keyword for the given date",
"nullable": true
},
"top_domains": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/TopDomainInfo"
}
],
"nullable": true
},
"description": "top domains citing the target keyword\ncontains objects with top domains citing the target category and citation count per each domain",
"nullable": true
},
"sentiment_connotations": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "sentiment connotations\ncontains sentiments (emotional reactions) related to the target category citation and the number of citations per each sentiment\npossible connotations: \"anger\", \"fear\", \"happiness\", \"love\", \"sadness\", \"share\", \"neutral\", \"fun\"",
"nullable": true
},
"connotation_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "connotation types\ncontains types of sentiments (sentiment polarity) related to the category citation and citation count per each sentiment type\npossible connotation types: \"positive\", \"negative\", \"neutral\"",
"nullable": true
},
"text_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "text categories\ncontains objects with text categories and citation count in each text category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "page categories\ncontains objects with page categories and citation count in each page category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "page types\ncontains page types and citation count per each page type",
"nullable": true
},
"countries": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "countries\ncontains countries and citation count in each country\nto obtain a full list of available countries, refer to the Locations endpoint",
"nullable": true
},
"languages": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "languages\ncontains languages and citation count in each language\nto obtain a full list of available languages, refer to the Languages endpoint",
"nullable": true
}
}
},
"ContentAnalysisSentimentAnalysisLiveResponseInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseInfo"
},
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSentimentAnalysisLiveTaskInfo"
}
],
"nullable": true
},
"description": "array of tasks",
"nullable": true
}
}
}
]
},
"ContentAnalysisSentimentAnalysisLiveTaskInfo": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseResponseTaskInfo"
},
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSentimentAnalysisLiveResultInfo"
}
],
"nullable": true
},
"description": "array of results",
"nullable": true
}
}
}
]
},
"ContentAnalysisSentimentAnalysisLiveResultInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "type of element",
"nullable": true
},
"positive_connotation_distribution": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/PositiveConnotationDistribution"
}
],
"description": "citation distribution by sentiment connotation types\ncontains objects with citation counts and relevant data distributed by types of sentiments (sentiment polarity);\npossible sentiment connotation types: positive, negative, neutral",
"nullable": true
},
"sentiment_connotation_distribution": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/SentimentConnotationDistribution"
}
],
"description": "citation distribution by sentiment connotations\ncontains objects with citation counts and relevant data distributed by sentiments (emotional reactions);\npossible sentiment connotation types: anger, happiness, love, sadness, share, fun",
"nullable": true
}
}
},
"PositiveConnotationDistribution": {
"type": "object",
"properties": {
"positive": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"negative": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"neutral": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
}
}
},
"ContentAnalysisSummaryInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "type of element",
"nullable": true
},
"total_count": {
"type": "integer",
"description": "total amount of results in our database relevant to your request",
"format": "int64",
"nullable": true
},
"rank": {
"type": "integer",
"description": "rank of all URLs citing the keyword\nnormalized sum of ranks of all URLs citing the target keyword",
"nullable": true
},
"top_domains": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/TopDomainInfo"
}
],
"nullable": true
},
"description": "top domains citing the target keyword\ncontains objects with top domains citing the target keword and citation count per each domain",
"nullable": true
},
"sentiment_connotations": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "sentiment connotations\ncontains sentiments (emotional reactions) related to the target keyword citation and the number of citations per each sentiment\npossible sentiment connotations: anger, happiness, love, sadness, share, fun",
"nullable": true
},
"connotation_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "connotation types\ncontains types of sentiments (sentiment polarity) related to the keyword citation and citation count per each sentiment type\npossible sentiment connotation types: positive, negative, neutral",
"nullable": true
},
"text_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "text categories\ncontains objects with text categories and citation count in each text category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_categories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisCategoriesInfo"
}
],
"nullable": true
},
"description": "page categories\ncontains objects with page categories and citation count in each page category\nto obtain a full list of available categories, refer to the Categories endpoint",
"nullable": true
},
"page_types": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "page types\ncontains page types and citation count per each page type",
"nullable": true
},
"countries": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "countries\ncontains countries and citation count in each country\nto obtain a full list of available countries, refer to the Locations endpoint",
"nullable": true
},
"languages": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64",
"nullable": true
},
"description": "languages\ncontains languages and citation count in each language\nto obtain a full list of available languages, refer to the Languages endpoint",
"nullable": true
}
}
},
"SentimentConnotationDistribution": {
"type": "object",
"properties": {
"anger": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"happiness": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"love": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"sadness": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"share": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
},
"fun": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/ContentAnalysisSummaryInfo"
}
],
"nullable": true
}
}
},
"ContentAnalysisRatingDistributionLiveRequestInfo": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "target keyword\nrequired field\nUTF-8 encoding\nthe keywords will be converted to a lowercase format;\nNote: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes;\nexample:\n\"keyword\": \"\\\"tesla palo alto\\\"\"\nlearn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article"
},
"keyword_fields": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
},
"description": "target keyword fields and target keywords\noptional field\nuse this parameter to filter the dataset by keywords that certain fields should contain;\nfields you can specify: title, main_title, previous_title, snippet\nyou can indicate several fields;\nNote: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes;\nexample:\n\"keyword_fields\": {\n \u00a0 \"snippet\": \"\\\"logitech mouse\\\"\",\n \u00a0 \"main_title\": \"sale\"\n}",
"nullable": true
},
"page_type": {
"type": "array",
"items": {
"type": "string"
},
"description": "target page types\noptional field\nuse this parameter to filter the dataset by page types\npossible values:\n\"ecommerce\", \"news\", \"blogs\", \"message-boards\", \"organization\"",
"nullable": true
},
"internal_list_limit": {
"type": "integer",
"description": "maximum number of elements within internal arrays\noptional field\nyou can use this field to limit the number of elements within the following arrays:\ntop_domains\ntext_categories\npage_categories\ncountries\nlanguages\ndefault value: 1\nmaximum value: 20",
"nullable": true
},
"search_mode": {
"type": "string",
"description": "results grouping type\noptional field\npossible grouping types:\nas_is \u2013 returns all citations for the target keyword\none_per_domain \u2013 returns one citation of the keyword per domain\ndefault value: as_is",
"nullable": true
},
"positive_connotation_threshold": {
"type": "number",
"description": "positive connotation threshold\noptional field\nspecified as the probability index threshold for positive sentiment related to the citation content\nif 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\npossible values: from 0 to 1\ndefault value: 0.4",
"nullable": true
},
"sentiments_connotation_threshold": {
"type": "number",
"description": "sentiment connotation threshold\noptional field\nspecified as the probability index threshold for sentiment connotations related to the citation content\nif 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\npossible values: from 0 to 1\ndefault value: 0.4",
"nullable": true
},
"initial_dataset_filters": {
"type": "array",
"items": {
"type": "object",
"nullable": true
},
"description": "initial dataset filtering parameters\noptional field\ninitial filtering parameters that apply to fields in the Search endpoint\nyou can add several filters at once (8 filters maximum)\nyou should set a logical operator and, or between the conditions\nthe following operators are supported:\nregex, not_regex, <, <=, >, >=, =, <>, in, not_in, like,not_like, has, has_not, match, not_match\nyou can use the % operator with like and not_like to match any string of zero or more characters\nexample:\n[\"domain\",\"<>\", \"logitech.com\"]\n[[\"domain\",\"<>\",\"logitech.com\"],\"and\",[\"content_info.connotation_types.negative\",\">\",1000]]\n[[\"domain\",\"<>\",\"logitech.com\"]],\n\"and\",\n[[\"content_info.connotation_types.negative\",\">\",1000],\n\"or\",\n[\"content_info.text_category\",\"has\",10994]]]\nfor more information about filters, please refer to Content Analysis API \u2013 Filters",
"nullable": true
},
"rank_scale": {
"type": "string",
"description": "defines the scale used for calculating and displaying the rank values\noptional field\nyou can use this parameter to choose whether rank values are presented on a 0\u2013100 or 0\u20131000 scale\npossible values:\none_hundred \u2014 rank values are displayed on a 0\u2013100 scale\none_thousand \u2014 rank values are displayed on a
# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dataforseo/refs/heads/main/json-schema/dataforseo-content-analysis-schema.json