curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"target": [
{
"domain": "<string>",
"keyword": "<string>",
"search_filter": "<string>",
"search_scope": [
"<string>"
],
"include_subdomains": true,
"match_type": "<string>"
}
],
"location_name": "<string>",
"location_code": 123,
"language_name": "<string>",
"language_code": "<string>",
"platform": "<string>",
"filters": [
"<unknown>"
],
"order_by": [
"<string>"
],
"offset": 123,
"search_after_token": "<string>",
"limit": 123,
"tag": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live"
payload = [
{
"target": [
{
"domain": "<string>",
"keyword": "<string>",
"search_filter": "<string>",
"search_scope": ["<string>"],
"include_subdomains": True,
"match_type": "<string>"
}
],
"location_name": "<string>",
"location_code": 123,
"language_name": "<string>",
"language_code": "<string>",
"platform": "<string>",
"filters": ["<unknown>"],
"order_by": ["<string>"],
"offset": 123,
"search_after_token": "<string>",
"limit": 123,
"tag": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
target: [
{
domain: '<string>',
keyword: '<string>',
search_filter: '<string>',
search_scope: ['<string>'],
include_subdomains: true,
match_type: '<string>'
}
],
location_name: '<string>',
location_code: 123,
language_name: '<string>',
language_code: '<string>',
platform: '<string>',
filters: ['<unknown>'],
order_by: ['<string>'],
offset: 123,
search_after_token: '<string>',
limit: 123,
tag: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'target' => [
[
'domain' => '<string>',
'keyword' => '<string>',
'search_filter' => '<string>',
'search_scope' => [
'<string>'
],
'include_subdomains' => true,
'match_type' => '<string>'
]
],
'location_name' => '<string>',
'location_code' => 123,
'language_name' => '<string>',
'language_code' => '<string>',
'platform' => '<string>',
'filters' => [
'<unknown>'
],
'order_by' => [
'<string>'
],
'offset' => 123,
'search_after_token' => '<string>',
'limit' => 123,
'tag' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live"
payload := strings.NewReader("[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks.id": "<string>",
"tasks.status_code": 123,
"tasks.status_message": "<string>",
"tasks.time": "<string>",
"tasks.cost": 123,
"tasks.result_count": 123,
"tasks.path": [
"<string>"
],
"tasks.data": {},
"tasks.result": [
"<string>"
],
"tasks.result.total_count": 123,
"tasks.result.current_offset": 123,
"tasks.result.search_after_token": "<string>",
"tasks.result.items_count": 123,
"tasks.result.items": [
"<string>"
],
"tasks.result.items.platform": "<string>",
"tasks.result.items.model_name": "<string>",
"tasks.result.items.location_code": 123,
"tasks.result.items.language_code": "<string>",
"tasks.result.items.question": "<string>",
"tasks.result.items.answer": "<string>",
"tasks.result.items.sources": [
"<string>"
],
"tasks.result.items.sources.snippet": "<string>",
"tasks.result.items.sources.source_name": "<string>",
"tasks.result.items.sources.thumbnail": "<string>",
"tasks.result.items.sources.markdown": "<string>",
"tasks.result.items.sources.position": 123,
"tasks.result.items.sources.title": "<string>",
"tasks.result.items.sources.domain": "<string>",
"tasks.result.items.sources.url": "<string>",
"tasks.result.items.sources.publication_date": "<string>",
"tasks.result.items.search_results": [
"<string>"
],
"tasks.result.items.search_results.description": "<string>",
"tasks.result.items.search_results.breadcrumb": "<string>",
"tasks.result.items.search_results.position": 123,
"tasks.result.items.search_results.title": "<string>",
"tasks.result.items.search_results.domain": "<string>",
"tasks.result.items.search_results.url": "<string>",
"tasks.result.items.search_results.publication_date": "<string>",
"tasks.result.items.ai_search_volume": 123,
"tasks.result.items.monthly_searches": [
"<string>"
],
"tasks.result.items.monthly_searches.year": 123,
"tasks.result.items.monthly_searches.month": 123,
"tasks.result.items.monthly_searches.search_volume": 123,
"tasks.result.items.first_response_at": "<string>",
"tasks.result.items.last_response_at": "<string>",
"tasks.result.items.brand_entities": [
"<string>"
],
"tasks.result.items.brand_entities.position": 123,
"tasks.result.items.brand_entities.title": "<string>",
"tasks.result.items.brand_entities.category": "<string>",
"tasks.result.items.fan_out_queries": [
"<string>"
]
}Live LLM Mentions
The individual answers in which an assistant mentioned your target.
curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"target": [
{
"domain": "<string>",
"keyword": "<string>",
"search_filter": "<string>",
"search_scope": [
"<string>"
],
"include_subdomains": true,
"match_type": "<string>"
}
],
"location_name": "<string>",
"location_code": 123,
"language_name": "<string>",
"language_code": "<string>",
"platform": "<string>",
"filters": [
"<unknown>"
],
"order_by": [
"<string>"
],
"offset": 123,
"search_after_token": "<string>",
"limit": 123,
"tag": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live"
payload = [
{
"target": [
{
"domain": "<string>",
"keyword": "<string>",
"search_filter": "<string>",
"search_scope": ["<string>"],
"include_subdomains": True,
"match_type": "<string>"
}
],
"location_name": "<string>",
"location_code": 123,
"language_name": "<string>",
"language_code": "<string>",
"platform": "<string>",
"filters": ["<unknown>"],
"order_by": ["<string>"],
"offset": 123,
"search_after_token": "<string>",
"limit": 123,
"tag": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
target: [
{
domain: '<string>',
keyword: '<string>',
search_filter: '<string>',
search_scope: ['<string>'],
include_subdomains: true,
match_type: '<string>'
}
],
location_name: '<string>',
location_code: 123,
language_name: '<string>',
language_code: '<string>',
platform: '<string>',
filters: ['<unknown>'],
order_by: ['<string>'],
offset: 123,
search_after_token: '<string>',
limit: 123,
tag: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'target' => [
[
'domain' => '<string>',
'keyword' => '<string>',
'search_filter' => '<string>',
'search_scope' => [
'<string>'
],
'include_subdomains' => true,
'match_type' => '<string>'
]
],
'location_name' => '<string>',
'location_code' => 123,
'language_name' => '<string>',
'language_code' => '<string>',
'platform' => '<string>',
'filters' => [
'<unknown>'
],
'order_by' => [
'<string>'
],
'offset' => 123,
'search_after_token' => '<string>',
'limit' => 123,
'tag' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live"
payload := strings.NewReader("[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"target\": [\n {\n \"domain\": \"<string>\",\n \"keyword\": \"<string>\",\n \"search_filter\": \"<string>\",\n \"search_scope\": [\n \"<string>\"\n ],\n \"include_subdomains\": true,\n \"match_type\": \"<string>\"\n }\n ],\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"platform\": \"<string>\",\n \"filters\": [\n \"<unknown>\"\n ],\n \"order_by\": [\n \"<string>\"\n ],\n \"offset\": 123,\n \"search_after_token\": \"<string>\",\n \"limit\": 123,\n \"tag\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks.id": "<string>",
"tasks.status_code": 123,
"tasks.status_message": "<string>",
"tasks.time": "<string>",
"tasks.cost": 123,
"tasks.result_count": 123,
"tasks.path": [
"<string>"
],
"tasks.data": {},
"tasks.result": [
"<string>"
],
"tasks.result.total_count": 123,
"tasks.result.current_offset": 123,
"tasks.result.search_after_token": "<string>",
"tasks.result.items_count": 123,
"tasks.result.items": [
"<string>"
],
"tasks.result.items.platform": "<string>",
"tasks.result.items.model_name": "<string>",
"tasks.result.items.location_code": 123,
"tasks.result.items.language_code": "<string>",
"tasks.result.items.question": "<string>",
"tasks.result.items.answer": "<string>",
"tasks.result.items.sources": [
"<string>"
],
"tasks.result.items.sources.snippet": "<string>",
"tasks.result.items.sources.source_name": "<string>",
"tasks.result.items.sources.thumbnail": "<string>",
"tasks.result.items.sources.markdown": "<string>",
"tasks.result.items.sources.position": 123,
"tasks.result.items.sources.title": "<string>",
"tasks.result.items.sources.domain": "<string>",
"tasks.result.items.sources.url": "<string>",
"tasks.result.items.sources.publication_date": "<string>",
"tasks.result.items.search_results": [
"<string>"
],
"tasks.result.items.search_results.description": "<string>",
"tasks.result.items.search_results.breadcrumb": "<string>",
"tasks.result.items.search_results.position": 123,
"tasks.result.items.search_results.title": "<string>",
"tasks.result.items.search_results.domain": "<string>",
"tasks.result.items.search_results.url": "<string>",
"tasks.result.items.search_results.publication_date": "<string>",
"tasks.result.items.ai_search_volume": 123,
"tasks.result.items.monthly_searches": [
"<string>"
],
"tasks.result.items.monthly_searches.year": 123,
"tasks.result.items.monthly_searches.month": 123,
"tasks.result.items.monthly_searches.search_volume": 123,
"tasks.result.items.first_response_at": "<string>",
"tasks.result.items.last_response_at": "<string>",
"tasks.result.items.brand_entities": [
"<string>"
],
"tasks.result.items.brand_entities.position": 123,
"tasks.result.items.brand_entities.title": "<string>",
"tasks.result.items.brand_entities.category": "<string>",
"tasks.result.items.fan_out_queries": [
"<string>"
]
}total_count, current_offset, search_after_token and items - page with the token, not offset, past the first pages. Measured at 7.7 KB for one item. ⚠️ target is an array of objects, each {"domain": "..."} or {"keyword": "..."}; a bare string is rejected as the wrong type and an array of strings as ‘Each target item must be an object’. Filter fields come from get_dataforseo_ai_llm_mentions_available_filters. Wrapped in DataForSEO’s envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200. For counts rather than the mentions themselves use post_dataforseo_ai_llm_mentions_aggregated_metrics_live.
Example
curl -X POST "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/llm_mentions/search/live" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[{"target": "...", "domain_entity": "...", "domain": "..."}]'
// Copy this whole block into Claude Code, Codex, Cursor or any coding agent.
// It carries everything needed to connect, authorize and run this example —
// no key to paste, one click of Allow in the browser.
{
"operation_id": "post_dataforseo_ai_llm_mentions_search_live",
"arguments": {},
"max_price_usd": 0.05
}
// ── for the agent ─────────────────────────────────────────────────────────
// Register the AIsa MCP server, then call its `use` tool with the JSON above.
// name aisa
// endpoint https://mcp.aisa.one/mcp
// transport streamable-http
// auth OAuth. The server publishes RFC 9728 metadata, so open a
// browser and the user clicks Allow once — nothing to paste.
// If AISA_API_KEY is set, send it as a bearer header instead.
// Use your own MCP mechanism, not a hand-edited config file:
// Codex codex mcp add aisa --url https://mcp.aisa.one/mcp
// Claude Code claude mcp add --transport http -s user aisa https://mcp.aisa.one/mcp
// Cursor / VS Code a "url" entry for https://mcp.aisa.one/mcp in the MCP config
// The server lists five tools over https://mcp.aisa.one/servers worth of APIs:
// search, get_details, use, batch_use, list_categories. search and
// get_details are free; use is billed per call and max_price_usd refuses
// anything above the cap before spending. This operation's full contract —
// every argument, the response shape, the price and the pitfalls — is at
// https://aisa.one/docs/api-reference/dataforseo/post_dataforseo-ai-optimization-llm-mentions-search-live.md
// Then run the call and show me the result.
https://mcp.aisa.one/mcp — Claude
Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
opens a browser, you click Allow once, and there is no key to paste. The
commands per client, and what each call costs, are on
aisa.one/mcp.Cost and request rules
Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.701
- Cost contract: response_usd
- Published reference multiplier: 1.0
- Settlement evidence source: response_body
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
array of objects containing target entities required field you can specify up to 10 entities (objects) in the target field one target entity can contain either one domain or one keyword and related parametersexamples: target array with a domain entity [{"domain": "en.wikipedia.org", "search_filter": "exclude"}] target array with a keyword entity [{"keyword": "bmw", "search_scope": ["question"], "match_type ": "partial_match"}] target array with multiple entities [{"domain": "en.wikipedia.org", "search_filter": "exclude"}, {"keyword": "bmw", "match_type ": "partial_match", "search_scope": ["answer"]}]
- Option 1
- Option 2
Show child attributes
Show child attributes
full name of search location optional field if you use this field, you don't need to specify location_code if you don't specify this field, the location_code with 2840 value will be used by default; you can receive the list of available locations of the search engine with their location_name by making a separate request to the https://api.dataforseo.com/v3/ai_optimization/llm_mentions/locations_and_languages Note: chat_gpt data is available for United States only
search location code optional field if you use this field, you don't need to specify location_name you can receive the list of available locations of the search engine with their location_code by making a separate request to the https://api.dataforseo.com/v3/ai_optimization/llm_mentions/locations_and_languages default value: 2840 Note: chat_gpt data is available for 2840 only
full name of search language optional field if you use this field, you don't need to specify language_code; if you don't specify this field, the language_code with en value will be used by default; you can receive the list of available languages of the search engine with their language_name by making a separate request to the https://api.dataforseo.com/v3/ai_optimization/llm_mentions/locations_and_languages Note: chat_gpt data is available for English only
search language code optional field if you use this field, you don't need to specify language_name; you can receive the list of available languages of the search engine with their language_code_by making a separate request to the https://api.dataforseo.com/v3/ai_optimization/llm_mentions/locations_and_languages default value: en Note: chat_gpt data is available for en onlyn
target platform optional field possible values: chat_gpt, google default value: google Note: the data returned depends on the selected platform Note #2:chat_gpt data is available for the United States and English only
array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: =, , in, not_in, like, not_like, ilike, not_ilike, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["ai_search_volume",">","1000"]The full list of possible filters is available here.
results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order you should use a comma to set up a sorting type example: ["ai_search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules
offset in the results array of the returned mentions data optional fielddefault value: 0 example: if you specify the 10 value, the first ten mentions objects in the results array will be omitted and the data will be provided for the successive objects; Note: the maximum value is 9,000, use the search_after_token if you would like to offset more results
token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 20,000 results in a single request; by specifying the unique search_after_token value from the response array, you will get the subsequent results of the initial task; search_after_token values are unique for each subsequent task ; Note: if the search_after_token is specified in the request, all other parameters should be identical to the previous request
the maximum number of returned objects optional fielddefault value: 100 maximum value: 1000
user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response
Response
Successful response
the current version of the API
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
general informational message you can find the full list of general informational messages here
execution time, seconds
total tasks cost, USD
the number of tasks in the tasks array
the number of tasks in the tasks array returned with an error
array of tasks
task identifier unique task identifier in our system in the UUID format
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
informational message of the task you can find the full list of general informational messages here
execution time, seconds
cost of the task, USD
number of elements in the result array
URL path
contains the same parameters that you specified in the POST request
array of results
total amount of results relevant the request
the number of mentions objects that are omitted in the items array
token for subsequent requests by specifying the unique search_after_token when setting a new task, you will get the subsequent results of the initial task; search_after_token values are unique for each subsequent task
the number of results returned in the items array
contains relevant mentions data
platform received in a POST array
name of the AI model from which the data was retrieved Note: for the google platform type, the value is always google_ai_overview
location code in a POST array
language code in a POST array
relevant question
relevant answer in markdown format content of the result formatted in the markdown markup language
array of sources the sources the model cited or relied on in its final answer
source description
source name
source thumbnail
content of the element in markdown format content of the result formatted in the markdown markup language
position in the results
source title
source domain
source URL
date and time when the result was published in the format: “year-month-date:minutes:UTC_difference_hours:UTC_difference_minutes” example: 2019-11-15 12:57:46 +00:00
array of search results all web search outputs the model retrieved when looking up information, including duplicates and unused entries
result description
breadcrumb
position in the results
result title
result domain
result URL
date and time when the result was published in the format: “year-month-date:minutes:UTC_difference_hours:UTC_difference_minutes” example: 2019-11-15 12:57:46 +00:00
current AI search volume rate of a keyword learn more about this metric here
monthly AI search volume rates array of objects with AI search volume rates in a certain month of a year
year
month
AI search volume rate in a certain month of a year learn more about this metric here
date and time when the response data was first recorded in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00” example: 2025-10-21 06:25:30 +00:00
date and time when the response data was last updated in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00” example: 2025-10-21 06:25:30 +00:00
array of brand entities contains information on brands mentioned in the response
position in the results
name of the brand
category of the brand
array of fan-out queries contains related search queries derived from the main query to provide a more comprehensive response