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

> ## Agent Instructions
> These docs describe the Ancha CLI, npm package @ancha-labs/cli version 0.1.4, and the hosted workspace at app.ancha.io. Coding agents should start at https://docs.ancha.io/coding-agents. Run the CLI as `ancha` after `npm install -g @ancha-labs/cli`, or as `npx -y @ancha-labs/cli@0.1.4` without installing. Pass --json for machine-readable output, or set ANCHA_JSON=1. Every command ends with a `next:` line naming the next command. Exit codes: 0 pass, 1 a check failed or a comparison regressed, 2 usage, config or authentication error, 3 infrastructure error, 4 unimplemented endpoint with --strict.

# Attio

> A stateful replica of Attio's REST API v2: people, companies and deals with typed values and value history, lists and entries, notes, tasks and workspace members.

The Attio replica implements 30 endpoints of the REST API v2 for the standard people, companies and deals objects, with typed attribute values and their history. Its key is `attio`. Attio publishes no official API client, so the replica was tested over HTTP against the shapes in its OpenAPI document.

## Connect

| Variable | Value |
| - | - |
| `ATTIO_API_URL` | Base URL. Paths start with `/v2/`. |
| `ATTIO_API_KEY` | Fake API key. Send `Authorization: Bearer <key>`. |

```js Node theme={null}
const response = await fetch(process.env.ATTIO_API_URL + '/v2/objects/companies/records/query', { method: 'POST', headers: { Authorization: 'Bearer ' + process.env.ATTIO_API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify({ limit: 10 }) });
const companies = await response.json();
```

This is what `ancha connect attio --lang ts` prints.

## Endpoints

| Method | Path | Support |
| - | - | - |
| `GET` | `/v2/self`, `/v2/objects`, `/v2/objects/:object`, `/v2/:target/:identifier/attributes` | supported |
| `POST` | `/v2/objects/:object/records/query` | partial: filter shorthand, operators, value properties, `$and`, `$or` and `$not`; sorts by attribute; path filters through references are gaps |
| `POST` | `/v2/objects/:object/records` | supported |
| `PUT` | `/v2/objects/:object/records` | partial: asserts by a unique attribute, updating the match (appending to multiselect values) or creating a record |
| `GET`, `DELETE` | `/v2/objects/:object/records/:record_id` | supported |
| `PATCH` | `/v2/objects/:object/records/:record_id` | supported: multiselect values are added to |
| `PUT` | `/v2/objects/:object/records/:record_id` | supported: multiselect values are replaced |
| `GET` | `/v2/objects/:object/records/:record_id/attributes/:attribute/values` | supported: the value history |
| `GET` | `/v2/objects/:object/records/:record_id/entries` | supported |
| `GET` | `/v2/lists`, `/v2/lists/:list` | supported |
| `POST` | `/v2/lists/:list/entries/query` | partial: filters and sorts on the list's own attributes |
| `POST` | `/v2/lists/:list/entries` | supported |
| `PATCH`, `DELETE` | `/v2/lists/:list/entries/:entry_id` | supported |
| `GET` | `/v2/workspace_members`, `/v2/workspace_members/:id` | supported |
| `GET`, `POST` | `/v2/notes` | supported |
| `GET`, `DELETE` | `/v2/notes/:note_id` | supported |
| `GET`, `POST` | `/v2/tasks` | supported |
| `GET`, `PATCH`, `DELETE` | `/v2/tasks/:task_id` | supported |

Anything else returns HTTP 501 with Attio's error shape and `x-ancha-gap: 1`.

## Starter data

The `attio-starter` dataset is the workspace **Acme** (`acme`). The API key acts as the member `ancha`; the other members are Tom Hughes and Mike Turner (admins), Laura Kim and Anna Fischer.

| Object | Records |
| - | - |
| Companies | Ridgeway Robotics (mid-market, pilot started this week), Pinecrest Health (enterprise, 120 seats from December 1), Bluefield Logistics, Kestrel Credit Union (40 seats), Helix Manufacturing (usage down 20% since August), Summit Freight (35 seats) and Harbor Foods. Custom attributes `segment` (Enterprise, Mid-market, SMB) and `seats`. |
| People | Erin Walsh and Paul Young (Ridgeway Robotics), Nora Bell (Pinecrest Health), Grace Lin and Owen Hart (Bluefield Logistics), Carla Diaz and Peter Novak (Kestrel Credit Union), Megan Shaw (Summit Freight) and Lucy Grant (Harbor Foods). |
| Deals | "Ridgeway Robotics: analytics rollout" (In Progress, 96,000, Tom), "Pinecrest Health: Enterprise plan" (Won, 144,000), "Bluefield Logistics: pilot" (In Progress, 36,000), "Kestrel Credit Union: renewal" (In Progress, 48,000, Mike) and "Harbor Foods: analytics starter" (Lead, 18,000). Stages: Lead, In Progress, Won 🎉, Lost. |
| List "Renewals" | Companies with a renewal stage, date and owner: Kestrel Credit Union (in review, 2026-12-01), Helix Manufacturing (churn risk, 2026-12-15) and Summit Freight (upcoming, 2027-08-01). |
| Notes | A discovery call note on Ridgeway Robotics by Tom, and a usage review on Helix Manufacturing by Laura. |
| Tasks | Send the SOC 2 Type II report to Grace Lin (Tom, due 2026-11-02); book the quarterly review with Helix (Laura, done); confirm the invoice references PO-77120 (Anna, due 2026-11-03). |

## Checks

Attio has no state checks. Use trace checks, for example `{ called: "POST /v2/tasks" }` or `{ not_called: "DELETE /v2/objects/*/records/*" }`.

## Limits

* Standard people, companies and deals objects with typed values and value history; custom objects, webhooks, threads, comments and path filters are gaps.
* Attio publishes no official API client; tested over HTTP against the shapes in its OpenAPI document.


## Related topics

- [Tools](https://docs.ancha.io/tools/overview.md)
- [Test file (scene.yaml)](https://docs.ancha.io/reference/test-file.md)
- [Introduction](https://docs.ancha.io/index.md)
- [Environment variables](https://docs.ancha.io/reference/environment-variables.md)
- [ancha connect](https://docs.ancha.io/cli/connect.md)


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