---
title: "Get Gemini LLM Responses Results by id"
url: "https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get/"
date: "2026-06-06"
---

## Get Gemini LLM Responses Results by id

  
Gemini LLM Responses endpoint allows you to retrieve structured responses from a specific Gemini model, based on the input parameters.

Tasks using the Standard method **may take up to 72 hours to complete**. If the task is not completed within this time, it is marked as failed, and the $0.01 advance is refunded. It is also important to note that if your account balance is negative, you will not receive the results even if the task is completed successfully.

 

 

 ![checked](https://docs.dataforseo.com/v3/wp-content/themes/dataforseo/assets/img/icons/checked-circle.svg) GET  https://api.dataforseo.com/v3/ai\_optimization/gemini/llm\_responses/task\_get/$id     

      

Pricing

  Your account will be charged only for posting a task. You can get the results of the task within the next 30 days for free.  
The cost can be calculated on the [Pricing](https://dataforseo.com/pricing/ai-optimization/llm-responses "Pricing") page.

 

 **Description of the fields for sending a request:**

| Field name | Type | Description |
|---|---|---|
| `id` | string | *task identifier*   **unique task identifier in our system 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 |



  
  
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*   includes the base task price plus the `money_spent` value |
| `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* |
| `model_name` | string | *name of the AI model used* |
| `input_tokens` | integer | *number of tokens in the input*   total count of tokens processed |
| `output_tokens` | integer | *number of tokens in the output*   total count of tokens generated in the AI response |
| `reasoning_tokens` | integer | *number of reasoning tokens*   total count of tokens used to generate reasoning content |
| `web_search` | boolean | *indicates if web search was used* |
| `money_spent` | float | *cost of AI tokens, USD*   the price charged by the third-party AI model provider for according to its [Pricing](https://platform.openai.com/docs/pricing) |
| `datetime` | string | *date and time when the result was received*   in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”   example:   `2019-11-15 12:57:46 +00:00` |
| `items` | array | *array of response items*   contains structured AI response data |
| **`items`** | array | *array of response items*   contains structured AI response data |
| **`reasoning`** | object | *element in the response* |
| `type` | string | *type of the element = **'reasoning'***   **Note:** this element is supported only in reasoning models and is not guaranteed to be returned |
| **`sections`** | array | *reasoning chain sections*   array of objects containing the reasoning chain sections generated by the LLM |
| `type` | string | *type of element*=***'summary\_text'*** |
| `text` | string | *text of the reasoning chain section*   text of the reasoning chain section summarizing the model's thought process |
| **`message`** | object | *element in the response* |
| `type` | string | *type of the element = **'message'*** |
| **`sections`** | array | *array of content sections*   contains different parts of the AI response |
| `type` | string | *type of element*=***'text'*** |
| `text` | string | *AI-generated text content* |
| **`annotations`** | array | *array of references used to generate the response*   equals `null` if the `web_search` parameter is not set to `true`   **Note:** `annotations` may return empty even when `web_search` is `true`, as the AI will attempt to retrieve web information but may not find relevant results |
| `title` | string | *the domain name or title of the quoted source* |
| `url` | string | *redirect URL to the quoted source*   contains a Vertex AI redirect that leads to the original source |
| `fan_out_queries` | array | *array of fan-out queries*   contains related search queries derived from the main query to provide a more comprehensive response |







  
 

 









> 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)" 
id="02031608-0696-0110-0000-a81d0414edbe" 
curl --location --request GET "https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get/${id}" 
--header "Authorization: Basic ${cred}"  
--header "Content-Type: application/json" 
--data-raw ""
```





```php
<?php

/**
 * Method: GET
 * Endpoint: https://api.dataforseo.com/v3/ai_optimization/chat_gpt/llm_responses/task_get/$id
 * @see https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_responses/task_get
 */

require_once __DIR__ . '/../../../../../lib/RestClient.php';
$config = require __DIR__ . '/../../../../../lib/config.php';

$client = new RestClient($config['base_url'], null, $config['login'], $config['password']);

try {
    $taskId = '07211938-0696-0613-0000-674a0f948d6b';
    $result = $client->get("/v3/ai_optimization/gemini/llm_responses/task_get/{$taskId}");
    print_r($result);
    // do something with get result
} catch (RestClientException $e) {
    printf(
        "HTTP code: %dnError code: %dnMessage: %snTrace: %sn",
        $e->getHttpCode(),
        $e->getCode(),
        $e->getMessage(),
        $e->getTraceAsString()
    );
}

?>
```





```js
const task_id = '02231934-2604-0066-2000-570459f04879';

const axios = require('axios');

axios({
    method: 'get',
    url: 'https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get/' + task_id,
    auth: {
        username: 'login',
        password: 'password'
    },
    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: GET
Endpoint: https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get/$id
@see https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get
"""

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)

try:
    task_id = '07211938-0696-0613-0000-674a0f948d6b'
    response = client.get(f'/v3/ai_optimization/gemini/llm_responses/task_get/{task_id}')
    print(response)
    # do something with get result
except Exception as e:
    print(f'An error occurred: {e}')
```





```csharp
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: GET
    /// Endpoint: https://api.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get
    /// </summary>
    /// <see href="https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/task_get"/>
    
    public static async Task GeminiLlmResponsesTaskGetById()
    {
		// use the task identifier that you recieved upon setting a task
	    string taskId = "07211938-0696-0613-0000-674a0f948d6b";
	    using var response = await _httpClient.GetAsync("/v3/ai_optimization/gemini/llm_responses/task_get/" + taskId);
	    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.20250724",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.0849 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "02249714-1807-0791-0000-0423e705a8rr",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.0310 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "ai_optimization",
        "gemini",
        "llm_responses",
        "task_get",
        "07241735-1535-0613-0000-0722e701b5ff"
      ],
      "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",
        "user_prompt": "provide information on how relevant the amusement park business is in France now"
      },
      "result": [
        {
          "model_name": "gemini-2.5-flash",
          "input_tokens": 68,
          "output_tokens": 241,
          "reasoning_tokens": 576,
          "web_search": true,
          "money_spent": 0.0351548,
          "datetime": "2025-07-02 14:06:32 +00:00",
          "items": [
            {
              "type": "reasoning",
              "sections": [
                {
                  "type": "summary_text",
                  "text": "**Exploring a riddle**nnThis likely refers to a riddle or joke. The classic answer seems to be a cup that's closed at the top and bottom, making it essentially useless. Or, is it a trophy cup or even a cupcake? I need to think through this riddle: I have a cup with no bottom and a closed top. How can I drink from it? The punchline might simply be that you can't drink from it. Hm, I wonder if there might be other interpretations too!"
                },
                {
                  "type": "summary_text",
                  "text": "**Pondering a riddle’s meaning**nnI’m considering if this cup could also mean something like hiccup — closed at the top and bottom? But if there’s no bottom, anything liquid just falls out. A closed top means you can’t pour anything in. So it may not be a traditional drinking cup. Maybe it’s an acorn cup, although it has an open top. The joke could suggest inverting it, but that still leaves it open. I’m not sure how it all ties back to drinking from it!"
                },
                {
                  "type": "summary_text",
                  "text": "**Clarifying the riddle’s punchline**nnSo, the answer seems to be that you're meant to drink from the rim, but since there’s no bottom and the top is closed, it's impossible to do that. The correct response points to a thimble instead, which has an open bottom. The punchline is clear: You can't drink; it's a thimble. The riddle plays on the expectation of a witty response. To keep it light, I could say, You don't! That's a thimble! and add a playful tone."
                }
              ]
            },
            {
              "type": "message",
              "sections": [
                {
                  "type": "text",
                  "text": "The amusement park business in France is highly relevant and a significant part of the country's tourism and leisure industry. Here's a breakdown of its current relevance:nn**1. Market Size and Growth:**n*   The French amusement parks market generated a revenue of USD 3,249.3 million in 2024.n*   It is projected to reach USD 4,274.3 million by 2030, demonstrating a compound annual growth rate (CAGR) of 4.4% from 2025 to 2030.n*   France accounted for 3.2% of the global amusement parks market in 2024.n*   In Europe, the French amusement parks market is expected to lead in terms of revenue by 2030 and is projected to be the fastest-growing regional market.nn**",
                  "annotations": [
                    {
                      "title": "grandviewresearch.com",
                      "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE4kVSlqaUzZmAm6xWUASs0ppDa88LJ3WrthsLwppW3uzY6ROF9gQAeT1Q85e5W4etkjCovvSU8ygGEPgCcs0eC46cdz8IOjbyGJXbAvC5UPmsL2MWW5nCMa7JNk7rsMimpbiBDyXzpO_YZCecF-egFpoGFq3UN-GQ8wlYKgpZ7Z7kP8uHLWc2eOw=="
                    }
                  ]
                }
              ]
            }
          ],
          "fan_out_queries": [
            "amusement park business France current relevance",
            "amusement park industry France market size 2023 2024",
            "number of amusement parks in France 2023",
            "amusement park attendance France 2023",
            "trends in French amusement park industry"
          ]
        }
      ]
    }
  ]
}
```









 

  cURL   php   Node.js   Python   cSharp