curl --request POST \
--url https://api.sixtyfour.ai/v1/atlas/investigations \
--header 'Content-Type: application/json' \
--data '
{
"lead_info": {},
"engine": "xhigh",
"research_plan": "<string>",
"struct": {},
"relentless": true,
"max_credits": 123,
"max_minutes": 725,
"dispatch_id": "<string>",
"name": "<string>",
"private": false
}
'import requests
url = "https://api.sixtyfour.ai/v1/atlas/investigations"
payload = {
"lead_info": {},
"engine": "xhigh",
"research_plan": "<string>",
"struct": {},
"relentless": True,
"max_credits": 123,
"max_minutes": 725,
"dispatch_id": "<string>",
"name": "<string>",
"private": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
lead_info: {},
engine: 'xhigh',
research_plan: '<string>',
struct: {},
relentless: true,
max_credits: 123,
max_minutes: 725,
dispatch_id: '<string>',
name: '<string>',
private: false
})
};
fetch('https://api.sixtyfour.ai/v1/atlas/investigations', 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.sixtyfour.ai/v1/atlas/investigations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'lead_info' => [
],
'engine' => 'xhigh',
'research_plan' => '<string>',
'struct' => [
],
'relentless' => true,
'max_credits' => 123,
'max_minutes' => 725,
'dispatch_id' => '<string>',
'name' => '<string>',
'private' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sixtyfour.ai/v1/atlas/investigations"
payload := strings.NewReader("{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sixtyfour.ai/v1/atlas/investigations")
.header("Content-Type", "application/json")
.body("{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sixtyfour.ai/v1/atlas/investigations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>",
"status": "<string>",
"investigation": {
"id": "<string>",
"workspace_url": "<string>"
}
}{
"detail": "Invalid request body"
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient API credits"
}{
"detail": "This organization no longer has access to Sixtyfour. Contact your representative at Sixtyfour."
}{
"detail": [
{
"loc": [
"body",
"target_company",
"domain"
],
"msg": "Field required",
"type": "missing",
"input": null,
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded"
}{
"detail": "Internal server error"
}{
"detail": "Could not verify the API key right now. Retry shortly."
}Start an investigation
Research a subject into a new Atlas investigation.
The investigation is created and returned immediately, so its workspace and graph can be read while the run is still going. It is stamped with the calling credential’s team, which is what decides who else can see it.
curl --request POST \
--url https://api.sixtyfour.ai/v1/atlas/investigations \
--header 'Content-Type: application/json' \
--data '
{
"lead_info": {},
"engine": "xhigh",
"research_plan": "<string>",
"struct": {},
"relentless": true,
"max_credits": 123,
"max_minutes": 725,
"dispatch_id": "<string>",
"name": "<string>",
"private": false
}
'import requests
url = "https://api.sixtyfour.ai/v1/atlas/investigations"
payload = {
"lead_info": {},
"engine": "xhigh",
"research_plan": "<string>",
"struct": {},
"relentless": True,
"max_credits": 123,
"max_minutes": 725,
"dispatch_id": "<string>",
"name": "<string>",
"private": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
lead_info: {},
engine: 'xhigh',
research_plan: '<string>',
struct: {},
relentless: true,
max_credits: 123,
max_minutes: 725,
dispatch_id: '<string>',
name: '<string>',
private: false
})
};
fetch('https://api.sixtyfour.ai/v1/atlas/investigations', 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.sixtyfour.ai/v1/atlas/investigations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'lead_info' => [
],
'engine' => 'xhigh',
'research_plan' => '<string>',
'struct' => [
],
'relentless' => true,
'max_credits' => 123,
'max_minutes' => 725,
'dispatch_id' => '<string>',
'name' => '<string>',
'private' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sixtyfour.ai/v1/atlas/investigations"
payload := strings.NewReader("{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sixtyfour.ai/v1/atlas/investigations")
.header("Content-Type", "application/json")
.body("{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sixtyfour.ai/v1/atlas/investigations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"lead_info\": {},\n \"engine\": \"xhigh\",\n \"research_plan\": \"<string>\",\n \"struct\": {},\n \"relentless\": true,\n \"max_credits\": 123,\n \"max_minutes\": 725,\n \"dispatch_id\": \"<string>\",\n \"name\": \"<string>\",\n \"private\": false\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>",
"status": "<string>",
"investigation": {
"id": "<string>",
"workspace_url": "<string>"
}
}{
"detail": "Invalid request body"
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient API credits"
}{
"detail": "This organization no longer has access to Sixtyfour. Contact your representative at Sixtyfour."
}{
"detail": [
{
"loc": [
"body",
"target_company",
"domain"
],
"msg": "Field required",
"type": "missing",
"input": null,
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded"
}{
"detail": "Internal server error"
}{
"detail": "Could not verify the API key right now. Retry shortly."
}Headers
Body
Who to investigate, e.g. {"name": "Jane Doe", "company": "Acme"}.
Research engine. GET /v1/atlas/access reports which ones this organization may run, and what each costs.
xhigh, scout Direction for this run. On a continue, what to look into next.
Optional output schema. Atlas researches open-endedly into the workspace either way.
Research until the budget runs out (the Atlas default). Set false to let a run with struct stop once every field is answered, charging the turns it used (at least one unit).
How much research to buy, in credits (default: one unit of the engine price), up to 10 units. On xhigh every 250 credits buy 800 team turns, used in full unless the research stops yielding: 300 buys 960. Scout researches alone, and every 50 credits buy its 100 turns.
The longest the run may research, in minutes of working time: waits to retry a model call or an attempt do not count. When it is reached the run writes up what it found and completes, charging the credits its turns used, rounded up to the next 50, instead of the whole budget. Writing up can take a few minutes past the limit. Default: no limit.
10 <= x <= 1440Client-generated idempotency key. Reusing the same key for the same organization returns the existing run instead of starting and billing a duplicate, so a lost response is safe to retry.
8 - 128Title for the investigation. Derived from lead_info when unset.
Visible only to you, not your team. Needs a signed-in user and a team that allows private runs.
Was this page helpful?