The cost of the task can be calculated on the Pricing page.
Live Gemini LLM Responses
Live Gemini LLM Responses endpoint allows you to retrieve structured responses from a specific Gemini AI model, based on the input parameters.
Live Gemini LLM Responses endpoint allows you to retrieve structured responses from a specific Gemini AI model, based on the input parameters.
The cost of the task 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 Gemini LLM Responses call can contain only one task.
The number of concurrent Live tasks is currently limited to 30 per account for each platform in the LLM Responses.
Execution time for tasks set with the Live Gemini LLM Responses endpoint is currently up to 120 seconds.
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 |
|---|---|---|
user_prompt | string | prompt for the AI model |
model_name | string | name of the AI model |
max_output_tokens | integer | maximum number of tokens in the AI response |
temperature | float | randomness of the AI response |
top_p | float | diversity of the AI response |
web_search | boolean | enable web search for current information |
system_message | string | instructions for the AI behavior |
message_chain | array | conversation history |
use_reasoning | boolean | enable reasoning for the AI model |
tag | string | user-defined task identifier |
tasks array with the information specific to the set tasks.| 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 |
model_name | string | name of the AI model used |
input_tokens | integer | number of tokens in the input |
output_tokens | integer | number of tokens in the output |
reasoning_tokens | integer | number of reasoning tokens |
web_search | boolean | indicates if web search was used |
money_spent | float | cost of AI tokens, USD |
datetime | string | date and time when the result was received |
items | array | array of response items |
reasoning | object | element in the response |
type | string | type of the element = 'reasoning' |
sections | array | reasoning chain sections |
type | string | type of element='summary_text' |
text | string | text of the reasoning chain section |
message | object | element in the response |
type | string | type of the element = 'message' |
sections | array | array of content sections |
type | string | type of element='text' |
text | string | AI-generated text content |
annotations | array | array of references used to generate the response |
title | string | the domain name or title of the quoted source |
url | string | redirect URL to the quoted source |
direct_url | string | direct URL to the quoted source |
start_index | integer | start of the annotation indexing |
end_index | integer | end of the annotation indexing |
text | string | annotated part of the quoted source |
fan_out_queries | array | array of fan-out queries |
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/ai_optimization/gemini/llm_responses/live"
--header "Authorization: Basic ${cred}"
--header "Content-Type: application/json"
--data-raw '[
{
"system_message": "communicate as if we are in a business meeting",
"message_chain": [
{
"role": "user",
"message": "Hello, what’s up?"
},
{
"role": "ai",
"message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?"
}
],
"max_output_tokens": 200,
"temperature": 0.3,
"top_p": 0.5,
"model_name": "gemini-2.5-flash",
"web_search": true,
"user_prompt": "provide information on how relevant the amusement park business is in France now"
}
]'<?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/';
try {
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
$client = new RestClient($api_url, null, 'login', 'password');
} 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";
exit();
}
$post_array = array();
// You can set only one task at a time
$post_array[] = array(
"system_message" => "communicate as if we are in a business meeting",
"message_chain" => [
[
"role" => "user",
"message" => "Hello, what's up?"
],
[
"role" => "ai",
"message" => "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?"
]
],
"max_output_tokens" => 200,
"temperature" => 0.3,
"top_p" => 0.5,
"model_name" => "gemini-2.5-flash",
"web_search" => true,
"user_prompt" => "provide information on how relevant the amusement park business is in France now"
);
if (count($post_array) > 0) {
try {
// POST /v3/ai_optimization/gemini/llm_responses/live
// in addition to 'google' and 'ai_mode' you can also set other search engine and type parameters
// the full list of possible parameters is available in documentation
$result = $client->post('/v3/ai_optimization/gemini/llm_responses/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 axios = require('axios');
axios({
method: 'post',
url: 'https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live',
auth: {
username: 'login',
password: 'password'
},
data: [{
system_message: encodeURI("communicate as if we are in a business meeting"),
message_chain: [
{
role: "user",
message: "Hello, what’s up?"
},
{
role: "ai",
message: encodeURI("Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?")
}
],
max_output_tokens: 200,
temperature: 0.3,
top_p: 0.5,
model_name: "gemini-2.5-flash",
web_search: true,
user_prompt: encodeURI("provide information on how relevant the amusement park business is in France now")
}],
headers: {
'content-type': 'application/json'
}
}).then(function (response) {
var result = response['data']['tasks'];
// Result data
console.log(result);
}).catch(function (error) {
console.log(error);
});"""
Method: POST
Endpoint: https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live
@see https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live
"""
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../../../')))
from lib.client import RestClient
from lib.config import username, password
client = RestClient(username, password)
post_data = []
post_data.append({
'system_message': 'communicate as if we are in a business meeting',
'message_chain': [
{
'role': 'user',
'message': 'Hello, what's up?'
},
{
'role': 'ai',
'message': 'Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?'
}
],
'max_output_tokens': 200,
'temperature': 0.3,
'top_p': 0.5,
'model_name': 'gemini-2.5-flash',
'web_search': True,
'user_prompt': 'provide information on how relevant the amusement park business is in France now'
})
try:
response = client.post('/v3/ai_optimization/gemini/llm_responses/live', post_data)
print(response)
# do something with post result
except Exception as e:
print(f'An error occurred: {e}')using System;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace DataForSeoSdk;
public class AiOptimization
{
private static readonly HttpClient _httpClient;
static AiOptimization()
{
_httpClient = new HttpClient
{
BaseAddress = new Uri("https://api.dataforseo.com/")
};
_httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic", ApiConfig.Base64Auth);
}
/// <summary>
/// Method: POST
/// Endpoint: https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live
/// </summary>
/// <see href="https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live"/>
public static async Task GeminiLlmResponsesLive()
{
var postData = new List<object>();
// a simple way to set a task, the full list of possible parameters is available in documentation
postData.Add(new
{
system_message = "communicate as if we are in a business meeting",
message_chain = new object[]
{
new
{
role = "user",
message = "Hello, what's up?"
},
new
{
role = "ai",
message = "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?"
}
},
max_output_tokens = 200,
temperature = 0.3,
top_p = 0.5,
model_name = "gemini-2.5-flash",
web_search = true,
user_prompt = "provide information on how relevant the amusement park business is in France now"
});
var content = new StringContent(JsonConvert.SerializeObject(postData), Encoding.UTF8, "application/json");
using var response = await _httpClient.PostAsync("/v3/ai_optimization/gemini/llm_responses/live", content);
var result = JsonConvert.DeserializeObject<dynamic>(await response.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.20260903",
"status_code": 20000,
"status_message": "Ok.",
"time": "3.8357 sec.",
"cost": 0.036219,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "09041216-1444-0612-0000-7eaf4493f783",
"status_code": 20000,
"status_message": "Ok.",
"time": "3.0487 sec.",
"cost": 0.036219,
"result_count": 1,
"path": [
"v3",
"ai_optimization",
"gemini",
"llm_responses",
"live"
],
"data": {
"api": "ai_optimization",
"function": "llm_responses",
"se": "gemini",
"system_message": "communicate as if we are in a business meeting",
"message_chain": [
{
"role": "user",
"message": "Hello, what's up?"
},
{
"role": "ai",
"message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?"
}
],
"max_output_tokens": 200,
"temperature": 0.3,
"top_p": 0.5,
"model_name": "gemini-2.5-flash",
"web_search": true,
"user_prompt": "provide information on how relevant the amusement park business is in France now"
},
"result": [
{
"model_name": "gemini-2.5-flash",
"input_tokens": 180,
"output_tokens": 226,
"reasoning_tokens": 0,
"web_search": true,
"money_spent": 0.035619,
"datetime": "2026-09-04 12:16:38 +00:00",
"items": [
{
"type": "message",
"sections": [
{
"type": "text",
"text": "The amusement park business in France is a significant and growing industry, demonstrating strong relevance in the current market. Here's a breakdown of its key aspects:nn**Market Size and Growth:**n* The French amusement parks market generated an estimated revenue of USD 3,601.9 million in 2025.n* It is projected to reach USD 5,023.1 million by 2033, growing at a Compound Annual Growth Rate (CAGR) of 4% from 2026 to 2033.n* In 2025, France accounted for 3.4% of the global amusement parks market revenue.n* Within Europe, France is expected to lead the regional market in terms of revenue by 2033 and is projected to be the fastest-growing regional market",
"annotations": [
{
"title": "grandviewresearch.com",
"url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFGFBpWd9vCZdJPQcb8I-VR4gzqM86zOtr1Lnqxj-49n83scQUMGFM1PjHEDueualMXbXidaRKcYoaXlAXBBINoXA2sBmLgTnhcQR4UwpXrbPRrMDBrTqNKxm84J0eOkxY1zpEQdJ97p-Dj1bdjIYQLO915HClxAeqgEtIwgfRtDqKPtkbC2Hy-HNM=",
"direct_url": "https://www.grandviewresearch.com/horizon/outlook/amusement-parks-market/france",
"start_index": 171,
"end_index": 299,
"text": "**Market Size and Growth:**n* The French amusement parks market generated an estimated revenue of USD 3,601.9 million in 2025."
},
{
"title": "grandviewresearch.com",
"url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFGFBpWd9vCZdJPQcb8I-VR4gzqM86zOtr1Lnqxj-49n83scQUMGFM1PjHEDueualMXbXidaRKcYoaXlAXBBINoXA2sBmLgTnhcQR4UwpXrbPRrMDBrTqNKxm84J0eOkxY1zpEQdJ97p-Dj1bdjIYQLO915HClxAeqgEtIwgfRtDqKPtkbC2Hy-HNM=",
"direct_url": "https://www.grandviewresearch.com/horizon/outlook/amusement-parks-market/france",
"start_index": 300,
"end_index": 430,
"text": "* It is projected to reach USD 5,023.1 million by 2033, growing at a Compound Annual Growth Rate (CAGR) of 4% from 2026 to 2033."
},
{
"title": "grandviewresearch.com",
"url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFGFBpWd9vCZdJPQcb8I-VR4gzqM86zOtr1Lnqxj-49n83scQUMGFM1PjHEDueualMXbXidaRKcYoaXlAXBBINoXA2sBmLgTnhcQR4UwpXrbPRrMDBrTqNKxm84J0eOkxY1zpEQdJ97p-Dj1bdjIYQLO915HClxAeqgEtIwgfRtDqKPtkbC2Hy-HNM=",
"direct_url": "https://www.grandviewresearch.com/horizon/outlook/amusement-parks-market/france",
"start_index": 431,
"end_index": 515,
"text": "* In 2025, France accounted for 3.4% of the global amusement parks market revenue."
}
]
}
]
}
],
"fan_out_queries": [
"amusement park business France current relevance",
"amusement park industry France market size",
"amusement park attendance France recent data",
"trends in French amusement park industry"
]
}
]
}
]
}