> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sixtyfour.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Atlas Integrations

> Run Atlas through People Intelligence, Bulk Intelligence, workflows, webhooks and MCP, and get structured fields back from an investigation.

Atlas runs through more than its own API. Each surface here starts the same investigation, which you can open in the [web app](https://docs.sixtyfour.ai/atlas/web-app.md) or read through the [Atlas API](https://docs.sixtyfour.ai/atlas/api.md).

## People Intelligence

The `xhigh` tier of [People Intelligence](https://docs.sixtyfour.ai/api-reference/endpoint/people-intelligence.md) is a structured version of Atlas. Send a `struct` and the run returns your fields in `structured_data`, alongside a persistent investigation. Without a `struct`, it researches open-endedly into the workspace.

`scout` with `graph: true` runs the same investigation tooling on Scout's lighter model.

Atlas runs take longer than other tiers, so start them with the async endpoint:

```bash cURL theme={null}
curl -X POST "https://api.sixtyfour.ai/people-intelligence-async" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "lead_info": {"name": "Jane Doe", "company": "Acme Corp"},
    "struct": {
      "current_role": "Their current job title and employer",
      "board_seats": {"description": "Public board seats they hold", "type": "list[str]"}
    },
    "tier": "xhigh",
    "max_minutes": 60
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://api.sixtyfour.ai/people-intelligence-async",
    headers={"x-api-key": "YOUR_API_KEY"},
    json={
        "lead_info": {"name": "Jane Doe", "company": "Acme Corp"},
        "struct": {
            "current_role": "Their current job title and employer",
            "board_seats": {"description": "Public board seats they hold", "type": "list[str]"}
        },
        "tier": "xhigh",
        "max_minutes": 60
    }
)
response.raise_for_status()
run = response.json()
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.sixtyfour.ai/people-intelligence-async", {
  method: "POST",
  headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    lead_info: { name: "Jane Doe", company: "Acme Corp" },
    struct: {
      current_role: "Their current job title and employer",
      board_seats: { description: "Public board seats they hold", type: "list[str]" }
    },
    tier: "xhigh",
    max_minutes: 60
  })
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const run = await response.json();
```

The start response and every `/job-status` response carry the investigation:

```json theme={null}
{
  "task_id": "job_123",
  "status": "RUNNING",
  "investigation": {
    "id": "29beab70-42e4-5d19-b3b1-9a28279ca19f",
    "workspace_url": "https://app.sixtyfour.ai/atlas/29beab70-42e4-5d19-b3b1-9a28279ca19f/graph"
  }
}
```

Open `workspace_url` to watch the run in the Atlas section of the Sixtyfour app, or read it through the [Atlas API](https://docs.sixtyfour.ai/atlas/api.md) while it is still going.

### Request parameters

Atlas runs take the [People Intelligence parameters](https://docs.sixtyfour.ai/api-reference/endpoint/people-intelligence.md#request-parameters), plus:

| Parameter | Type | Default | Description |
| - | - | - | - |
| `graph` | boolean | `false` | With `tier: "scout"`, run Scout as an Atlas run. Any other tier rejects it. |
| `struct` | object | — | Optional on Atlas runs. Without it, the run researches open-endedly into the workspace. |
| `investigation_id` | string | — | Continue an existing investigation. The run reuses its graph and workspace and builds on the earlier research. |
| `investigation_name` | string | derived from `lead_info` | Title for a new investigation. Ignored when `investigation_id` is set. |
| `max_credits` | integer | one unit of the tier price | How much research to buy, from one to ten units of the tier price. Out-of-range values return 400. |
| `max_minutes` | integer (10–1440) | no limit | Working-time limit. When it is reached the run writes up what it found and charges only the credits its turns used, rounded up to the next 50. |
| `relentless` | boolean | `false` | Research until the budget runs out. By default a run with `struct` may stop once every field is answered, charging only what it used (at least one unit). |
| `include_workspace` | boolean | `true` | Include the investigation's workspace files with the result. |
| `exclusive_run` | boolean | `false` | With `investigation_id`: return 409 instead of starting a second run while one is already running. |
| `private` | boolean | `false` | Make the run visible only to you, not your team. Your team must allow private runs. Needs the async endpoint and can't be combined with `investigation_id`. |

`relentless` defaults to `true` on [`POST /v1/atlas/investigations`](https://docs.sixtyfour.ai/atlas/api#starting-an-investigation), so the same request researches for longer there.

### Response

Poll [`GET /job-status/{task_id}`](https://docs.sixtyfour.ai/api-reference/endpoint/people-intelligence#async-and-timeouts). A completed Atlas job's `result` has the [People Intelligence fields](https://docs.sixtyfour.ai/api-reference/endpoint/people-intelligence.md#response), plus:

| Field | Type | Description |
| - | - | - |
| `research_notes` | string | The agents' research notes. |
| `graph` | string | A text rendering of the attribution graph. For structured nodes and edges, use [`GET .../graph`](https://docs.sixtyfour.ai/atlas/api#reading-the-graph-and-workspace). |
| `workspace_files` | object | Workspace file path → content. Omitted when `include_workspace` is `false`. |

```json theme={null}
{
  "id": "job_123",
  "status": "completed",
  "investigation": {
    "id": "29beab70-42e4-5d19-b3b1-9a28279ca19f",
    "workspace_url": "https://app.sixtyfour.ai/atlas/29beab70-42e4-5d19-b3b1-9a28279ca19f/graph"
  },
  "result": {
    "structured_data": {
      "current_role": "VP Engineering, Acme Corp",
      "board_seats": ["Example Foundation"]
    },
    "notes": "Confirmed the current role from the company site and a recent filing.",
    "references": {
      "https://acme.example/team": "Leadership page with current title"
    },
    "research_notes": "# Jane Doe\n\nCurrent role confirmed from...",
    "graph": "# Attribution graph\nnodes:\n...",
    "workspace_files": {
      "notes/background.md": "# Background\n\n..."
    }
  }
}
```

These three fields read from the investigation, so a later run on it changes what an earlier job returns.

With `field_confidence: true`, each field's entry also lists the graph `nodes` its value rests on. See [Confidence Scoring](https://docs.sixtyfour.ai/api-reference/endpoint/field-confidence.md).

## Bulk Intelligence

[`POST /bulk-intelligence/people`](https://docs.sixtyfour.ai/api-reference/endpoint/bulk-intelligence) accepts `tier: "xhigh"` and runs one investigation per row on the default budget. `graph`, `max_credits`, `max_minutes` and `investigation_id` aren't accepted in bulk config.

To set a budget per lead, start each run from [People Intelligence](#people-intelligence) instead. In the web app, [Upload CSV](https://docs.sixtyfour.ai/atlas/web-app.md#start-one-investigation-per-row) starts one investigation per row with a budget you choose.

## Workflows

Set the tier of an [Enrich People](https://docs.sixtyfour.ai/guides/building-workflows.md) block to **X-High** to run an investigation for each row. In a workflow definition, set `"tier": "xhigh"` in the `lead_enrichment` block's specs.

Each row creates its own investigation on the default budget, and your return fields become columns. A run may stop once every return field is answered, so a row costs at least one unit. The block also adds:

| Column | What it holds |
| - | - |
| `enrichment_notes` | A short research summary. |
| `enrichment_references` | Source URL → what was found there. |
| `enrichment_research_notes` | The agents' research notes. |
| `enrichment_graph` | A text rendering of the attribution graph. |

Place filters before the block so only the rows worth an investigation reach it.

## Webhooks

Pass `webhook_url` to `POST /people-intelligence-async` to receive the result when the run finishes. The payload has `investigation` at the top level, and `result` carries `research_notes`, `graph` and, unless `include_workspace` is `false`, `workspace_files`. See [Outgoing Webhooks](https://docs.sixtyfour.ai/api-reference/webhooks/outgoing.md).

`POST /v1/atlas/investigations` doesn't take a `webhook_url`. To follow one of those runs, poll `GET /job-status/{task_id}` or [stream its events](https://docs.sixtyfour.ai/atlas/api.md#following-a-run-live).

## MCP

The [Sixtyfour MCP server](https://docs.sixtyfour.ai/developer-tools/mcp-setup.md) lets an AI assistant start and read investigations. The Atlas tools appear only when your organization has Atlas enabled.

1. `sixtyfour_atlas_start` starts an XHigh investigation on the default budget. Pass the `subject` (any of `name`, `email`, `phone`, `username`, `ip_address`, `profile_url`, `company`, `domain`, or a free-text `query`), a `request_id` as the idempotency key, and an optional `objective`.
2. `sixtyfour_atlas_status` polls the task until it finishes.
3. `sixtyfour_atlas_inspect` reads the investigation's summary, or a page of its findings, links or files.
4. `sixtyfour_atlas_file` reads a chunk of a text file that `sixtyfour_atlas_inspect` listed.

`sixtyfour_atlas_list` lists your organization's investigations. The tools read text only, so open the investigation in the web app or use the [Atlas API](https://docs.sixtyfour.ai/atlas/api.md#reading-the-graph-and-workspace) for images and other attachments.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.