# Seamless > API & MCP for B2B Sales Automation - [Seamless API: Search and enrich company and contact data](https://docs.seamless.ai/introduction.md): Seamless' B2B data API helps you find & enrich companies and contacts. Authenticate with OAuth or an API key, then get results via webhooks or polling. - [API keys](https://docs.seamless.ai/authentication/api-keys.md): Create an API key in Seamless and authenticate REST API requests with the Token header. - [OAuth 2.0](https://docs.seamless.ai/authentication/oauth.md): Register an OAuth client, obtain access and refresh tokens, and call the Seamless API with Bearer authentication. - [Authenticate and make your first Seamless API call](https://docs.seamless.ai/authenticate-and-make-your-first-request.md): Authenticate with an API key, search for a company or contact, submit a research request, and retrieve enriched results using polling — in three steps. - [Explore with Postman](https://docs.seamless.ai/explore-with-postman.md): Import the Seamless OpenAPI spec into Postman, set your API key, and run search and research requests interactively. - [Understand identifiers and request flow](https://docs.seamless.ai/understand-identifiers-and-request-flow.md) - [Research without search](https://docs.seamless.ai/research-without-search.md): Enrich companies and contacts by passing identifiers directly to the research endpoints — no searchResultId required. - [Choose the right workflow](https://docs.seamless.ai/choose-the-right-workflow.md) - [Rate limits and credits](https://docs.seamless.ai/rate-limits-and-credits.md): Organization-level rate limits, response headers, 429 handling, and credit balance headers on the Seamless API. - [Use cases](https://docs.seamless.ai/use-cases.md): Common Seamless API integration patterns for enrichment, CRM sync, webhooks, and AI sales automation. - [Enrich a lead list](https://docs.seamless.ai/use-cases/enrich-a-lead-list.md): Search and research multiple contacts with pagination, polling, and a runnable Python script. - [Sync researched contacts to CRM](https://docs.seamless.ai/use-cases/sync-researched-contacts-to-crm.md): Research contacts via the API, then export org contacts for CRM or warehouse sync without spending extra credits. - [Real-time enrichment with webhooks](https://docs.seamless.ai/use-cases/real-time-enrichment-with-webhooks.md): Submit research via the API and process completed records in your app using company-researched and contact-researched webhooks. - [AI sales automation](https://docs.seamless.ai/use-cases/ai-sales-automation.md): Combine the Seamless REST API and MCP for vibe-coder workflows: research in agents, automate pipelines in code. - [End to end company workflow](https://docs.seamless.ai/end-to-end-company-workflow.md) - [End to end contact workflow](https://docs.seamless.ai/end-to-end-contact-workflow.md) - [Receive research results with webhooks](https://docs.seamless.ai/receive-research-results-with-webhooks.md) - [Related resources](https://docs.seamless.ai/related-resources.md): Hand-picked Seamless product education articles to use alongside the public API. - [Build a deterministic agent workflow with Seamless](https://docs.seamless.ai/build-a-deterministic-agent-workflow.md): Build a repeatable AI agent workflow that covers authentication, search, research, and result retrieval with clear branching rules and stop conditions. - [Troubleshoot Seamless API authentication and requests](https://docs.seamless.ai/troubleshoot-authentication-and-request-failures.md): Fix authentication, endpoint sequencing, identifier, and webhook issues with the Seamless API. Each section covers the cause and steps to resolve the failure. - [API HTTP status codes](https://docs.seamless.ai/api-http-status-codes.md): Reference for HTTP status codes returned by the Seamless v1 API, including authentication, rate limit, credit, and license errors. - [MCP Transport](https://docs.seamless.ai/reference/mcp-transport.md): The single transport endpoint for all MCP communication. All tool calls, resource reads, and protocol messages are sent here as JSON-RPC 2.0 requests. - [Get the authenticated user](https://docs.seamless.ai/api-reference/v1/oauth/get-the-authenticated-user.md): Returns basic profile information for the user associated with the current access token. - [Get an access token](https://docs.seamless.ai/api-reference/v1/oauth/get-an-access-token.md) - [Look up location filter values](https://docs.seamless.ai/api-reference/v1/contact-search/look-up-location-filter-values.md): Search the location vocabulary for the exact values a location filter will match. - [Search contacts](https://docs.seamless.ai/api-reference/v1/contact-search/search-contacts.md) - [Search companies](https://docs.seamless.ai/api-reference/v1/company-search/search-companies.md) - [Get Org Contacts](https://docs.seamless.ai/api-reference/v1/org-contacts/get-org-contacts.md): Get a list of contacts from your orgs - [Poll Contact Research](https://docs.seamless.ai/api-reference/v1/contact-research/poll-contact-research.md): Get the results/status of a contact research request - [Research contacts](https://docs.seamless.ai/api-reference/v1/contact-research/research-contacts.md): Research contacts by searchResultId from contact search results or Contact enrich - [Get Org Companies](https://docs.seamless.ai/api-reference/v1/org-companies/get-org-companies.md): Get a list of companies from your orgs - [Poll Company Research](https://docs.seamless.ai/api-reference/v1/company-research/poll-company-research.md): Get the results/status of a company research - [Research companies](https://docs.seamless.ai/api-reference/v1/company-research/research-companies.md): Research companies by search result IDs from `/search/companies` and/or direct company identifiers (`domain`, `companyName`). - [List templates](https://docs.seamless.ai/api-reference/v2/templates/list-templates.md): Returns the authenticated user's templates, optionally filtered by type or free-text search, with pagination metadata. - [Create a template](https://docs.seamless.ai/api-reference/v2/templates/create-a-template.md): Creates a new template for the authenticated user. - [Get a template by ID](https://docs.seamless.ai/api-reference/v2/templates/get-a-template-by-id.md): Retrieves a single template owned by the authenticated user. - [Update a template](https://docs.seamless.ai/api-reference/v2/templates/update-a-template.md): Updates a template owned by the authenticated user. - [Delete a template](https://docs.seamless.ai/api-reference/v2/templates/delete-a-template.md): Deletes a template owned by the authenticated user. - [List tasks](https://docs.seamless.ai/api-reference/v2/tasks/list-tasks.md): List tasks assigned to the authenticated user, with optional filtering by campaign, status, or type. - [Create a task](https://docs.seamless.ai/api-reference/v2/tasks/create-a-task.md): Create a new task assigned to the authenticated user. - [Get a task](https://docs.seamless.ai/api-reference/v2/tasks/get-a-task.md): Retrieve a single task by its ID. - [Update a task](https://docs.seamless.ai/api-reference/v2/tasks/update-a-task.md): Update a task's properties such as name, due date, description, priority, or status. - [Delete a task](https://docs.seamless.ai/api-reference/v2/tasks/delete-a-task.md): Delete a task by its ID. - [Execute a task action](https://docs.seamless.ai/api-reference/v2/tasks/execute-a-task-action.md): Execute an action on a task, such as completing, pausing, skipping, or canceling it. - [List saved searches](https://docs.seamless.ai/api-reference/v2/saved-searches/list-saved-searches.md): Returns the authenticated user's saved searches, optionally filtered by type. - [Create a saved search](https://docs.seamless.ai/api-reference/v2/saved-searches/create-a-saved-search.md): Creates a new saved search for the authenticated user. - [Get a saved search by ID](https://docs.seamless.ai/api-reference/v2/saved-searches/get-a-saved-search-by-id.md): Retrieves a single saved search owned by the authenticated user. - [Update a saved search](https://docs.seamless.ai/api-reference/v2/saved-searches/update-a-saved-search.md): Updates a saved search owned by the authenticated user. Only provided fields are changed. - [Delete a saved search](https://docs.seamless.ai/api-reference/v2/saved-searches/delete-a-saved-search.md): Deletes a saved search owned by the authenticated user. This operation is idempotent and returns success even if no matching saved search exists. - [Get the authenticated user](https://docs.seamless.ai/api-reference/v2/oauth/get-the-authenticated-user.md): Returns basic profile information for the user associated with the current access token. - [Get an access token](https://docs.seamless.ai/api-reference/v2/oauth/get-an-access-token.md) - [List all lists](https://docs.seamless.ai/api-reference/v2/lists/list-all-lists.md): Returns all lists (tags) belonging to the authenticated user. - [Create a list](https://docs.seamless.ai/api-reference/v2/lists/create-a-list.md): Creates a new list (tag) for the authenticated user. - [Get a list by ID](https://docs.seamless.ai/api-reference/v2/lists/get-a-list-by-id.md): Retrieves a single list (tag) owned by the authenticated user. - [Update a list](https://docs.seamless.ai/api-reference/v2/lists/update-a-list.md): Updates the name of a list (tag) owned by the authenticated user. - [Delete a list](https://docs.seamless.ai/api-reference/v2/lists/delete-a-list.md): Deletes a list (tag) owned by the authenticated user. - [Retrieve feature access flags](https://docs.seamless.ai/api-reference/v2/features/retrieve-feature-access-flags.md): Returns the set of feature access flags for the authenticated user's organization, mapping internal feature names to their public API equivalents. - [List engagement statuses](https://docs.seamless.ai/api-reference/v2/reference/list-engagement-statuses.md): Returns the system-level engagement statuses (e.g. opened, replied, bounced) available across the platform. - [List email footers](https://docs.seamless.ai/api-reference/v2/reference/list-email-footers.md): Returns the email footers configured by the authenticated user. - [List connected email accounts](https://docs.seamless.ai/api-reference/v2/reference/list-connected-email-accounts.md): Returns the email accounts connected by the authenticated user, optionally filtered by search text and paginated. Sensitive credentials such as tokens are never returned. - [List contact statuses](https://docs.seamless.ai/api-reference/v2/reference/list-contact-statuses.md): Returns all contact (prospect) statuses configured for the authenticated user's organization. - [Send an email](https://docs.seamless.ai/api-reference/v2/emails/send-an-email.md): Creates and immediately sends an email to a contact in a single step. The sender (from) is resolved to a connected email account. - [Send an email preview](https://docs.seamless.ai/api-reference/v2/emails/send-an-email-preview.md): Sends a preview/test copy of an email to the specified address without recording it as a contact engagement. If a from address is provided it is resolved to a connected email account; otherwise the user's default account is used. - [Create an email draft](https://docs.seamless.ai/api-reference/v2/emails/create-an-email-draft.md): Creates a draft email for a contact. The sender (from) is resolved to a connected email account. Optionally schedules the draft for later sending. - [Send an email draft](https://docs.seamless.ai/api-reference/v2/emails/send-an-email-draft.md): Sends a previously created email draft. The sender account is resolved from the draft, or from the optional from address if provided. - [Get an email](https://docs.seamless.ai/api-reference/v2/emails/get-an-email.md): Retrieves a single email (draft or sent) by its ID. - [Update an email draft](https://docs.seamless.ai/api-reference/v2/emails/update-an-email-draft.md): Updates the content of an existing email draft and optionally schedules it for sending. The contact and sender account are resolved from the existing draft. - [Send bulk email](https://docs.seamless.ai/api-reference/v2/emails/send-bulk-email.md): Queues email to saved contacts matching `filters`. `filters` must include at least one of `lists`, `contactIds`, `campaignIds`, or a text query. The audience is resolved before anything is queued. More than 500 matched contacts is a 400 — the send is not truncated. Opted-out and unsubscribed contact… - [Retrieve credit balances](https://docs.seamless.ai/api-reference/v2/credits/retrieve-credit-balances.md): Returns the authenticated user's remaining credit balances, keyed by credit category. Only active credit-product categories with a remaining balance or a refresh date are included. - [List campaigns](https://docs.seamless.ai/api-reference/v2/campaigns/list-campaigns.md): List campaigns for the authenticated user's organization. - [Create a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/create-a-campaign.md): Create a new campaign with optional inline steps and contacts. - [Get campaign metrics](https://docs.seamless.ai/api-reference/v2/campaigns/get-campaign-metrics.md): Retrieve per-step engagement metrics for a campaign. - [Get a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/get-a-campaign.md): Retrieve a single campaign by ID. - [Update a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/update-a-campaign.md): Update a campaign's name, visibility, or linked email accounts. - [Delete a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/delete-a-campaign.md): Delete a campaign by ID. The deletion is performed via a lifecycle action that enforces state checks. - [Clone a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/clone-a-campaign.md): Clone a campaign and its steps into a new campaign. - [Execute a campaign action](https://docs.seamless.ai/api-reference/v2/campaigns/execute-a-campaign-action.md): Execute a lifecycle action on a campaign (start, pause, resume, complete, archive, unarchive, delete). The START action requires the campaign to have at least one connected sending email account and a Max Active Contacts value greater than 0 (set maxActiveContacts when creating the campaign or via P… - [List campaign steps](https://docs.seamless.ai/api-reference/v2/campaigns/list-campaign-steps.md): List all steps in a campaign. - [Create a campaign step](https://docs.seamless.ai/api-reference/v2/campaigns/create-a-campaign-step.md): Create a new step in a campaign. - [Update a campaign step](https://docs.seamless.ai/api-reference/v2/campaigns/update-a-campaign-step.md): Update a campaign step's configuration. - [Delete a campaign step](https://docs.seamless.ai/api-reference/v2/campaigns/delete-a-campaign-step.md): Delete a campaign step. Remaining step numbers are recalculated. - [Execute a campaign step action](https://docs.seamless.ai/api-reference/v2/campaigns/execute-a-campaign-step-action.md): Execute an action on a campaign step (pause, resume, skip). - [List campaign contacts](https://docs.seamless.ai/api-reference/v2/campaigns/list-campaign-contacts.md): List contacts enrolled in a campaign with pagination. - [Add contacts to a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/add-contacts-to-a-campaign.md): Add contacts to a campaign by their IDs. - [Remove contacts from a campaign](https://docs.seamless.ai/api-reference/v2/campaigns/remove-contacts-from-a-campaign.md): Remove contacts from a campaign by their IDs. - [List call sentiments](https://docs.seamless.ai/api-reference/v2/calls/list-call-sentiments.md): Lists the call sentiments available to the organization, used to capture the perceived sentiment of a logged call. - [Log a call](https://docs.seamless.ai/api-reference/v2/calls/log-a-call.md): Logs a call outcome for a contact, optionally associating a disposition, sentiment, call script, duration, and the task it was made from. - [List call dispositions](https://docs.seamless.ai/api-reference/v2/calls/list-call-dispositions.md): Lists the call dispositions available to the organization, used to categorize the outcome of a logged call. - [Retrieve the activity feed](https://docs.seamless.ai/api-reference/v2/activity/retrieve-the-activity-feed.md): Returns the organization's activity feed (emails, calls, and other engagement events), optionally filtered by contact, campaign, or free-text search. - [Look up location filter values](https://docs.seamless.ai/api-reference/v2/contact-search/look-up-location-filter-values.md): Search the location vocabulary for the exact values a location filter will match. - [Search contacts](https://docs.seamless.ai/api-reference/v2/contact-search/search-contacts.md) - [Search companies](https://docs.seamless.ai/api-reference/v2/company-search/search-companies.md) - [Get Org Contacts](https://docs.seamless.ai/api-reference/v2/org-contacts/get-org-contacts.md): Get a list of contacts from your orgs - [Update Contacts](https://docs.seamless.ai/api-reference/v2/org-contacts/update-contacts.md): Applies an update to a batch of your saved contacts. Only the properties you send are changed; the rest of each contact is left alone. - [Poll Contact Research](https://docs.seamless.ai/api-reference/v2/contact-research/poll-contact-research.md): Get the results/status of a contact research request - [Research contacts](https://docs.seamless.ai/api-reference/v2/contact-research/research-contacts.md): Research contacts by searchResultId from contact search results or Contact enrich - [Get Org Companies](https://docs.seamless.ai/api-reference/v2/org-companies/get-org-companies.md): Get a list of companies from your orgs - [Update Companies](https://docs.seamless.ai/api-reference/v2/org-companies/update-companies.md): Applies an update to a batch of your saved companies. Only the properties you send are changed; the rest of each company is left alone. - [Poll Company Research](https://docs.seamless.ai/api-reference/v2/company-research/poll-company-research.md): Get the results/status of a company research - [Research companies](https://docs.seamless.ai/api-reference/v2/company-research/research-companies.md): Research companies by search result IDs from `/search/companies` and/or direct company identifiers (`domain`, `companyName`). - [Overview](https://docs.seamless.ai/mcp-docs.md): Connect AI agents to Seamless.AI with 57 MCP tools across search, research, campaigns, and outreach. - [Quickstart](https://docs.seamless.ai/mcp/quickstart.md): Connect the Seamless MCP server from Claude Desktop in 60 seconds. - [Cursor](https://docs.seamless.ai/mcp/install/cursor.md): Connect Seamless MCP in Cursor. - [VS Code](https://docs.seamless.ai/mcp/install/vs-code.md): Connect Seamless MCP in VS Code. - [Claude Code](https://docs.seamless.ai/mcp/install/claude-code.md): Connect Seamless MCP in Claude Code. - [Claude Desktop](https://docs.seamless.ai/mcp/install/claude-desktop.md): Connect Seamless MCP in Claude Desktop. - [ChatGPT](https://docs.seamless.ai/mcp/install/chatgpt.md): Connect Seamless MCP in ChatGPT. - [Windsurf](https://docs.seamless.ai/mcp/install/windsurf.md): Connect Seamless MCP in Windsurf. - [Gemini CLI](https://docs.seamless.ai/mcp/install/gemini-cli.md): Connect Seamless MCP in Gemini CLI. - [Cline](https://docs.seamless.ai/mcp/install/cline.md): Connect Seamless MCP in Cline. - [Amazon Bedrock](https://docs.seamless.ai/mcp/install/amazon-bedrock.md): Connect Seamless MCP from Amazon Bedrock AgentCore. - [Amazon Q](https://docs.seamless.ai/mcp/install/amazon-q.md): Connect Seamless MCP in Amazon Q Developer. - [BoltAI](https://docs.seamless.ai/mcp/install/boltai.md): Connect Seamless MCP in BoltAI. - [Other clients](https://docs.seamless.ai/mcp/install/other-clients.md): Connect Seamless MCP from any MCP-compatible client. - [Authentication](https://docs.seamless.ai/mcp/authentication.md): Authenticate to the Seamless MCP server with OAuth 2.1 or an API key. - [Risk tiers](https://docs.seamless.ai/mcp/risk-tiers.md): Understand read, write, and destructive MCP tool labels and how to configure client confirmations. - [Access control](https://docs.seamless.ai/mcp/access-control.md): License requirements for each MCP tool domain. - [Resources](https://docs.seamless.ai/mcp/resources.md): Read-only seamless:// URIs for credits, templates, email accounts, and Connect config. - [Search](https://docs.seamless.ai/mcp/tools/search.md): search_contacts, search_companies, and lookup_locations MCP tools. - [Research](https://docs.seamless.ai/mcp/tools/research.md): research_contacts, research_companies, and poll tools. - [User](https://docs.seamless.ai/mcp/tools/user.md): get_credits, get_my_contacts, get_my_companies, update_my_contact, and update_my_company MCP tools. - [Lists](https://docs.seamless.ai/mcp/tools/lists.md): Contact list CRUD MCP tools. - [Saved searches](https://docs.seamless.ai/mcp/tools/saved-searches.md): Saved search CRUD MCP tools. - [Campaigns](https://docs.seamless.ai/mcp/tools/campaigns.md): Campaign and step management MCP tools. Requires Connect access. - [Templates](https://docs.seamless.ai/mcp/tools/templates.md): Email template CRUD MCP tools. Requires Connect access. - [Email](https://docs.seamless.ai/mcp/tools/email.md): Email accounts, drafts, send, and bulk email MCP tools. - [Calls](https://docs.seamless.ai/mcp/tools/calls.md): log_call and disposition MCP tools. Requires Connect access. - [Tasks](https://docs.seamless.ai/mcp/tools/tasks.md): Task management MCP tools. Requires Connect access. - [Activity](https://docs.seamless.ai/mcp/tools/activity.md): Activity feed and Connect config MCP tools. - [Workflows](https://docs.seamless.ai/mcp/workflows.md): Reference MCP workflows for prospecting, campaigns, activity digests, and job-change outreach. - [Prospect to meeting](https://docs.seamless.ai/mcp/workflows/prospect-to-meeting.md): Search, research, resolve a saved contact ID, and email a prospect. - [Bulk enrich and campaign](https://docs.seamless.ai/mcp/workflows/bulk-enrich-and-campaign.md): Research contacts, resolve saved IDs, and create a campaign with an email step. - [Daily activity digest](https://docs.seamless.ai/mcp/workflows/daily-activity-digest.md): Pull the activity feed, summarize, and post to Slack. - [Job change trigger](https://docs.seamless.ai/mcp/workflows/job-change-trigger.md): Detect a job change, research the new role, and send outbound. ## OpenAPI Specs - [mcp-openapi](https://gist.githubusercontent.com/JustinAlia/6ff38a671f5f79895444b77c57f3afff/raw/mcp-openapi.yaml) - [openapi](https://gist.githubusercontent.com/JustinAlia/6ff38a671f5f79895444b77c57f3afff/raw/openapi.json) - [v2-openapi](https://gist.githubusercontent.com/JustinAlia/6ff38a671f5f79895444b77c57f3afff/raw/v2-openapi.json) - [mcp-openapi](/mcp-openapi.yaml) - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.