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

# Get Attio List Mapping

> Read a connected Attio integration's list map and live Attio people-lists

Read a connected Attio integration's saved Sequenzy-to-Attio list map, this company's Sequenzy lists, and live Attio people-lists.

Attio is a no-op until at least one Sequenzy list is mapped. Connect can succeed with `mappedListCount` 0; this endpoint is how you see what to map without reconnecting or asking for the access token again.

People-lists are read from Attio on every call using the stored token, because a list can be deleted in Attio without Sequenzy hearing about it.

Attio only. Other providers return a `400`.

Requires an API key with the `account:read` and `lists:read` scopes.

## Request

<ParamField path="id" type="string" required>
  Attio integration ID, from [List
  Integrations](/api-reference/integrations/list).
</ParamField>

This endpoint takes no request body.

```bash theme={null}
curl "https://api.sequenzy.com/api/v1/integrations/int_abc123/attio" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response fields

<ResponseField name="listMap" type="object">
  Saved Sequenzy list id → Attio list UUID or api slug. Empty when nothing is
  mapped.
</ResponseField>

<ResponseField name="mappedListCount" type="number">
  Number of saved mappings whose Sequenzy source and Attio target lists both
  still exist. Zero means list joins are not synced. Stale entries remain in
  `listMap` for recovery but are not included in this count, and `message`
  identifies them as stale.
</ResponseField>

<ResponseField name="syncCompanyFromDomain" type="boolean">
  Whether a company is upserted from the person's non-free-mail email domain.
</ResponseField>

<ResponseField name="sequenzyLists" type="array">
  This company's Sequenzy lists (`id`, `name`).
</ResponseField>

<ResponseField name="attioLists" type="array">
  Attio people-lists the stored token can write (`id`, `apiSlug`, `name`), read
  live from Attio.
</ResponseField>

Save mappings with [Update Attio List Mapping](/api-reference/integrations/attio-update).

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "integrationId": "int_abc123",
    "provider": "attio",
    "listMap": {},
    "mappedListCount": 0,
    "syncCompanyFromDomain": true,
    "sequenzyLists": [
      { "id": "list_abc", "name": "Field Guide" },
      { "id": "list_def", "name": "Benchmark" }
    ],
    "attioLists": [
      { "id": "list_test", "apiSlug": "field-guide", "name": "Field Guide" },
      { "id": "list_benchmark", "apiSlug": "benchmark", "name": "Benchmark" }
    ],
    "message": "No active Sequenzy lists are mapped, so list joins are not synced to Attio. Map them with PATCH /v1/integrations/{id}/attio (CLI: `sequenzy integrations set-attio-lists <id>`, MCP: update_attio_settings)."
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": "Stripe is not an Attio integration. Only Attio has Sequenzy-to-Attio list mappings."
  }
  ```

  ```json 401 theme={null}
  {
    "success": false,
    "error": "Unauthorized"
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": "Integration not found"
  }
  ```
</ResponseExample>
