SERP API AI Summary

‌‌
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’s specified prompt.
To obtain results, you have to specify task_id, which you can find in the response to the POST request.
Learn more in our Help Center.

Your account will be charged for each request to this endpoint.

checked POST
Pricing

Your account will be charged $0.01 for each request.

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.

Description of the fields for setting a task:

Field nameTypeDescription
task_idstring

task identifier
required field
unique identifier of the associated task in the UUID format
you will be able to use it within 30 days to request the results of the task at any time

promptstring

AI prompt
optional field
additional task for AI summariser;
any form of text, question or information that communicates to AI what response you're looking for;
max number of symbols or characters you can specify: 2000;
note: your prompt has to be relevant to the keyword specified in the POST request to SERP API

support_extraboolean

support extra SERP features
optional field
if set to true, the AI model will consider the following extra SERP features, in addition to organic results: answer_box, knowledge_graph, featured_snippet;
default value: true

fetch_contentboolean

fetch content from pages in SERPs
optional field
if set to true, 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;
default value: false

include_linksboolean

include source links in the summary
optional field
if set to true, the summary field in the API response will contain links to sources of the generated summary;
default value: false


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 nameTypeDescription
versionstring

the current version of the API

status_codeinteger

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

status_messagestring

general informational message
you can find the full list of general informational messages here

timestring

execution time, seconds

costfloat

total tasks cost, USD

tasks_countinteger

the number of tasks in the tasks array

tasks_errorinteger

the number of tasks in the tasks array returned with an error

tasksarray

array of tasks

    idstring

task identifier
unique task identifier in our system in the UUID format

    status_codeinteger

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

    status_messagestring

informational message of the task
you can find the full list of general informational messages here

    timestring

execution time, seconds

    costfloat

cost of the task, USD

    result_countinteger

number of elements in the result array

    patharray

URL path

    dataobject

contains the same parameters that you specified in the POST request

resultarray

array of results

    items_countinteger

number of items in the results array

    itemsarray

items array

        summarystring

generated summary
summary generated by the AI model according to the parameters specified in the request


‌‌

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/serp/ai_summary" 
--header "Authorization: Basic ${cred}"  
--header "Content-Type: application/json" 
--data-raw '[
  {
    "task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
    "prompt": "explain what DataForSEO is",
    "include_links": true,
    "fetch_content": true
  }
]'
<?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 get a result
$post_array[] = array(
   "task_id" => "07031739-1535-0139-0000-9d1e639a5b7d",
   "prompt" => "explain what DataForSEO is",
   "include_links" => true,
   "fetch_content" => true
);
try {
   // POST /v3/serp/ai_summary
   // the full list of possible parameters is available in documentation
   $result = $client->post('/v3/serp/ai_summary', $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({
  "task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
  "prompt": "explain what DataForSEO is",
  "include_links": true,
  "fetch_content": true
});

const axios = require('axios');

axios({
  method: 'post',
  url: 'https://api.dataforseo.com/v3/serp/ai_summary',
  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 random import Random
from client import RestClient
# You can download this file from here https://api.dataforseo.com/v3/_examples/python/_python_Client.zip
client = RestClient("login", "password")

post_data = dict()
# simple way to get a result
post_data[len(post_data)] = dict(
    task_id="07031739-1535-0139-0000-9d1e639a5b7d"
    prompt="explain what DataForSEO is",
    include_link= true,
    fetch_content= true
)
# POST /v3/serp/ai_summary
# the full list of possible parameters is available in documentation
response = client.post("/v3/serp/ai_summary", 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 serp_ai_summary()
        {
            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>();
            // simple way to get a result
            postData.Add(new
            {
                task_id = "07031739-1535-0139-0000-9d1e639a5b7d",
                prompt = "explain what DataForSEO is",
                include_link = true,
                fetch_content = true
            });
            // POST /v3/serp/ai_summary
            // the full list of possible parameters is available in documentation
            var taskPostResponse = await httpClient.PostAsync("/v3/serp/ai_summary", 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.20221214",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "20.6765 sec.",
  "cost": 0.01,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "07031743-1535-0559-0000-6e58e03c9a8a",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "20.6074 sec.",
      "cost": 0.01,
      "result_count": 1,
      "path": [
        "v3",
        "serp",
        "ai_summary"
      ],
      "data": {
        "api": "serp",
        "function": "ai_summary",
        "task_id": "07031739-1535-0139-0000-9d1e639a5b7d",
        "prompt": "explain what DataForSEO is",
        "include_links": true,
        "fetch_content": true
      },
      "result": [
        {
          "items_count": 1,
          "items": [
            {
              "summary": "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° 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'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]"
            }
          ]
        }
      ]
    }
  ]
}