List tasks in a batch
curl --request GET \
--url https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks', 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.valyu.ai/v1/deepresearch/batches/{id}/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"batch_id": "batch_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tasks": [
{
"deepresearch_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"query": "Analyze Tesla Q4 2024 earnings",
"created_at": "2024-06-15T10:30:00.000Z",
"task_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"output_type": "markdown",
"output": "## Tesla Q4 2025 Earnings Analysis\n\n...",
"sources": [
{}
],
"images": [
{}
],
"pdf_url": "https://example.com/reports/illustrative-report.pdf",
"deliverables": [
{}
],
"error": "Task exceeded maximum execution time",
"cost": 1
}
],
"pagination": {
"count": 10,
"has_more": false,
"last_key": "<string>"
}
}List Batch Tasks
Reference for listing tasks in a batch via GET /v1/deepresearch/batches//tasks.
GET
/
v1
/
deepresearch
/
batches
/
{id}
/
tasks
List tasks in a batch
curl --request GET \
--url https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks', 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.valyu.ai/v1/deepresearch/batches/{id}/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/deepresearch/batches/{id}/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"batch_id": "batch_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tasks": [
{
"deepresearch_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"query": "Analyze Tesla Q4 2024 earnings",
"created_at": "2024-06-15T10:30:00.000Z",
"task_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"output_type": "markdown",
"output": "## Tesla Q4 2025 Earnings Analysis\n\n...",
"sources": [
{}
],
"images": [
{}
],
"pdf_url": "https://example.com/reports/illustrative-report.pdf",
"deliverables": [
{}
],
"error": "Task exceeded maximum execution time",
"cost": 1
}
],
"pagination": {
"count": 10,
"has_more": false,
"last_key": "<string>"
}
}List individual tasks with optional status filtering and cursor-based pagination. Follow the returned pagination cursor to retrieve the complete batch.
Set
include_output=true when you need reports, sources and costs. Leave it off for a lighter progress view. Process successful, failed and cancelled tasks separately.Authorizations
API key for authentication. Get yours at platform.valyu.ai.
Path Parameters
Batch ID.
Query Parameters
Filter tasks by status.
Available options:
queued, running, completed, failed, cancelled Maximum number of tasks to return.
Required range:
x >= 1Pagination cursor. Omit on first request. Pass the last_key value from a previous response to fetch the next page.
Include full output, sources, images, and cost for each task. When false (default), returns lightweight task listing with status only.
Was this page helpful?