curl --request GET \
--url https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}', 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.sailresearch.com/v1/batches/{batch_id}/{custom_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.sailresearch.com/v1/batches/{batch_id}/{custom_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.sailresearch.com/v1/batches/{batch_id}/{custom_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "response",
"created_at": 123,
"status": "queued",
"model": "<string>",
"usage": {
"input_tokens": 123,
"input_tokens_details": {
"cached_tokens": 123,
"reasoning_tokens": 123
},
"output_tokens": 123,
"output_tokens_details": {
"cached_tokens": 123,
"reasoning_tokens": 123
},
"total_tokens": 123,
"prompt_tokens": 123,
"completion_tokens": 123
},
"metadata": {
"supercached_input_tokens": "<string>",
"supercache_write_input_tokens": "<string>"
},
"input": "<string>",
"output": "<string>",
"error": {},
"incomplete_details": {},
"max_output_tokens": 123,
"reasoning": {},
"text": {
"format": {
"type": "text"
}
},
"store": true,
"temperature": 123,
"top_p": 123,
"parallel_tool_calls": true,
"tool_choice": "<string>",
"tools": [
{}
],
"truncation": "<string>",
"user": "<string>"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Get batch request result
Retrieve the result of a specific request within a batch by its custom_id. Results can expire 10 minutes after first successful delivery.
curl --request GET \
--url https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}', 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.sailresearch.com/v1/batches/{batch_id}/{custom_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.sailresearch.com/v1/batches/{batch_id}/{custom_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.sailresearch.com/v1/batches/{batch_id}/{custom_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sailresearch.com/v1/batches/{batch_id}/{custom_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "response",
"created_at": 123,
"status": "queued",
"model": "<string>",
"usage": {
"input_tokens": 123,
"input_tokens_details": {
"cached_tokens": 123,
"reasoning_tokens": 123
},
"output_tokens": 123,
"output_tokens_details": {
"cached_tokens": 123,
"reasoning_tokens": 123
},
"total_tokens": 123,
"prompt_tokens": 123,
"completion_tokens": 123
},
"metadata": {
"supercached_input_tokens": "<string>",
"supercache_write_input_tokens": "<string>"
},
"input": "<string>",
"output": "<string>",
"error": {},
"incomplete_details": {},
"max_output_tokens": 123,
"reasoning": {},
"text": {
"format": {
"type": "text"
}
},
"store": true,
"temperature": 123,
"top_p": 123,
"parallel_tool_calls": true,
"tool_choice": "<string>",
"tools": [
{}
],
"truncation": "<string>",
"user": "<string>"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the batch.
The custom_id of the request within the batch.
Response
The response object for the given request.
response queued, in_progress, failed, completed, incomplete, cancelled Show child attributes
Show child attributes
Response metadata. A completed response includes supercached_input_tokens and supercache_write_input_tokens as decimal strings when Supercache accounting data is available. Both fields are included when their value is zero.
Show child attributes
Show child attributes
Text input, plus image input (input_image) on multimodal models and inline PDF input (input_file) on every model. Audio, files referenced by file_id or file_url, and item references are not currently supported.
1Show child attributes
Show child attributes