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

# Engagement API

> Run outbound from your own app: lists, saved searches, campaigns and steps, email, templates, tasks, call logging, and the activity feed.

The Engagement API puts Seamless.AI's outbound platform behind REST, so you can go from a researched contact to a sequenced campaign, a sent email, or a logged call without leaving your product. All engagement endpoints are on **v2**: `https://api.seamless.ai/api/client/v2`.

> **Version**
>
> v2 only

> **Credits**
>
> No data credits. Sends follow your plan.

> **License**
>
> Campaigns, tasks, email, templates, calls, and activity need a Connect license. [Access control](/mcp/access-control)

| Area | License |
| - | - |
| Lists, Saved searches | All API users |
| Campaigns, Tasks | Connect (full) |
| Emails, Templates, Calls, Activity, Email accounts and footers | Connect |

## Lists

Group researched contacts and companies. Add records to lists while researching with `listIds`, or later through [My Contact Data](/api-catalog/my-contact-data) and [My Company Data](/api-catalog/my-company-data).

| Method | Path | Description |
| - | - | - |
| `GET` | `/lists` | List all lists |
| `POST` | `/lists` | Create a list |
| `GET` | `/lists/{id}` | Get a list by ID |
| `PUT` | `/lists/{id}` | Update a list |
| `DELETE` | `/lists/{id}` | Delete a list |

## Saved searches

Store a set of search filters and rerun them with `savedSearchId` on [Contact Search](/api-catalog/contact-search) or [Company Search](/api-catalog/company-search).

| Method | Path | Description |
| - | - | - |
| `GET` | `/saved-searches` | List saved searches |
| `POST` | `/saved-searches` | Create a saved search |
| `GET` | `/saved-searches/{id}` | Get a saved search by ID |
| `PUT` | `/saved-searches/{id}` | Update a saved search |
| `DELETE` | `/saved-searches/{id}` | Delete a saved search |

## Campaigns

Multi-step sequences with enrollment, step actions, and metrics.

| Method | Path | Description |
| - | - | - |
| `GET` | `/campaigns` | List campaigns |
| `POST` | `/campaigns` | Create a campaign |
| `GET` | `/campaigns/{id}` | Get a campaign |
| `PUT` | `/campaigns/{id}` | Update a campaign |
| `DELETE` | `/campaigns/{id}` | Delete a campaign |
| `POST` | `/campaigns/{id}/clone` | Clone a campaign |
| `POST` | `/campaigns/{id}/actions` | Execute a campaign action |
| `GET` | `/campaigns/{id}/metrics` | Get campaign metrics |
| `GET` | `/campaigns/{id}/steps` | List campaign steps |
| `POST` | `/campaigns/{id}/steps` | Create a campaign step |
| `PUT` | `/campaigns/{id}/steps/{stepId}` | Update a campaign step |
| `DELETE` | `/campaigns/{id}/steps/{stepId}` | Delete a campaign step |
| `POST` | `/campaigns/{id}/steps/{stepId}/actions` | Execute a campaign step action |
| `GET` | `/campaigns/{id}/contacts` | List campaign contacts |
| `POST` | `/campaigns/{id}/contacts` | Add contacts to a campaign (1-500) |
| `DELETE` | `/campaigns/{id}/contacts` | Remove contacts from a campaign |

## Emails

One-off sends, drafts, previews, and bulk sends from the user's connected mailbox.

| Method | Path | Description |
| - | - | - |
| `POST` | `/emails/send` | Send an email |
| `POST` | `/emails/send-bulk` | Send bulk email |
| `POST` | `/emails/preview` | Send an email preview |
| `POST` | `/emails` | Create an email draft |
| `GET` | `/emails/{id}` | Get an email |
| `PUT` | `/emails/{id}` | Update an email draft |
| `POST` | `/emails/{id}/send` | Send an email draft |

## Templates

| Method | Path | Description |
| - | - | - |
| `GET` | `/templates` | List templates |
| `POST` | `/templates` | Create a template |
| `GET` | `/templates/{id}` | Get a template by ID |
| `PUT` | `/templates/{id}` | Update a template |
| `DELETE` | `/templates/{id}` | Delete a template |

## Tasks

| Method | Path | Description |
| - | - | - |
| `GET` | `/tasks` | List tasks |
| `POST` | `/tasks` | Create a task |
| `GET` | `/tasks/{id}` | Get a task |
| `PUT` | `/tasks/{id}` | Update a task |
| `DELETE` | `/tasks/{id}` | Delete a task |
| `POST` | `/tasks/{id}/actions` | Execute a task action |

## Calls

Log calls from your dialer so they appear in the Seamless activity timeline.

| Method | Path | Description |
| - | - | - |
| `POST` | `/calls/log` | Log a call |
| `GET` | `/calls/dispositions` | List call dispositions |
| `GET` | `/calls/sentiments` | List call sentiments |

## Activity

| Method | Path | Description |
| - | - | - |
| `GET` | `/activity` | Retrieve the activity feed |

## Example: research, list, and enroll

```bash 1. Create a list theme={null}
curl -X POST https://api.seamless.ai/api/client/v2/lists \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Q4 RevOps leaders" }'
```

```bash 2. Research into the list theme={null}
curl -X POST https://api.seamless.ai/api/client/v2/contacts/research \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "searchResultIds": ["ctc_sr_..."], "listIds": [123] }'
```

```bash 3. Enroll in a campaign theme={null}
curl -X POST https://api.seamless.ai/api/client/v2/campaigns/CAMPAIGN_ID/contacts \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "contactIds": [48213377] }'
```

```bash 4. Check metrics theme={null}
curl https://api.seamless.ai/api/client/v2/campaigns/CAMPAIGN_ID/metrics \
  -H "Token: $SEAMLESS_API_KEY"
```

> [!TIP]
>
> Building with an AI agent? The same actions are available as [MCP tools](/mcp-docs), with read, write, and destructive [risk tiers](/mcp/risk-tiers).

## Related

* [Account API](/api-catalog/account): email accounts, footers, statuses
* [MCP workflow: Bulk enrich and campaign](/mcp/workflows/bulk-enrich-and-campaign)


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