# Enginy API Docs ## Docs - [Actions guide](https://docs.enginy.ai/api-reference/actions-guide.md) - [Get actions run status](https://docs.enginy.ai/api-reference/actions/get-actions-run-status.md): Check the status of an actions run. - [Start an actions run](https://docs.enginy.ai/api-reference/actions/start-an-actions-run.md): Creates an actions run to execute one or more workflow actions on contacts, companies, or lists. Supports optional webhook notifications when actions complete. See the "Actions Completed Webhook" in the Webhooks section for the webhook payload structure and implementation details. - [Fetch results from an AI Finder preview](https://docs.enginy.ai/api-reference/ai-finder/fetch-results-from-an-ai-finder-preview.md): **What it does.** Returns a page of the actual matching records the provider search produced for a cached `previewId` — i.e. the contacts or companies the filters matched. This is what the web UI displays under the preview. No data is persisted; every call is a live provider API request. - [Import an AI Finder preview](https://docs.enginy.ai/api-reference/ai-finder/import-an-ai-finder-preview.md): **What it does.** Takes a cached `previewId` and starts the provider-specific import workflow into a destination list. This is the final step for new-list building after you create or identify the destination list. Returns an `actionsId` you can use to monitor progress. - [Preview an AI Finder search](https://docs.enginy.ai/api-reference/ai-finder/preview-an-ai-finder-search.md): **What it does.** Takes either a natural-language query (e.g. *"VP of Finance at Series B SaaS companies in California"*) or a saved filter ID and returns a `previewId`. Text queries run through AI Finder to generate provider-specific filters; saved filters are loaded directly into the preview cache… - [Refine an AI Finder preview](https://docs.enginy.ai/api-reference/ai-finder/refine-an-ai-finder-preview.md): **What it does.** Takes an existing `previewId` plus a natural-language `feedback` string (e.g. *"exclude agencies"*, *"only US companies"*, *"narrow to 50–500 employees"*) and runs a NEW AI search that combines the original query with your refinement. Returns a brand-new `previewId`; the original p… - [Get AI playbook](https://docs.enginy.ai/api-reference/ai-playbook/get-ai-playbook.md): Retrieve the company AI playbook for the workspace, including company context, products, ICPs, competitors, testimonials, FAQs, and ideal companies. - [AI Variables](https://docs.enginy.ai/api-reference/ai-variables-guide.md): How to create, update, delete, and reference AI Variables through the Enginy OpenAPI - [Create an AI variable](https://docs.enginy.ai/api-reference/ai-variables/create-an-ai-variable.md): Create a new AI variable in the public/manual model. Prompt placeholders must come from the relevant fields endpoint output for this workspace; generic conversation placeholders such as `previousMessage` are not supported here. - [Create company AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/create-company-ai-variable-folder.md): Create a company AI variable folder. Folder names must be unique per entity. - [Create contact AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/create-contact-ai-variable-folder.md): Create a contact AI variable folder. Folder names must be unique per entity. - [Delete an AI variable](https://docs.enginy.ai/api-reference/ai-variables/delete-an-ai-variable.md): Delete an AI variable and its generated smart-field values. - [Delete company AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/delete-company-ai-variable-folder.md): Delete a company AI variable folder. Child folders are moved to the deleted folder's parent, and AI variables inside the deleted folder are reassigned to that same parent instead of being deleted. - [Delete contact AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/delete-contact-ai-variable-folder.md): Delete a contact AI variable folder. Child folders are moved to the deleted folder's parent, and AI variables inside the deleted folder are reassigned to that same parent instead of being deleted. - [Get an AI variable](https://docs.enginy.ai/api-reference/ai-variables/get-an-ai-variable.md): Retrieve a single AI variable by ID. - [Get company AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/get-company-ai-variable-folder.md): Get a company AI variable folder with its child folders, AI variables, and breadcrumb ancestors. - [Get contact AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/get-contact-ai-variable-folder.md): Get a contact AI variable folder with its child folders, AI variables, and breadcrumb ancestors. - [List AI variables](https://docs.enginy.ai/api-reference/ai-variables/list-ai-variables.md): Retrieve a paginated list of AI variables. - [List company AI variable folders](https://docs.enginy.ai/api-reference/ai-variables/list-company-ai-variable-folders.md): List company AI variable folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too. - [List contact AI variable folders](https://docs.enginy.ai/api-reference/ai-variables/list-contact-ai-variable-folders.md): List contact AI variable folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too. - [Update an AI variable](https://docs.enginy.ai/api-reference/ai-variables/update-an-ai-variable.md): Update an existing AI variable in the public/manual model. Prompt placeholders must come from the relevant fields endpoint output for this workspace; generic conversation placeholders such as `previousMessage` are not supported here. - [Update company AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/update-company-ai-variable-folder.md): Update a company AI variable folder name or parent. Moving a folder into one of its descendants is not allowed. - [Update contact AI variable folder](https://docs.enginy.ai/api-reference/ai-variables/update-contact-ai-variable-folder.md): Update a contact AI variable folder name or parent. Moving a folder into one of its descendants is not allowed. - [Validate API key](https://docs.enginy.ai/api-reference/authentication/validate-api-key.md): Validate API key authentication. - [Add blocklist entries by value](https://docs.enginy.ai/api-reference/blocklist/add-blocklist-entries-by-value.md): Add raw blocklist entries by `(type, value)`. LinkedIn URL values are normalized; entries that cannot be normalized are skipped and reported in the response. - [Block contacts or companies by ID](https://docs.enginy.ai/api-reference/blocklist/block-contacts-or-companies-by-id.md): Block contacts (`LEAD`) or companies (`COMPANY`) by their Enginy IDs. The server resolves each entity to its emails, LinkedIn URLs, and domains and creates blocklist entries for each. Use `blockTypes` to restrict which value kinds are extracted. - [Delete a blocklist entry](https://docs.enginy.ai/api-reference/blocklist/delete-a-blocklist-entry.md): Delete a single blocklist entry by ID. - [Delete blocklist entries in bulk](https://docs.enginy.ai/api-reference/blocklist/delete-blocklist-entries-in-bulk.md): Delete multiple blocklist entries by ID in a single request. - [List blocklist entries](https://docs.enginy.ai/api-reference/blocklist/list-blocklist-entries.md): Retrieve a paginated list of blocklist entries (blocked emails, LinkedIn URLs, domains, and company LinkedIn URLs). - [Update a blocklist entry](https://docs.enginy.ai/api-reference/blocklist/update-a-blocklist-entry.md): Update an existing blocklist entry. Updates to LinkedIn URL values are normalized before persisting. - [Campaign Creation Guide](https://docs.enginy.ai/api-reference/campaigns-guide.md): How to structure POST /v1/campaigns requests with steps, branches, and task owners - [Add a contact group to a campaign](https://docs.enginy.ai/api-reference/campaigns/add-a-contact-group-to-a-campaign.md): Creates new conversations by adding every contact in a contact group to a campaign. - [Add a contact to a campaign](https://docs.enginy.ai/api-reference/campaigns/add-a-contact-to-a-campaign.md): Creates a new conversation by adding a contact to a campaign. - [Clone a campaign](https://docs.enginy.ai/api-reference/campaigns/clone-a-campaign.md): Clone a campaign with a new identity, preserving workflow, messages, tasks, tags, and folder. - [Create campaign](https://docs.enginy.ai/api-reference/campaigns/create-campaign.md): Create a draft campaign from the public simplified sequence model. Best for new campaigns or rewrites that fit the supported public step types; this endpoint does not preserve arbitrary internal editor-only graph wiring from an existing campaign. - [Create campaign folder](https://docs.enginy.ai/api-reference/campaigns/create-campaign-folder.md): Create a campaign folder. Folder names must be unique within the same parent folder. - [Delete campaign folder](https://docs.enginy.ai/api-reference/campaigns/delete-campaign-folder.md): Delete a campaign folder. Descendant folders are deleted too. Campaigns inside the deleted folders are not deleted; they are unassigned from the folder hierarchy. - [Get a single campaign](https://docs.enginy.ai/api-reference/campaigns/get-a-single-campaign.md): Retrieve a specific campaign as the public simplified sequence plus campaign settings. Use this when you need a readable campaign in the supported public step model, not the full internal editor graph. - [Get campaign analytics](https://docs.enginy.ai/api-reference/campaigns/get-campaign-analytics.md): Retrieve overall and daily analytics for a specific campaign. - [Get campaign folder](https://docs.enginy.ai/api-reference/campaigns/get-campaign-folder.md): Get a campaign folder with its child folders, campaigns, and breadcrumb ancestors. - [Get campaigns](https://docs.enginy.ai/api-reference/campaigns/get-campaigns.md): Retrieve a paginated list of campaigns. - [Get conversation messages](https://docs.enginy.ai/api-reference/campaigns/get-conversation-messages.md): Retrieve all messages for a specific conversation. - [Get conversations analytics](https://docs.enginy.ai/api-reference/campaigns/get-conversations-analytics.md): Retrieve row conversation analytics data with contact and campaign information. - [List campaign folders](https://docs.enginy.ai/api-reference/campaigns/list-campaign-folders.md): List campaign folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too. - [Pause a contact in a campaign](https://docs.enginy.ai/api-reference/campaigns/pause-a-contact-in-a-campaign.md): Pauses an active conversation in a campaign. - [Update campaign folder](https://docs.enginy.ai/api-reference/campaigns/update-campaign-folder.md): Update a campaign folder name or parent. Moving a folder into one of its descendants is not allowed. - [Update campaign status](https://docs.enginy.ai/api-reference/campaigns/update-campaign-status.md): Update campaign status (activate, complete, pause, or delete a campaign). - [Validate campaign](https://docs.enginy.ai/api-reference/campaigns/validate-campaign.md): Validate a simplified public campaign payload against the public step schema without creating a campaign. Use this before `POST /v1/campaigns` when you already have a proposed request body. This validates only the submitted payload and does not read or inspect an existing saved campaign. - [Validate campaign draft](https://docs.enginy.ai/api-reference/campaigns/validate-campaign-draft.md): Validate the stored editor draft graph for an already-created campaign by `campaignId` and return blocking errors plus non-blocking warnings. Use this to inspect an existing saved draft, including incomplete or complex internal drafts. This does not validate an arbitrary request payload. - [Create a new company](https://docs.enginy.ai/api-reference/companies/create-a-new-company.md): Create a new company. If `mergeWithExisting` is true (default), the company will merge into an existing record matched by normalized LinkedIn URL, domain, website, or exact name. Set `mergeWithExisting` to false to always create a new company. - [Delete a company](https://docs.enginy.ai/api-reference/companies/delete-a-company.md): Soft delete a company by ID and remove it from company lists. - [Get a single company](https://docs.enginy.ai/api-reference/companies/get-a-single-company.md): Retrieve a single company by ID. - [Get companies](https://docs.enginy.ai/api-reference/companies/get-companies.md): Retrieve a paginated list of companies. - [Get company field metadata](https://docs.enginy.ai/api-reference/companies/get-company-field-metadata.md): Retrieve the source-of-truth subset of company fields that can be referenced in AI-variable prompts and requested through the companies endpoints. This is not the full company field catalog; it only includes AI-variable-compatible fields for this workspace. Without query parameters this returns the… - [Search companies with advanced filters](https://docs.enginy.ai/api-reference/companies/search-companies-with-advanced-filters.md): Search companies with advanced filtering options. - [Update company fields](https://docs.enginy.ai/api-reference/companies/update-company-fields.md): Update company fields (standard and custom/AI fields by name). - [Create a new contact](https://docs.enginy.ai/api-reference/contacts/create-a-new-contact.md): Create a new contact. If `mergeWithExisting` is true (default), the contact will merge into an existing record matched by normalized LinkedIn profile URL, or by exact first name + last name + company name. If the provided company already exists, the contact will also be associated with a company mat… - [Delete a contact](https://docs.enginy.ai/api-reference/contacts/delete-a-contact.md): Soft delete a contact by ID and remove it from contact lists. - [Get a single contact](https://docs.enginy.ai/api-reference/contacts/get-a-single-contact.md): Retrieve a single contact by ID. - [Get contact field metadata](https://docs.enginy.ai/api-reference/contacts/get-contact-field-metadata.md): Retrieve the source-of-truth subset of contact fields that can be referenced in AI-variable prompts and requested through the contacts endpoints. This is not the full contact field catalog; it only includes AI-variable-compatible fields for this workspace. Without query parameters this returns the f… - [Get contacts](https://docs.enginy.ai/api-reference/contacts/get-contacts.md): Retrieve a paginated list of contacts. - [Search contacts with advanced filters](https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters.md): Search contacts with advanced filtering options. - [Update contact fields](https://docs.enginy.ai/api-reference/contacts/update-contact-fields.md): Update contact fields (standard and custom/AI fields by name). You can also set `companyId` to associate the contact with an existing company, or `null` to clear the current association. - [Get credit balance](https://docs.enginy.ai/api-reference/credits/get-credit-balance.md): Retrieve current credit balance and plan information. - [Get credit pricing](https://docs.enginy.ai/api-reference/credits/get-credit-pricing.md): Retrieve credit costs for all available actions. - [Overview](https://docs.enginy.ai/api-reference/custom-crm/activities.md): Log LinkedIn and email conversation activity to your CRM - [Overview](https://docs.enginy.ai/api-reference/custom-crm/associations.md): Endpoint specification for linking contacts to companies - [Overview](https://docs.enginy.ai/api-reference/custom-crm/companies.md): Endpoint specification for receiving companies from Enginy - [Sync & Update Guide](https://docs.enginy.ai/api-reference/custom-crm/companies-sync.md): Sync companies and receive updates from your CRM - [Overview](https://docs.enginy.ai/api-reference/custom-crm/contacts.md): Endpoint specification for receiving contacts from Enginy - [Sync & Update Guide](https://docs.enginy.ai/api-reference/custom-crm/contacts-sync.md): Sync contacts and receive updates from your CRM - [Create activity](https://docs.enginy.ai/api-reference/custom-crm/endpoints/activities/create.md): Log conversation activity (LinkedIn, email, etc.) - [Create associations](https://docs.enginy.ai/api-reference/custom-crm/endpoints/associations-create.md): Link contacts to companies in your CRM - [Create companies](https://docs.enginy.ai/api-reference/custom-crm/endpoints/companies/create.md): Create new companies in your CRM - [Sync companies](https://docs.enginy.ai/api-reference/custom-crm/endpoints/companies/sync.md): Find existing companies in your CRM and return their IDs - [Update companies](https://docs.enginy.ai/api-reference/custom-crm/endpoints/companies/update.md): Update existing companies in your CRM - [Create contacts](https://docs.enginy.ai/api-reference/custom-crm/endpoints/contacts/create.md): Create new contacts in your CRM - [Sync contacts](https://docs.enginy.ai/api-reference/custom-crm/endpoints/contacts/sync.md): Find existing contacts in your CRM and return their IDs - [Update contacts](https://docs.enginy.ai/api-reference/custom-crm/endpoints/contacts/update.md): Update existing contacts in your CRM - [Health check](https://docs.enginy.ai/api-reference/custom-crm/endpoints/health.md): Validate the CRM connection - [Complete tasks batch](https://docs.enginy.ai/api-reference/custom-crm/endpoints/tasks/batch-complete.md): Complete multiple tasks at once - [Get tasks batch](https://docs.enginy.ai/api-reference/custom-crm/endpoints/tasks/batch-get.md): Retrieve multiple tasks by their IDs - [Create task](https://docs.enginy.ai/api-reference/custom-crm/endpoints/tasks/create.md): Create a new task in your CRM - [Get task](https://docs.enginy.ai/api-reference/custom-crm/endpoints/tasks/get.md): Retrieve a single task by ID - [Update task](https://docs.enginy.ai/api-reference/custom-crm/endpoints/tasks/update.md): Update or complete a task - [Get Users](https://docs.enginy.ai/api-reference/custom-crm/endpoints/users/get.md): Fetch users/owners for assignment (optional endpoint) - [Examples](https://docs.enginy.ai/api-reference/custom-crm/examples.md): Complete implementation examples for Custom CRM integration - [Overview](https://docs.enginy.ai/api-reference/custom-crm/overview.md): API specification for endpoints you must implement in your CRM - [Overview](https://docs.enginy.ai/api-reference/custom-crm/tasks.md): Task management endpoints for your Custom CRM - [Create or update an identity mailbox](https://docs.enginy.ai/api-reference/identities/create-or-update-an-identity-mailbox.md): Create or update an IMAP mailbox for a specific identity so mailbox setup can be automated over API. Programmatic setup currently supports IMAP credentials only. - [Get identities](https://docs.enginy.ai/api-reference/identities/get-identities.md): Retrieve a paginated list of identities. - [Get identity mailboxes](https://docs.enginy.ai/api-reference/identities/get-identity-mailboxes.md): Retrieve all configured mailboxes for a specific identity. - [Get identity performance metrics](https://docs.enginy.ai/api-reference/identities/get-identity-performance-metrics.md): Retrieve identity performance metrics for a date range. - [Archive inbox contact thread](https://docs.enginy.ai/api-reference/inbox/archive-inbox-contact-thread.md): Archive one inbox contact thread. - [Attach inbox tags to a contact thread](https://docs.enginy.ai/api-reference/inbox/attach-inbox-tags-to-a-contact-thread.md): Attach one or more tags to a contact thread. - [Build inbox link](https://docs.enginy.ai/api-reference/inbox/build-inbox-link.md): Build a deep-link URL into the user's /inbox view with the given filters applied. - [Create inbox tag](https://docs.enginy.ai/api-reference/inbox/create-inbox-tag.md): Create a reusable inbox tag. - [Get inbox contact messages](https://docs.enginy.ai/api-reference/inbox/get-inbox-contact-messages.md): Return the flattened inbox message history for a contact. - [Get inbox tag](https://docs.enginy.ai/api-reference/inbox/get-inbox-tag.md): Retrieve one inbox tag by ID. - [List inbox tags](https://docs.enginy.ai/api-reference/inbox/list-inbox-tags.md): List the tags that can be applied to inbox threads. - [List inbox threads](https://docs.enginy.ai/api-reference/inbox/list-inbox-threads.md): List inbox threads grouped by contact. - [Remove inbox tags from a contact thread](https://docs.enginy.ai/api-reference/inbox/remove-inbox-tags-from-a-contact-thread.md): Remove one or more tags from a contact thread. - [Send inbox message](https://docs.enginy.ai/api-reference/inbox/send-inbox-message.md): Send a manual inbox reply through Enginy conversation routing. - [Unarchive inbox contact thread](https://docs.enginy.ai/api-reference/inbox/unarchive-inbox-contact-thread.md): Unarchive one inbox contact thread. - [Introduction](https://docs.enginy.ai/api-reference/introduction.md): Overview of Enginy public API authentication, scopes, and available endpoint groups - [Add companies to a list](https://docs.enginy.ai/api-reference/lists/add-companies-to-a-list.md): Add companies to a list. - [Add contacts to a list](https://docs.enginy.ai/api-reference/lists/add-contacts-to-a-list.md): Add contacts to a list. - [Create a list](https://docs.enginy.ai/api-reference/lists/create-a-list.md): Create a new empty destination list for contacts or companies. For a user request like "build/find me a new list of prospects", create the destination list, then use AI Finder preview and import tools to populate it instead of returning existing CRM contacts. - [Create company list folder](https://docs.enginy.ai/api-reference/lists/create-company-list-folder.md): Create a company list folder. Folder names must be unique within the same parent folder. - [Create contact list folder](https://docs.enginy.ai/api-reference/lists/create-contact-list-folder.md): Create a contact list folder. Folder names must be unique within the same parent folder. - [Delete company list folder](https://docs.enginy.ai/api-reference/lists/delete-company-list-folder.md): Delete a company list folder. Descendant folders are deleted too. Lists inside the deleted folders are not deleted; they are unassigned from the folder hierarchy. - [Delete contact list folder](https://docs.enginy.ai/api-reference/lists/delete-contact-list-folder.md): Delete a contact list folder. Descendant folders are deleted too. Lists inside the deleted folders are not deleted; they are unassigned from the folder hierarchy. - [Get company list folder](https://docs.enginy.ai/api-reference/lists/get-company-list-folder.md): Get a company list folder with its child folders, lists, and breadcrumb ancestors. - [Get contact list folder](https://docs.enginy.ai/api-reference/lists/get-contact-list-folder.md): Get a contact list folder with its child folders, lists, and breadcrumb ancestors. - [Get lists](https://docs.enginy.ai/api-reference/lists/get-lists.md): Retrieve a paginated list of existing contact or company lists. Use this to find an existing list or destination list ID; do not use it as the answer when the user asks you to build a new prospecting list. - [Import a list from AI Finder](https://docs.enginy.ai/api-reference/lists/import-a-list-from-ai-finder.md): Use AI Finder to generate a new contact or company search, then import the results into a destination list. This is the right workflow when the user asks for a new prospecting list rather than existing records already stored in Enginy. Returns an actions ID that can be monitored via GET /v1/actions/… - [List company list folders](https://docs.enginy.ai/api-reference/lists/list-company-list-folders.md): List company list folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too. - [List contact list folders](https://docs.enginy.ai/api-reference/lists/list-contact-list-folders.md): List contact list folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too. - [List folders](https://docs.enginy.ai/api-reference/lists/list-folders.md): Retrieve a paginated list of list folders across both contacts and companies. This preserves the legacy contract and adds campaign-specific folder endpoints separately. - [Move companies between lists](https://docs.enginy.ai/api-reference/lists/move-companies-between-lists.md): Move companies between lists. - [Move contacts between lists](https://docs.enginy.ai/api-reference/lists/move-contacts-between-lists.md): Move contacts between lists. - [Remove companies from a list](https://docs.enginy.ai/api-reference/lists/remove-companies-from-a-list.md): Remove companies from a list. - [Remove contacts from a list](https://docs.enginy.ai/api-reference/lists/remove-contacts-from-a-list.md): Remove contacts from a list. - [Update company list folder](https://docs.enginy.ai/api-reference/lists/update-company-list-folder.md): Update a company list folder name or parent. Moving a folder into one of its descendants is not allowed. - [Update contact list folder](https://docs.enginy.ai/api-reference/lists/update-contact-list-folder.md): Update a contact list folder name or parent. Moving a folder into one of its descendants is not allowed. - [Rate Limits](https://docs.enginy.ai/api-reference/rate-limits.md): Understanding API rate limits and best practices for managing your requests - [Create a saved filter](https://docs.enginy.ai/api-reference/saved-filters/create-a-saved-filter.md): Create a saved AI Finder filter for later reuse. Filters are provider-aware and can be loaded directly into preview creation via `savedFilterId`. - [Get saved filters](https://docs.enginy.ai/api-reference/saved-filters/get-saved-filters.md): Retrieve a list of saved AI Finder filters. `provider` defaults to `LINKEDIN` for backward compatibility, but callers can opt into other providers as they gain saved-filter support. - [Get saved view](https://docs.enginy.ai/api-reference/saved-views/get-saved-view.md): Retrieve a single saved view by ID. - [Get saved views](https://docs.enginy.ai/api-reference/saved-views/get-saved-views.md): Retrieve a paginated list of saved table views (contacts and companies). - [Searching Contacts And Companies](https://docs.enginy.ai/api-reference/searching-contacts-companies.md): How to use `/v1/contacts/search` and `/v1/companies/search`, which filter keys matter most, and how to use the fields endpoints as the schema source of truth - [Complete task](https://docs.enginy.ai/api-reference/tasks/complete-task.md): Mark a task as completed. - [Complete tasks batch](https://docs.enginy.ai/api-reference/tasks/complete-tasks-batch.md): Mark multiple tasks as completed. - [Create task](https://docs.enginy.ai/api-reference/tasks/create-task.md): Create a new task for a contact or company. - [Delete tasks](https://docs.enginy.ai/api-reference/tasks/delete-tasks.md): Delete tasks in bulk. - [Get task IDs](https://docs.enginy.ai/api-reference/tasks/get-task-ids.md): Retrieve task IDs that match the provided filters. - [Get task owners](https://docs.enginy.ai/api-reference/tasks/get-task-owners.md): Retrieve CRM owners for task assignment in campaign task steps. - [Get task pending count](https://docs.enginy.ai/api-reference/tasks/get-task-pending-count.md): Retrieve the current pending task count. - [Get task status counts](https://docs.enginy.ai/api-reference/tasks/get-task-status-counts.md): Retrieve counts for key task status buckets. - [Get tasks](https://docs.enginy.ai/api-reference/tasks/get-tasks.md): Retrieve a paginated list of tasks. - [Set skipped tasks](https://docs.enginy.ai/api-reference/tasks/set-skipped-tasks.md): Set or clear the skipped state for tasks. - [Update task](https://docs.enginy.ai/api-reference/tasks/update-task.md): Update an existing task. - [Get voices](https://docs.enginy.ai/api-reference/voices/get-voices.md): Retrieve available voices for `linkedin_voice_message` campaign steps. - [Webhooks guide](https://docs.enginy.ai/api-reference/webhooks-guide.md) - [Actions completed webhook](https://docs.enginy.ai/api-reference/webhooks/actions-completed-webhook.md): This webhook is triggered when an action run completes. You can provide your webhook URL when creating an actions run via the `/v1/actions` endpoint. - [Conversation events webhook](https://docs.enginy.ai/api-reference/webhooks/conversation-events-webhook.md): This webhook is triggered when subscribed conversation events occur. You can create webhook subscriptions via the `/v1/webhooks` endpoint to receive these events. - [Create webhook subscription](https://docs.enginy.ai/api-reference/webhooks/create-webhook-subscription.md): Create a new webhook subscription. - [Delete webhook subscription](https://docs.enginy.ai/api-reference/webhooks/delete-webhook-subscription.md): Delete a webhook subscription. - [Get webhook delivery logs](https://docs.enginy.ai/api-reference/webhooks/get-webhook-delivery-logs.md): Retrieve delivery logs for a webhook. - [Get webhook subscription](https://docs.enginy.ai/api-reference/webhooks/get-webhook-subscription.md): Retrieve a single webhook by ID. - [List webhook subscriptions](https://docs.enginy.ai/api-reference/webhooks/list-webhook-subscriptions.md): Retrieve a paginated list of webhook subscriptions. - [Test webhook subscription](https://docs.enginy.ai/api-reference/webhooks/test-webhook-subscription.md): Send a test event to a webhook. - [Update webhook subscription](https://docs.enginy.ai/api-reference/webhooks/update-webhook-subscription.md): Update a webhook subscription. - [Custom CRM](https://docs.enginy.ai/essentials/custom-crm.md): Connect your custom CRM or internal system to Enginy - [HTTP](https://docs.enginy.ai/essentials/http.md): Learn how to integrate with Enginy API using direct HTTP requests - [Make](https://docs.enginy.ai/essentials/make.md): Learn how to integrate Enginy with Make - [Enginy MCP](https://docs.enginy.ai/essentials/mcp.md): Connect Claude Code or another MCP client to Enginy through the hosted remote MCP server. - [N8N (Coming soon...)](https://docs.enginy.ai/essentials/n8n.md): Learn how to integrate Enginy with n8n - [Zapier (Coming soon...)](https://docs.enginy.ai/essentials/zapier.md): Learn how to integrate Enginy with Zapier - [Introduction](https://docs.enginy.ai/index.md): Build powerful integrations with the Enginy API - [Connect Claude Code](https://docs.enginy.ai/mcp/claude-code.md): Register the hosted Enginy MCP server in Claude Code. - [Client Support Matrix](https://docs.enginy.ai/mcp/client-support-matrix.md): Compare how Claude Code, Codex, Cursor, VS Code, ChatGPT developer mode, and other MCP clients connect to Enginy MCP. - [Clients & Interfaces](https://docs.enginy.ai/mcp/custom-clients.md): Connect Enginy MCP from Claude, Codex, Cursor, VS Code, ChatGPT developer mode, or another remote MCP interface. - [Example Prompts](https://docs.enginy.ai/mcp/example-prompts.md): Practical prompts and workflows for using Enginy MCP in Claude Code, Codex, Cursor, ChatGPT developer mode, and other remote MCP clients. - [FAQ / Known Limitations](https://docs.enginy.ai/mcp/faq-known-limitations.md): Quick answers to the most common MCP questions, plus the current limitations you should plan around. - [Overview](https://docs.enginy.ai/mcp/overview.md): Understand how Enginy MCP works, how tools are generated, and how OAuth and policy enforcement fit together. - [Scopes](https://docs.enginy.ai/mcp/scopes.md): Understand the Enginy MCP scope model, how scope ceilings work, and which endpoint families each scope unlock. - [Security & Troubleshooting](https://docs.enginy.ai/mcp/security-troubleshooting.md): Use Enginy MCP safely and debug the most common authorization, scope, and client-compatibility issues. - [Supported Tools](https://docs.enginy.ai/mcp/supported-tools.md): See what Enginy MCP can do today, how its tools are generated, and which capability families are currently exposed. ## OpenAPI Specs - [definitions](https://openapi.enginy.ai/definitions.json) ## Optional - [Help Center](https://help.enginy.ai/) - [API Dashboard](https://app.enginy.ai/api-access)