{"id":17234,"date":"2023-07-03T17:14:19","date_gmt":"2023-07-03T17:14:19","guid":{"rendered":"https:\/\/docs_v3.dataforseo.com\/v3\/?page_id=17234"},"modified":"2025-10-03T13:14:02","modified_gmt":"2025-10-03T13:14:02","slug":"serp-ai_summary","status":"publish","type":"page","link":"https:\/\/docs.dataforseo.com\/v3\/serp-ai_summary\/","title":{"rendered":"serp\/ai_summary"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]<\/p>\n<h2 id=\"setting-serp-tasks\">SERP API AI Summary<\/h2>\n<p>\u200c\u200c<br \/>\nThe purpose of the Live SERP API AI Summary endpoint is to provide a summary of the content found on any SERP and generate a response based on the user&#8217;s specified prompt.<br \/>\nTo obtain results, you have to specify <code>task_id<\/code>, which you can find in the response to the POST request.<br \/>\n<a href=\"https:\/\/dataforseo.com\/help-center\/how-does-ai-summary-endpoint-of-serp-api-work\" rel=\"noopener noreferrer\" target=\"_blank\">Learn more in our Help Center.<\/a><\/p>\n<p>Your account will be charged for each request to this endpoint. <\/p>\n<p>[\/vc_column_text]    <div class=\"endpoint\">\n        <img decoding=\"async\" class=\"endpoint__icon\" src=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/checked-circle.svg\" alt=\"checked\">\n\n                    POST            <button class=\"btn-reset button-link copy-button\" data-href=\"https:\/\/api.dataforseo.com\/v3\/serp\/ai_summary\">\n                https:\/\/api.dataforseo.com\/v3\/serp\/ai_summary                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n                    <use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#layers\"><\/use>\n                <\/svg>\n            <\/button>\n            <\/div>\n    \t<article class=\"info-card info-card--yellow\">\n\t\t<header class=\"info-card__header\">\n\t\t\t<div class=\"info-card__icon\">\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#label\"><\/use>\n\t\t\t\t<\/svg>\n\t\t\t<\/div>\n\t\t\t<div class=\"info-card__title\">Pricing<\/div>\n\t\t<\/header>\n\t\t<div class=\"info-card__content\">\n\t\t\t<p> Your account will be charged $0.01 for each request.<\/p>\n\t\t<\/div>\n\t<\/article>\n\t[vc_column_text]All POST data should be sent in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\">JSON<\/a> 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.<\/p>\n<p><strong>Description of the fields for setting a task:<\/strong><\/p>\n<table style=\"width: 86.0726%; height: 34px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 38.423%; height: 24px;\">Field name<\/th>\n<th style=\"width: 3.91588%; height: 24px;\">Type<\/th>\n<th style=\"width: 61.7021%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 192px;\">\n<td style=\"width: 38.423%; height: 144px;\"><code>task_id<\/code><\/td>\n<td style=\"width: 3.91588%; height: 144px;\">string<\/td>\n<td style=\"width: 61.7021%; height: 144px;\"><em>task identifier<\/em><br \/>\n<strong>required field<\/strong><br \/>\nunique identifier of the associated task in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> format<br \/>\nyou will be able to use it within <strong>30 days<\/strong> to request the results of the task at any time<\/td>\n<\/tr>\n<tr style=\"height: 168px;\">\n<td style=\"width: 12.4003%; height: 168px;\"><code>prompt<\/code><\/td>\n<td style=\"width: 3.91588%; height: 168px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 168px;\"><em>AI prompt<\/em><br \/>\noptional field<br \/>\nadditional task for AI summariser;<br \/>\nany form of text, question or information that communicates to AI what response you&#8217;re looking for;<br \/>\nmax number of symbols or characters you can specify: <code>2000<\/code>;<br \/>\n<strong>note:<\/strong> your prompt has to be relevant to the keyword specified in the POST request to SERP API\n<\/td>\n<\/tr>\n<tr style=\"height: 168px;\">\n<td style=\"width: 12.4003%; height: 168px;\"><code>support_extra<\/code><\/td>\n<td style=\"width: 3.91588%; height: 168px;\">boolean<\/td>\n<td style=\"width: 82.9587%; height: 168px;\"><em>support extra SERP features<\/em><br \/>\noptional field<br \/>\nif set to <code>true<\/code>, the AI model will consider the following extra SERP features, in addition to <code>organic<\/code> results: <code>answer_box<\/code>, <code>knowledge_graph<\/code>, <code>featured_snippet<\/code>;<br \/>\ndefault value: <code>true<\/code>\n<\/td>\n<\/tr>\n<tr style=\"height: 168px;\">\n<td style=\"width: 12.4003%; height: 168px;\"><code>fetch_content<\/code><\/td>\n<td style=\"width: 3.91588%; height: 168px;\">boolean<\/td>\n<td style=\"width: 82.9587%; height: 168px;\"><em>fetch content from pages in SERPs<\/em><br \/>\noptional field<br \/>\nif set to <code>true<\/code>, the API will fetch the content from pages featured in SERP results, and the AI model will consider this content when generating the summary in the result;<br \/>\ndefault value: <code>false<\/code>\n<\/td>\n<\/tr>\n<tr style=\"height: 168px;\">\n<td style=\"width: 12.4003%; height: 168px;\"><code>include_links<\/code><\/td>\n<td style=\"width: 3.91588%; height: 168px;\">boolean<\/td>\n<td style=\"width: 82.9587%; height: 168px;\"><em>include source links in the summary<\/em><br \/>\noptional field<br \/>\nif set to <code>true<\/code>, the <code>summary<\/code> field in the API response will contain links to sources of the generated summary;<br \/>\ndefault value: <code>false<\/code>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c\u200c\u200c\u200c\u200c<br \/>\nAs a response of the API server, you will receive <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\">JSON<\/a>-encoded data containing a <code>tasks<\/code> array with the information specific to the set tasks.<\/p>\n<p><strong>Description of the fields in the results array:<\/strong><\/p>\n<table style=\"width: 86.001%; height: 1369px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 38.423%; height: 24px;\">Field name<\/th>\n<th style=\"width: 1.25156%; height: 24px;\">Type<\/th>\n<th style=\"width: 61.7021%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\"><code>version<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>the current version of the API<\/em><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 38.423%; height: 48px;\"><code>status_code<\/code><\/td>\n<td style=\"width: 1.75219%; height: 48px;\">integer<\/td>\n<td style=\"width: 61.2015%; height: 48px;\"><i>general status code<\/i><br \/>\nyou can find the full list of the response codes <a href=\"\/v3\/appendix\/errors\">here<\/a><br \/>\n<strong>Note:<\/strong> we strongly recommend designing a necessary system for handling related exceptional or error conditions<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>general informational message<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>total <i>tasks<\/i> cost, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_error<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array returned with an error<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><strong><code>tasks<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of tasks<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>id<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>task identifier<\/em><br \/>\n<strong>unique task identifier in our system in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> format<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>status code of the task<\/em><br \/>\ngenerated by DataForSEO; can be within the following range: 10000-60000<br \/>\nyou can find the full list of the response codes <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>informational message of the task<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>cost of the task, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>result_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>number of elements in the <code>result<\/code> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>path<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>URL path<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>data<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">object<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>contains the same parameters that you specified in the POST request<br \/>\n<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><strong>\u00a0 \u00a0 \u00a0 \u00a0 <code>result<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of results<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>items_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>number of items in the results array<\/em>\n<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>items<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>items array<\/em>\n<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  \u00a0 \u00a0 <code>summary<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>generated summary<\/em><br \/>\nsummary generated by the AI model according to the parameters specified in the request<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<blockquote><p>Instead of \u2018login\u2019 and \u2018password\u2019 use your credentials from https:\/\/app.dataforseo.com\/api-access<\/p><\/blockquote><div id=\"curl\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-bash hljs\"># Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access \r\nlogin=&quot;login&quot; \r\npassword=&quot;password&quot; \r\ncred=&quot;$(printf ${login}:${password} | base64)&quot; \r\ncurl --location --request POST &quot;https:\/\/api.dataforseo.com\/v3\/serp\/ai_summary&quot; \r\n--header &quot;Authorization: Basic ${cred}&quot;  \r\n--header &quot;Content-Type: application\/json&quot; \r\n--data-raw &#039;[\r\n  {\r\n    &quot;task_id&quot;: &quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;,\r\n    &quot;prompt&quot;: &quot;explain what DataForSEO is&quot;,\r\n    &quot;include_links&quot;: true,\r\n    &quot;fetch_content&quot;: true\r\n  }\r\n]&#039;<\/code><\/pre><\/div><\/div><div id=\"php\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-php hljs\">&lt;?php\r\n\/\/ You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/php\/php_RestClient.zip\r\nrequire(&#039;RestClient.php&#039;);\r\n$api_url = &#039;https:\/\/api.dataforseo.com\/&#039;;\r\n\/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n$client = new RestClient($api_url, null, &#039;login&#039;, &#039;password&#039;);\r\n\r\n$post_array = array();\r\n\/\/ simple way to get a result\r\n$post_array[] = array(\r\n   &quot;task_id&quot; =&gt; &quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;,\r\n   &quot;prompt&quot; =&gt; &quot;explain what DataForSEO is&quot;,\r\n   &quot;include_links&quot; =&gt; true,\r\n   &quot;fetch_content&quot; =&gt; true\r\n);\r\ntry {\r\n   \/\/ POST \/v3\/serp\/ai_summary\r\n   \/\/ the full list of possible parameters is available in documentation\r\n   $result = $client-&gt;post(&#039;\/v3\/serp\/ai_summary&#039;, $post_array);\r\n   print_r($result);\r\n   \/\/ do something with post result\r\n} catch (RestClientException $e) {\r\n   echo &quot;n&quot;;\r\n   print &quot;HTTP code: {$e-&gt;getHttpCode()}n&quot;;\r\n   print &quot;Error code: {$e-&gt;getCode()}n&quot;;\r\n   print &quot;Message: {$e-&gt;getMessage()}n&quot;;\r\n   print  $e-&gt;getTraceAsString();\r\n   echo &quot;n&quot;;\r\n}\r\n\r\n$client = null;\r\n?&gt;<\/code><\/pre><\/div><\/div><div id=\"javascript\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-javascript hljs\">const post_array = [];\r\n\r\npost_array.push({\r\n  &quot;task_id&quot;: &quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;,\r\n  &quot;prompt&quot;: &quot;explain what DataForSEO is&quot;,\r\n  &quot;include_links&quot;: true,\r\n  &quot;fetch_content&quot;: true\r\n});\r\n\r\nconst axios = require(&#039;axios&#039;);\r\n\r\naxios({\r\n  method: &#039;post&#039;,\r\n  url: &#039;https:\/\/api.dataforseo.com\/v3\/serp\/ai_summary&#039;,\r\n  auth: {\r\n    username: &#039;login&#039;,\r\n    password: &#039;password&#039;\r\n  },\r\n  data: post_array,\r\n  headers: {\r\n    &#039;content-type&#039;: &#039;application\/json&#039;\r\n  }\r\n}).then(function (response) {\r\n  var result = response[&#039;data&#039;][&#039;tasks&#039;];\r\n  \/\/ Result data\r\n  console.log(result);\r\n}).catch(function (error) {\r\n  console.log(error);\r\n});<\/code><\/pre><\/div><\/div><div id=\"python\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-python hljs\">from random import Random\r\nfrom client import RestClient\r\n# You can download this file from here https:\/\/api.dataforseo.com\/v3\/_examples\/python\/_python_Client.zip\r\nclient = RestClient(&quot;login&quot;, &quot;password&quot;)\r\n\r\npost_data = dict()\r\n# simple way to get a result\r\npost_data[len(post_data)] = dict(\r\n    task_id=&quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;\r\n    prompt=&quot;explain what DataForSEO is&quot;,\r\n    include_link= true,\r\n    fetch_content= true\r\n)\r\n# POST \/v3\/serp\/ai_summary\r\n# the full list of possible parameters is available in documentation\r\nresponse = client.post(&quot;\/v3\/serp\/ai_summary&quot;, post_data)\r\n# you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\nif response[&quot;status_code&quot;] == 20000:\r\n    print(response)\r\n    # do something with result\r\nelse:\r\n    print(&quot;error. Code: %d Message: %s&quot; % (response[&quot;status_code&quot;], response[&quot;status_message&quot;]))<\/code><\/pre><\/div><\/div><div id=\"csharp\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-csharp hljs\">using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Net.Http;\r\nusing System.Net.Http.Headers;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace DataForSeoDemos\r\n{\r\n    public static partial class Demos\r\n    {\r\n        public static async Task serp_ai_summary()\r\n        {\r\n            var httpClient = new HttpClient\r\n            {\r\n                BaseAddress = new Uri(&quot;https:\/\/api.dataforseo.com\/&quot;),\r\n                \/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n                DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue(&quot;Basic&quot;, Convert.ToBase64String(Encoding.ASCII.GetBytes(&quot;login:password&quot;))) }\r\n            };\r\n            var postData = new List&lt;object&gt;();\r\n            \/\/ simple way to get a result\r\n            postData.Add(new\r\n            {\r\n                task_id = &quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;,\r\n                prompt = &quot;explain what DataForSEO is&quot;,\r\n                include_link = true,\r\n                fetch_content = true\r\n            });\r\n            \/\/ POST \/v3\/serp\/ai_summary\r\n            \/\/ the full list of possible parameters is available in documentation\r\n            var taskPostResponse = await httpClient.PostAsync(&quot;\/v3\/serp\/ai_summary&quot;, new StringContent(JsonConvert.SerializeObject(postData)));\r\n            var result = JsonConvert.DeserializeObject&lt;dynamic&gt;(await taskPostResponse.Content.ReadAsStringAsync());\r\n            \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n            if (result.status_code == 20000)\r\n            {\r\n                \/\/ do something with result\r\n                Console.WriteLine(result);\r\n            }\r\n            else\r\n                Console.WriteLine($&quot;error. Code: {result.status_code} Message: {result.status_message}&quot;);\r\n        }\r\n    }\r\n}<\/code><\/pre><\/div><\/div><blockquote><p>The above command returns JSON structured like this:<\/p><\/blockquote><div class=\"example example--json\"><div class=\"example__content\"><div class=\"example__code example__code-json\"><pre><code class=\"language-json hljs\">{\r\n  &quot;version&quot;: &quot;0.1.20221214&quot;,\r\n  &quot;status_code&quot;: 20000,\r\n  &quot;status_message&quot;: &quot;Ok.&quot;,\r\n  &quot;time&quot;: &quot;20.6765 sec.&quot;,\r\n  &quot;cost&quot;: 0.01,\r\n  &quot;tasks_count&quot;: 1,\r\n  &quot;tasks_error&quot;: 0,\r\n  &quot;tasks&quot;: [\r\n    {\r\n      &quot;id&quot;: &quot;07031743-1535-0559-0000-6e58e03c9a8a&quot;,\r\n      &quot;status_code&quot;: 20000,\r\n      &quot;status_message&quot;: &quot;Ok.&quot;,\r\n      &quot;time&quot;: &quot;20.6074 sec.&quot;,\r\n      &quot;cost&quot;: 0.01,\r\n      &quot;result_count&quot;: 1,\r\n      &quot;path&quot;: [\r\n        &quot;v3&quot;,\r\n        &quot;serp&quot;,\r\n        &quot;ai_summary&quot;\r\n      ],\r\n      &quot;data&quot;: {\r\n        &quot;api&quot;: &quot;serp&quot;,\r\n        &quot;function&quot;: &quot;ai_summary&quot;,\r\n        &quot;task_id&quot;: &quot;07031739-1535-0139-0000-9d1e639a5b7d&quot;,\r\n        &quot;prompt&quot;: &quot;explain what DataForSEO is&quot;,\r\n        &quot;include_links&quot;: true,\r\n        &quot;fetch_content&quot;: true\r\n      },\r\n      &quot;result&quot;: [\r\n        {\r\n          &quot;items_count&quot;: 1,\r\n          &quot;items&quot;: [\r\n            {\r\n              &quot;summary&quot;: &quot;DataForSEO is a powerful API stack that provides comprehensive SEO and digital marketing data solutions. It offers various APIs for different purposes, including SERP API, Google Ads API, Google Trends API, Domain Analytics API, On-Page API, DataForSEO Labs API, Backlinks API, and Merchant API.nThe SERP API allows users to get a full overview of search engine results pages (SERP) and keyword rankings for any location and language. The Google Ads API provides data from Google Keyword Planner, including daily impressions, CPC, click estimation, search volume, competition level, and more for a bulk of keywords. The Google Trends API helps eliminate guesswork by synthesizing market research and SEO data to identify, compare, and predict keyword popularity trends across various platforms like YouTube, Google Search, Images, News, and Shopping.nThe Domain Analytics API offers a 360\u00b0 overview of any website, including monitoring Whois records, competitor traffic, and tech stacks. The On-Page API provides data for on-page analytics, allowing users to analyze any website for a multitude of parameters. The DataForSEO Labs API offers advanced search analytics, providing billions of keyword ideas enriched with relevant data and search visibility analytics.nThe Backlinks API provides accurate and up-to-date backlink data from DataForSEO&#039;s rapidly growing link index. It features nine endpoints that can facilitate the process of analyzing backlinks. Lastly, the Merchant API powers up e-commerce analytics with data from Amazon and Google Shopping, providing essential data for e-commerce solutions, from pricing analysis to assortment optimization.nDataForSEO is the leading provider of SEO data in the marketing technology industry. With an API-led approach to data delivery, DataForSEO enables SEO-software companies and agencies to build their dream SEO software, from simple rank tracking solutions to enterprise-level platforms. They have over 300 happy customers and provide a reliable and efficient data provider for SEO needs. [https:\/\/dataforseo.com\/] [https:\/\/www.linkedin.com\/company\/dataforseo] [https:\/\/www.g2.com\/products\/dataforseo\/reviews]&quot;\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    }\r\n  ]\r\n}<\/code><\/pre><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text] SERP API AI Summary \u200c\u200c The purpose of the Live SERP API AI Summary endpoint is to provide a summary of the content found on any SERP and generate a response based on the user&#8217;s specified prompt. To obtain results, you have to specify task_id, which you can find in the response to the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template.php","meta":{"apibase_doc_request_yaml":"","apibase_doc_request_additional_yaml":"","apibase_doc_response_yaml":"","footnotes":""},"class_list":["post-17234","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/17234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/comments?post=17234"}],"version-history":[{"count":12,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/17234\/revisions"}],"predecessor-version":[{"id":22765,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/17234\/revisions\/22765"}],"wp:attachment":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/media?parent=17234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}