---
name: Attio CRM
version: 1.0.0
description: "Connect your Attio workspace to manage contacts, companies, deals, lists, tasks, notes, meetings, and comments through AI agents."
homepage: https://api.attio.com
metadata: {"seren":{"category":"integration","publisher_slug":"attio","api_base":"https://api.serendb.com"}}
---

# Attio CRM

Connect your Attio workspace to manage contacts, companies, deals, lists, tasks, notes, meetings, and comments through AI agents.

## API Endpoints

### GET `/v2/objects`

List all objects in workspace

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/objects \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/objects/{object}/records`

List records

**Query Parameters:**
- `limit`: integer - Max records to return
- `offset`: integer - Pagination offset
- `sorts`: string - JSON sort array
- `filter`: string - JSON filter object

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/objects/{object}/records \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/objects/{object}/records`

Create a record. Body: {"data": {"values": {"attr_slug": [{"value": "..."}]}}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/objects/{object}/records \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### PATCH `/v2/objects/{object}/records/{record_id}`

Update a record. Body: {"data": {"values": {"attr_slug": [{"value": "..."}]}}}

**Example:**

```bash
curl -X PATCH https://api.serendb.com/publishers/attio/v2/objects/{object}/records/{record_id} \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/objects/{object}/records/{record_id}`

Delete a record

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/objects/{object}/records/{record_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/lists`

List all lists

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/lists \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/lists/{list_id}/entries`

List entries in a list

**Query Parameters:**
- `limit`: integer - Max entries to return
- `offset`: integer - Pagination offset

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/lists/{list_id}/entries \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/lists/{list_id}/entries`

Add entry to a list. Body: {"data": {"record_id": "<uuid>", "parent_object": "companies"}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/lists/{list_id}/entries \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/lists/{list_id}/entries/{entry_id}`

Remove an entry from a list

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/lists/{list_id}/entries/{entry_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/tasks`

List tasks

**Query Parameters:**
- `limit`: integer - Max tasks to return
- `linked_object`: string - Filter by linked object type
- `linked_record_id`: string - Filter by linked record ID

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/tasks \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/tasks/{task_id}`

Get task details

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/tasks/{task_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/tasks`

Create a task. Body: {"data": {"content": "Do X", "deadline_at": "2025-12-31T00:00:00.000Z", "is_completed": false, "assignees": [{"referenced_actor_type": "workspace-member", "referenced_actor_id": "<uuid>"}], "linked_records": [{"target_object": "companies", "target_record_id": "<uuid>"}]}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/tasks \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### PATCH `/v2/tasks/{task_id}`

Update a task. Body: {"data": {"content": "...", "is_completed": true}}

**Example:**

```bash
curl -X PATCH https://api.serendb.com/publishers/attio/v2/tasks/{task_id} \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/tasks/{task_id}`

Delete a task

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/tasks/{task_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/notes`

List notes

**Query Parameters:**
- `limit`: integer - Max notes to return
- `parent_object`: string - Filter by parent object type
- `parent_record_id`: string - Filter by parent record ID

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/notes \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/notes/{note_id}`

Get note details

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/notes/{note_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/notes`

Create a note. Body: {"data": {"parent_object": "companies", "parent_record_id": "<uuid>", "title": "Meeting notes", "format": "plaintext", "content_plaintext": "Note content here"}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/notes \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/notes/{note_id}`

Delete a note

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/notes/{note_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/meetings`

List meetings

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/meetings \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/meetings/{meeting_id}`

Get meeting details

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/meetings/{meeting_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/meetings`

Create a meeting. Body: {"data": {"title": "...", "start_time": "2025-01-01T10:00:00.000Z", "end_time": "2025-01-01T11:00:00.000Z", "attendees": [{"referenced_actor_type": "workspace-member", "referenced_actor_id": "<uuid>"}]}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/meetings \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### PATCH `/v2/meetings/{meeting_id}`

Update a meeting. Body: {"data": {"title": "...", "start_time": "...", "end_time": "..."}}

**Example:**

```bash
curl -X PATCH https://api.serendb.com/publishers/attio/v2/meetings/{meeting_id} \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/meetings/{meeting_id}`

Delete a meeting

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/meetings/{meeting_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/threads`

List comment threads

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/threads \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/threads/{thread_id}`

Get thread details

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/threads/{thread_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/comments`

List comments

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/comments \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### GET `/v2/comments/{comment_id}`

Get comment details

**Example:**

```bash
curl -X GET https://api.serendb.com/publishers/attio/v2/comments/{comment_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

### POST `/v2/comments`

Create a comment. Body: {"data": {"record_id": "<uuid>", "workspace_member_id": "<uuid>", "content": [{"type": "text", "text": "Your comment"}]}}

**Example:**

```bash
curl -X POST https://api.serendb.com/publishers/attio/v2/comments \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE `/v2/comments/{comment_id}`

Delete a comment

**Example:**

```bash
curl -X DELETE https://api.serendb.com/publishers/attio/v2/comments/{comment_id} \
  -H "Authorization: Bearer $SEREN_API_KEY"
```

## MCP Tools

This API publisher also supports MCP (Model Context Protocol) access. Each API endpoint is available as an MCP tool.

### Available Tools

- `get_v2_objects`: List all objects in workspace
- `get_v2_objects_by_object_records`: List records
- `post_v2_objects_by_object_records`: Create a record. Body: {"data": {"values": {"attr_slug": [{"value": "..."}]}}}
- `patch_v2_objects_by_object_records_by_record_id`: Update a record. Body: {"data": {"values": {"attr_slug": [{"value": "..."}]}}}
- `delete_v2_objects_by_object_records_by_record_id`: Delete a record
- `get_v2_lists`: List all lists
- `get_v2_lists_by_list_id_entries`: List entries in a list
- `post_v2_lists_by_list_id_entries`: Add entry to a list. Body: {"data": {"record_id": "<uuid>", "parent_object": "companies"}}
- `delete_v2_lists_by_list_id_entries_by_entry_id`: Remove an entry from a list
- `get_v2_tasks`: List tasks
- `get_v2_tasks_by_task_id`: Get task details
- `post_v2_tasks`: Create a task. Body: {"data": {"content": "Do X", "deadline_at": "2025-12-31T00:00:00.000Z", "is_completed": false, "assignees": [{"referenced_actor_type": "workspace-member", "referenced_actor_id": "<uuid>"}], "linked_records": [{"target_object": "companies", "target_record_id": "<uuid>"}]}}
- `patch_v2_tasks_by_task_id`: Update a task. Body: {"data": {"content": "...", "is_completed": true}}
- `delete_v2_tasks_by_task_id`: Delete a task
- `get_v2_notes`: List notes
- `get_v2_notes_by_note_id`: Get note details
- `post_v2_notes`: Create a note. Body: {"data": {"parent_object": "companies", "parent_record_id": "<uuid>", "title": "Meeting notes", "format": "plaintext", "content_plaintext": "Note content here"}}
- `delete_v2_notes_by_note_id`: Delete a note
- `get_v2_meetings`: List meetings
- `get_v2_meetings_by_meeting_id`: Get meeting details
- `post_v2_meetings`: Create a meeting. Body: {"data": {"title": "...", "start_time": "2025-01-01T10:00:00.000Z", "end_time": "2025-01-01T11:00:00.000Z", "attendees": [{"referenced_actor_type": "workspace-member", "referenced_actor_id": "<uuid>"}]}}
- `patch_v2_meetings_by_meeting_id`: Update a meeting. Body: {"data": {"title": "...", "start_time": "...", "end_time": "..."}}
- `delete_v2_meetings_by_meeting_id`: Delete a meeting
- `get_v2_threads`: List comment threads
- `get_v2_threads_by_thread_id`: Get thread details
- `get_v2_comments`: List comments
- `get_v2_comments_by_comment_id`: Get comment details
- `post_v2_comments`: Create a comment. Body: {"data": {"record_id": "<uuid>", "workspace_member_id": "<uuid>", "content": [{"type": "text", "text": "Your comment"}]}}
- `delete_v2_comments_by_comment_id`: Delete a comment

### Introspection

```bash
# List tools
curl https://api.serendb.com/publishers/attio/_mcp/tools \
  -H "Authorization: Bearer $SEREN_API_KEY"

# Call a tool
curl -X POST https://api.serendb.com/publishers/attio/_mcp/tools/{tool_name} \
  -H "Authorization: Bearer $SEREN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body": {"key": "value"}}'
```

## Pricing

**Pricing Model:** per_request

- Price per request: $0.00100000

**Per-method pricing:**
- GET: $0.00050000
- POST: $0.00200000
- DELETE: $0.00200000
- PATCH: $0.00200000

**Minimum charge:** $0.00010000

---

## Need Help?

- Seren Docs: https://docs.serendb.com
- Publisher: Connect your Attio workspace to manage contacts, companies, deals, lists, tasks, notes, meetings, and comments through AI agents.
