struct, list your investigations, or read their findings, graph, files and report. To get a structured_data answer from the same research, use People Intelligence with tier: "xhigh".
Endpoint
All paths are underhttps://api.sixtyfour.ai/v1/atlas.
Authenticate with your
x-api-key header, as on every other endpoint.
Checking access
GET /access works for every org. It returns whether your org has Atlas and, when it does, the engines it can run, the default first, each priced for your org:
{"has_atlas": false, "engines": []}.
Starting an investigation
POST /investigations returns 202 with the run’s task_id and the new investigation:
GET /job-status/{task_id}, or open workspace_url to watch it in the Atlas section of the Sixtyfour app.
Continuing an investigation
POST /investigations/{investigation_id}/runs starts another run on the same workspace and graph. It takes the same body as starting one, without lead_info, name and private, and returns the same 202 response. Continuing needs editor access to the investigation.
Listing and reading investigations
GET /investigations returns investigations, the page limit and a next_cursor:
Each investigation, also returned by
GET /investigations/{investigation_id}, looks like this:
shared is null when your team owns the investigation. Otherwise it names the team that shared it and your tier on it: a viewer can read and export, an editor can also run and edit.
Reading the graph and workspace
Field confidence on an Atlas run lists, for each value, the
nodes in this graph that support it. See Confidence Scoring.
Following a run live
GET .../events/stream sends the agents’ turn summaries over Server-Sent Events as they are written, in order. Omit after to replay from the start.
The
sessions frame before end carries the run’s recorded cost, or null if settlement did not record it in time. Comment lines are heartbeats.
A stream closes after about five minutes so access is checked again. SSE clients reconnect on their own with Last-Event-ID and resume from the last event. Other clients pass that id as after, which also accepts next_cursor from GET .../events.
Reports
POST .../reportstarts generating a PDF intelligence report from the current workspace and returns 202 with a report job. If an up-to-date report already exists, the job comes back withcached: true. Pass{"retry_failed": true}to retry after a failure. An empty workspace returns 400.GET .../reportreturns the job:job_id,status(pending,running,completed,failed, orsupersededwhen the workspace changed and a newer job replaced it),requested_at,completed_at,errorandbyte_size.GET .../report.pdfreturns the PDF when it is ready, 202 with the job and aRetry-Afterheader while it is generating, and 404 if no report has been requested.
Export
GET .../export.zip downloads everything visible in the app in one archive: workspace files, attachments with <path>.json metadata sidecars, the attribution graph, investigation.json, and the agents’ activity when your org has access to it.
Pricing
Starting or continuing an investigation is billed at the engine’s price per unit; reading, reports and exports are not billed per call. See Credits & Pricing Guide for the price per unit.Errors
For error responses (400, 402, 403, 404, 409, 429, etc.), see Handling Errors. Atlas is enabled on request. Without access, starting or reading an investigation returns 403;GET /access works for every org and returns {"has_atlas": false, "engines": []}, so clients can hide investigation features instead of handling the error. Contact sales to request access.
All /v1/atlas endpoints share a limit of 120 requests per minute per organization. Reads don’t consume credits, so an org with no balance can still list and export what it already ran.