---
title: "SERP API AI Summary"
url: "https://docs.dataforseo.com/v3/serp/ai_summary"
date: "2026-06-06"
---

## 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.](https://dataforseo.com/help-center/how-does-ai-summary-endpoint-of-serp-api-work)

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

 

 

 ![checked](https://docs.dataforseo.com/v3/wp-content/themes/dataforseo/assets/img/icons/checked-circle.svg) POST  https://api.dataforseo.com/v3/serp/ai\_summary     

      

Pricing

  Your account will be charged $0.01 for each request.

 

 All POST data should be sent in the [JSON](https://en.wikipedia.org/wiki/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 name | Type | Description |
|---|---|---|
| `task_id` | string | *task identifier*   **required field**   unique identifier of the associated task in the [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format   you will be able to use it within **30 days** to request the results of the task at any time |
| `prompt` | string | *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_extra` | boolean | *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_content` | boolean | *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_links` | boolean | *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](https://en.wikipedia.org/wiki/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*   you can find the full list of the response codes [here](https://docs.dataforseo.com/v3/appendix/errors.md)   **Note:** we strongly recommend designing a necessary system for handling related exceptional or error conditions |
| `status_message` | string | *general informational message*   you can find the full list of general informational messages [here](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `time` | string | *execution time, seconds* |
| `cost` | float | *total *tasks* cost, USD* |
| `tasks_count` | integer | *the number of tasks in the **`tasks`** array* |
| `tasks_error` | integer | *the number of tasks in the **`tasks`** array returned with an error* |
| **`tasks`** | array | *array of tasks* |
| `id` | string | *task identifier*   **unique task identifier in our system in the [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format** |
| `status_code` | integer | *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](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `status_message` | string | *informational message of the task*   you can find the full list of general informational messages [here](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `time` | string | *execution time, seconds* |
| `cost` | float | *cost of the task, USD* |
| `result_count` | integer | *number of elements in the `result` array* |
| `path` | array | *URL path* |
| `data` | object | *contains the same parameters that you specified in the POST request* |
| **`result`** | array | *array of results* |
| `items_count` | integer | *number of items in the results array* |
| `items` | array | *items array* |
| `summary` | string | *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
<?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;
?>
```





```js
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);
});
```





```python
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"]))
```





```csharp
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]"
            }
          ]
        }
      ]
    }
  ]
}
```









 

  cURL   php   Node.js   Python   cSharp