Your account will be charged for each request.
The cost can be calculated on the Pricing page.
Content Analysis – Summary API
This endpoint will provide you with an overview of citation data available for the target keyword.
This endpoint will provide you with an overview of citation data available for the target keyword.
Your account will be charged for each request.
The cost can be calculated on the Pricing page.
All POST data should be sent in the JSON format (UTF-8 encoding). The task setting is done using the POST method. When setting a task, you should send all task parameters in the task array of the generic POST array. You can send up to 2000 API calls per minute, each Live API call can contain only one task. The maximum number of calls that can be sent simultaneously is limited to 30.
You can specify the number of results you want to retrieve, filter and sort them.
Below you will find a detailed description of the fields you can use for setting a task.
Description of the fields for setting a task:
| Field name | Type | Description |
|---|---|---|
keyword | string | target keyword learn more about rules and limitations of |
keyword_fields | object | target keyword fields and target keywords |
page_type | array | target page types |
internal_list_limit | integer | maximum number of elements within internal arrays |
positive_connotation_threshold | float | positive connotation threshold |
sentiments_connotation_threshold | float | sentiment connotation threshold |
initial_dataset_filters | array | initial dataset filtering parameters
["content_info.text_category","has",10994]]] |
rank_scale | string | defines the scale used for calculating and displaying the you can use this parameter to choose whether rank values are presented on a 0–100 or 0–1000 scale possible values: default value: learn more about how this parameter works in this Help Center article |
tag | string | user-defined task identifier |
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.
Description of the fields in the results array:
| Field name | Type | Description |
|---|---|---|
version | string | the current version of the API |
status_code | integer | general status code |
status_message | string | general informational message |
time | string | execution time, seconds |
cost | float | total tasks cost, USD |
tasks_count | integer | the number of tasks in the |
tasks_error | integer | the number of tasks in the |
tasks | array | array of tasks |
id | string | task identifier |
status_code | integer | status code of the task |
status_message | string | informational message of the task |
time | string | execution time, seconds |
cost | float | cost of the task, USD |
result_count | integer | number of elements in the |
path | array | URL path |
data | object | contains the same parameters that you specified in the POST request |
result | array | array of results |
type | string | type of element='content_analysis_summary'n |
total_count | integer | total amount of results in our database relevant to your request |
rank | integer | rank of all URLs citing the |
top_domains | array | top domains citing the target keyword |
sentiment_connotations | object | sentiment connotations |
connotation_types | object | connotation types |
text_categories | array | text categories |
page_categories | array | page categories |
page_types | object | page types |
countries | object | countries |
languages | object | languages |
Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-access
# Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
login="login"
password="password"
cred="$(printf ${login}:${password} | base64)"
curl --location --request POST "https://api.dataforseo.com/v3/content_analysis/summary/live"
--header "Authorization: Basic ${cred}"
--header "Content-Type: application/json"
--data-raw '[
{
"keyword": "logitech",
"page_type": [
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
],
"internal_list_limit": 8,
"positive_connotation_threshold": 0.5
}
]'<?php
// You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
$client = new RestClient($api_url, null, 'login', 'password');
$post_array = array();
// simple way to set a task
$post_array[] = array(
"keyword" => "logitech",
"page_type" => array(
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
),
"internal_list_limit" => 3,
"positive_connotation_threshold" => 0.5
);
try {
// POST /v3/content_analysis/summary/live
$result = $client->post('/v3/content_analysis/summary/live', $post_array);
print_r($result);
// do something with post result
} catch (RestClientException $e) {
echo "n";
print "HTTP code: {$e->getHttpCode()}n";
print "Error code: {$e->getCode()}n";
print "Message: {$e->getMessage()}n";
print $e->getTraceAsString();
echo "n";
}
$client = null;
?>const post_array = [];
post_array.push({
"keyword": "logitech",
"page_type": [
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
],
"internal_list_limit": 8,
"positive_connotation_threshold": 0.5
});
const axios = require('axios');
axios({
method: 'post',
url: 'https://api.dataforseo.com/v3/content_analysis/summary/live',
auth: {
username: 'login',
password: 'password'
},
data: post_array,
headers: {
'content-type': 'application/json'
}
}).then(function (response) {
var result = response['data']['tasks'];
// Result data
console.log(result);
}).catch(function (error) {
console.log(error);
});from client import RestClient
# You can download this file from here https://cdn.dataforseo.com/v3/examples/python/python_Client.zip
client = RestClient("login", "password")
post_data = dict()
# simple way to set a task
post_data[len(post_data)] = dict(
keyword="logitech",
page_type=[
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
],
internal_list_limit=8,
positive_connotation_threshold=0.5
)
# POST /v3/content_analysis/summary/live
response = client.post("/v3/content_analysis/summary/live", post_data)
# you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if response["status_code"] == 20000:
print(response)
# do something with result
else:
print("error. Code: %d Message: %s" % (response["status_code"], response["status_message"]))using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace DataForSeoDemos
{
public static partial class Demos
{
public static async Task content_analysis_summary_live()
{
var httpClient = new HttpClient
{
BaseAddress = new Uri("https://api.dataforseo.com/"),
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("login:password"))) }
};
var postData = new List<object>();
postData.Add(new
{
keyword = "logitech",
page_type = new[]
{
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
},
internal_list_limit = 3,
positive_connotation_threshold = 0.5
});
// POST /v3/content_analysis/summary/live
// the full list of possible parameters is available in documentation
var taskPostResponse = await httpClient.PostAsync("/v3/content_analysis/summary/live", new StringContent(JsonConvert.SerializeObject(postData)));
var result = JsonConvert.DeserializeObject<dynamic>(await taskPostResponse.Content.ReadAsStringAsync());
// you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if (result.status_code == 20000)
{
// do something with result
Console.WriteLine(result);
}
else
Console.WriteLine($"error. Code: {result.status_code} Message: {result.status_message}");
}
}
}The above command returns JSON structured like this:
{
"version": "0.1.20220913",
"status_code": 20000,
"status_message": "Ok.",
"time": "1.0290 sec.",
"cost": 0.02003,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "09131956-0696-0464-0000-25b5cb2c0157",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.9941 sec.",
"cost": 0.02003,
"result_count": 1,
"path": [
"v3",
"content_analysis",
"summary",
"live"
],
"data": {
"api": "content_analysis",
"function": "summary",
"keyword": "logitech",
"page_type": [
"ecommerce",
"news",
"blogs",
"message-boards",
"organization"
],
"internal_list_limit": 8,
"positive_connotation_threshold": 0.5
},
"result": [
{
"type": "content_analysis_summary",
"total_count": 959052,
"rank": 586,
"top_domains": [
{
"domain": "nerdpart.com",
"count": 31783
},
{
"domain": "clubic.com",
"count": 12576
},
{
"domain": "logitech.com",
"count": 5918
},
{
"domain": "dateks.lv",
"count": 4100
},
{
"domain": "ovu.com.ua",
"count": 3460
},
{
"domain": "preissieger.info",
"count": 3309
}
],
"sentiment_connotations": {
"anger": 0,
"happiness": 22868,
"love": 175266,
"sadness": 12076,
"share": 0,
"fun": 1309
},
"connotation_types": {
"positive": 261992,
"negative": 68043,
"neutral": 108682
},
"text_categories": [
{
"category": null,
"count": 272367
},
{
"category": [
10013,
10019,
10167
],
"count": 66122
},
{
"category": [
10019,
10167,
10013
],
"count": 62107
},
{
"category": [
10019,
10167,
10007,
13418
],
"count": 40433
},
{
"category": [
10019,
10167,
10007,
10878,
13381,
12161,
13054
],
"count": 25706
},
{
"category": [
10013,
10108
],
"count": 24088
},
{
"category": [
10019,
10168,
10886,
12222,
12216
],
"count": 21864
},
{
"category": [
10013,
10108,
13691
],
"count": 20646
}
],
"page_categories": [
{
"category": null,
"count": 247346
},
{
"category": [
10013,
10108,
10584
],
"count": 14463
},
{
"category": [
10019,
10167,
10013
],
"count": 14017
},
{
"category": [
10019,
10167,
10007,
10878,
13381,
12161,
13054
],
"count": 13000
},
{
"category": [
10013,
10019,
10167
],
"count": 12041
},
{
"category": [
10019,
10167,
10007,
13418
],
"count": 11963
},
{
"category": [
10019,
10168,
10886,
12222,
12216
],
"count": 11938
},
{
"category": [
10019,
10168,
10886,
12216,
12222
],
"count": 7747
}
],
"page_types": {
"blogs": 60789,
"organization": 27201,
"news": 270865,
"message-boards": 33883,
"ecommerce": 314434
},
"countries": {
"US": 88807,
"UA": 58655,
"UN": 40394,
"DE": 30334,
"FR": 27221,
"JP": 24619,
"VN": 20387,
"PL": 19671
},
"languages": {
"en": 351137,
"ja": 97085,
"ru": 83271,
"vi": 54182,
"de": 53040,
"fr": 45802,
"es": 43180,
"pl": 21421
}
}
]
}
]
}