Retrieve a response
curl --request GET \
--url https://api.sailresearch.com/v1/responses/{response_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sailresearch.com/v1/responses/{response_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/responses/{response_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/responses/{response_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/responses/{response_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/responses/{response_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sailresearch.com/v1/responses/{response_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>"
}
}Responses API
Retrieve a response
Results can expire 10 minutes after first successful delivery.
GET
/
responses
/
{response_id}
Retrieve a response
curl --request GET \
--url https://api.sailresearch.com/v1/responses/{response_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sailresearch.com/v1/responses/{response_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/responses/{response_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/responses/{response_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/responses/{response_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/responses/{response_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sailresearch.com/v1/responses/{response_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>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
The response object.
Available options:
response Available options:
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.
Minimum string length:
1Show child attributes
Show child attributes