Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact’s own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company’s country instead, not the contact’s own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow.
Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response.
Filter conditions to include. Supports special filters like id, campaigns, leadsGroup, companyGroup, contactTags, isInCRM, enrichments, and any contact/company field ID returned by the fields endpoints. Filter values should match the field data type returned by GET /v1/contacts/fields: text/select fields use arrays of exact values, numeric fields use two-item range arrays like ["10","100"], boolean fields use one-item arrays like [true], and timestamp fields use { "startDate": "...", "endDate": "..." }. Start with id, leadsGroup (contact list IDs), companyGroup (company list IDs), campaigns, isInCRM, and any workspace scoring fields such as icpScore or scoreBand when those field IDs appear in the fields response. To filter contacts by the contact's own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company's country instead, not the contact's own. Per-contact campaign engagement — including LinkedIn connection-request status — is available through the campaign-scoped campaignLeadStatus filter. It is not a contact field, so it never appears in the fields catalog, and it is ignored unless include.campaigns is also set; both include.campaignLeadStatus and exclude.campaignLeadStatus are evaluated against the campaigns in include.campaigns. Supported values: linkedinConnectionSent, linkedinConnectionRequestAccepted, sentAtLeastOneMessage, replied, seenMessage, linkedinConversationViewed, clickedConversations, bouncedMessages, linkedinConnectionsSentNotByPlatform. Exception: linkedinConnectionsSentNotByPlatform is not campaign-scoped — it matches any connection request to the contact that was not sent through Enginy, whatever the campaign. Flow to list contacts who accepted a LinkedIn connection request but have not been messaged yet: find the campaign ID with GET /v1/campaigns (MCP tool get_campaigns), then search with include { "campaigns": ["<campaignId>"], "campaignLeadStatus": ["linkedinConnectionRequestAccepted"] } and exclude { "campaignLeadStatus": ["sentAtLeastOneMessage"] }, requesting the contact fields you need (e.g. fields: ["firstName", "lastName", "jobTitle"]). Caveat: connection acceptance is tracked per contact + sender identity, so an acceptance obtained through another campaign that uses the same sender identity also matches, and counts can differ slightly from campaign analytics (which additionally check acceptance timing against the connection step). contactTags filters by the tags applied to the contact: tag IDs from GET /v1/contacts/tags (numbers or strings), with "" meaning no tag; in include a contact matches any of them, in exclude none. It needs contact and company tags on the workspace, otherwise the search answers 400 ENTITY_TAGS_NOT_ENABLED. Unrecognized keys are rejected with a 400 rather than silently ignored. Use GET /v1/contacts/fields (MCP tool get_contact_field_metadata) to discover valid contact field names for fields, include, exclude, and update payloads. Company-backed filters can use use get /v1/companies/fields (mcp tool get_company_field_metadata) to discover valid company field names.
Filter conditions to exclude. Same structure as include. Filter values should match the field data type returned by GET /v1/contacts/fields: text/select fields use arrays of exact values, numeric fields use two-item range arrays like ["10","100"], boolean fields use one-item arrays like [true], and timestamp fields use { "startDate": "...", "endDate": "..." }. Start with id, leadsGroup (contact list IDs), companyGroup (company list IDs), campaigns, isInCRM, and any workspace scoring fields such as icpScore or scoreBand when those field IDs appear in the fields response. To filter contacts by the contact's own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company's country instead, not the contact's own. Per-contact campaign engagement — including LinkedIn connection-request status — is available through the campaign-scoped campaignLeadStatus filter. It is not a contact field, so it never appears in the fields catalog, and it is ignored unless include.campaigns is also set; both include.campaignLeadStatus and exclude.campaignLeadStatus are evaluated against the campaigns in include.campaigns. Supported values: linkedinConnectionSent, linkedinConnectionRequestAccepted, sentAtLeastOneMessage, replied, seenMessage, linkedinConversationViewed, clickedConversations, bouncedMessages, linkedinConnectionsSentNotByPlatform. Exception: linkedinConnectionsSentNotByPlatform is not campaign-scoped — it matches any connection request to the contact that was not sent through Enginy, whatever the campaign. Flow to list contacts who accepted a LinkedIn connection request but have not been messaged yet: find the campaign ID with GET /v1/campaigns (MCP tool get_campaigns), then search with include { "campaigns": ["<campaignId>"], "campaignLeadStatus": ["linkedinConnectionRequestAccepted"] } and exclude { "campaignLeadStatus": ["sentAtLeastOneMessage"] }, requesting the contact fields you need (e.g. fields: ["firstName", "lastName", "jobTitle"]). Caveat: connection acceptance is tracked per contact + sender identity, so an acceptance obtained through another campaign that uses the same sender identity also matches, and counts can differ slightly from campaign analytics (which additionally check acceptance timing against the connection step). contactTags filters by the tags applied to the contact: tag IDs from GET /v1/contacts/tags (numbers or strings), with "" meaning no tag; in include a contact matches any of them, in exclude none. It needs contact and company tags on the workspace, otherwise the search answers 400 ENTITY_TAGS_NOT_ENABLED. Unrecognized keys are rejected with a 400 rather than silently ignored. Use GET /v1/contacts/fields (MCP tool get_contact_field_metadata) to discover valid contact field names for fields, include, exclude, and update payloads.
Filter contacts by a specific actions run ID. Returns only contacts that were created or processed as part of this actions run (e.g., from "Search contacts from company" action).
Specific contact fields to include in the response. Through MCP, each contact contains only these fields plus id and appUrl; over REST they are added to the full contact. Use GET /v1/contacts/fields (MCP tool get_contact_field_metadata) to discover valid contact field names.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enginy API Docs","description":"Developer docs for Enginy, the B2B prospecting platform: REST API, hosted MCP server, Advanced Workflows reference, and custom CRM integration.","colors":{"primary":"#1EC371","light":"#47E194","dark":"#171717"},"logo":{"light":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-dark.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=939acf98e42633af0faae66d57713e73","dark":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-light.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=e25861810973f70a5bcf4ff3e9e07b2a"},"favicon":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/favicon.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=29e39121b8aed81a43a6f121813c4ee0","navbar":{"links":[{"href":"mailto:support@enginy.ai","label":"Support"}],"primary":{"type":"button","label":"App","href":"https://app.enginy.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/enginy-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help Center","icon":"book-open-cover","href":"https://help.enginy.ai/"},{"anchor":"API Dashboard","icon":"key","href":"https://app.enginy.ai/api-access"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"genesyai","hasAudioNarration":false,"actualSubdomain":"genesyai","customDomains":["docs.enginy.ai"],"gitSource":{"type":"github","owner":"genesy-ai","repo":"leads-gpt","deployBranch":"main","contentDirectory":"openapi-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb0409aa8f362a306d917d","collectionId":"1b918f07-3295-4564-8126-46ee4b0bb6ae","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb0409aa8f362a306d917d"},"entitlements":{},"buildId":"6adb096d35d195450e7200af","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":226},{"language":"default","tag":"Endpoints","count":213},{"language":"default","tag":"AI Variables","count":46},{"language":"default","tag":"Workflows","count":39},{"language":"default","tag":"Custom CRM","count":24},{"language":"default","tag":"Contacts","count":21},{"language":"default","tag":"Lists","count":21},{"language":"default","tag":"Companies","count":20},{"language":"default","tag":"Campaigns","count":19},{"language":"default","tag":"Tasks","count":17}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/contacts/search-contacts-with-advanced-filters","slug":"/api-reference/contacts/search-contacts-with-advanced-filters","pageMetadata":{"title":"Search contacts with advanced filters","description":"Search contacts with advanced filtering options. Every key in `include`/`exclude` must be a recognized filter field (a static filter like `id`, `leadsGroup`, or `campaigns`, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact's own country, use `leadCountry` (this same field is returned in responses as `contactCountry` and accepted as a write alias on update/create). The `country` filter key matches the associated company's country instead, not the contact's own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair `campaigns` with the `campaignLeadStatus` filter — see the `include`/`exclude` schema descriptions for the supported values and the full flow.\n\nResponses include direct Enginy app URLs when available. Each returned contact includes an `appUrl` field, and associated companies include `appUrl` when present. MCP agents should return those URLs to users whenever they are present in the response.\n\n > **Required scope:** `CONTACTS_READ`\n >\n > **Rate limit:** 100 requests per minute","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/search","href":"/api-reference/contacts/search-contacts-with-advanced-filters","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n blockquote: \"blockquote\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Search contacts with advanced filtering options. Every key in \", _jsx(_components.code, {\n children: \"include\"\n }), \"/\", _jsx(_components.code, {\n children: \"exclude\"\n }), \" must be a recognized filter field (a static filter like \", _jsx(_components.code, {\n children: \"id\"\n }), \", \", _jsx(_components.code, {\n children: \"leadsGroup\"\n }), \", or \", _jsx(_components.code, {\n children: \"campaigns\"\n }), \", or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact’s own country, use \", _jsx(_components.code, {\n children: \"leadCountry\"\n }), \" (this same field is returned in responses as \", _jsx(_components.code, {\n children: \"contactCountry\"\n }), \" and accepted as a write alias on update/create). The \", _jsx(_components.code, {\n children: \"country\"\n }), \" filter key matches the associated company’s country instead, not the contact’s own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair \", _jsx(_components.code, {\n children: \"campaigns\"\n }), \" with the \", _jsx(_components.code, {\n children: \"campaignLeadStatus\"\n }), \" filter — see the \", _jsx(_components.code, {\n children: \"include\"\n }), \"/\", _jsx(_components.code, {\n children: \"exclude\"\n }), \" schema descriptions for the supported values and the full flow.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Responses include direct Enginy app URLs when available. Each returned contact includes an \", _jsx(_components.code, {\n children: \"appUrl\"\n }), \" field, and associated companies include \", _jsx(_components.code, {\n children: \"appUrl\"\n }), \" when present. MCP agents should return those URLs to users whenever they are present in the response.\"]\n }), \"\\n\", _jsxs(_components.blockquote, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Required scope:\"\n }), \" \", _jsx(_components.code, {\n children: \"CONTACTS_READ\"\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Rate limit:\"\n }), \" 100 requests per minute\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Search contacts with advanced filters","description":"Search contacts with advanced filtering options. Every key in `include`/`exclude` must be a recognized filter field (a static filter like `id`, `leadsGroup`, or `campaigns`, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact's own country, use `leadCountry` (this same field is returned in responses as `contactCountry` and accepted as a write alias on update/create). The `country` filter key matches the associated company's country instead, not the contact's own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair `campaigns` with the `campaignLeadStatus` filter — see the `include`/`exclude` schema descriptions for the supported values and the full flow.\n\nResponses include direct Enginy app URLs when available. Each returned contact includes an `appUrl` field, and associated companies include `appUrl` when present. MCP agents should return those URLs to users whenever they are present in the response.\n\n > **Required scope:** `CONTACTS_READ`\n >\n > **Rate limit:** 100 requests per minute","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/search","href":"/api-reference/contacts/search-contacts-with-advanced-filters","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Search contacts with advanced filters","description":"Search contacts with advanced filtering options. Every key in `include`/`exclude` must be a recognized filter field (a static filter like `id`, `leadsGroup`, or `campaigns`, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact's own country, use `leadCountry` (this same field is returned in responses as `contactCountry` and accepted as a write alias on update/create). The `country` filter key matches the associated company's country instead, not the contact's own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair `campaigns` with the `campaignLeadStatus` filter — see the `include`/`exclude` schema descriptions for the supported values and the full flow.\n\nResponses include direct Enginy app URLs when available. Each returned contact includes an `appUrl` field, and associated companies include `appUrl` when present. MCP agents should return those URLs to users whenever they are present in the response.\n\n > **Required scope:** `CONTACTS_READ`\n >\n > **Rate limit:** 100 requests per minute","tags":["Contacts"],"security":["3a4e7d6f-912a-492e-b07c-88e08dd33123"],"requestBody":"c1ef22a0-ed1a-4d27-9af2-ea9918a0d572","responses":{"200":"9db77ed5-8cdf-48a0-98f2-9edb696604f6","404":"93c44b00-9951-4c22-950a-b14eb2b0ddc2"},"method":"post","type":"path","servers":["0583bc01-7d89-47ba-9860-852cd05faae2"],"path":"/v1/contacts/search","baseUrlOptions":["https://openapi.enginy.ai"],"title":"Search contacts with advanced filters","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"default":1,"description":"Page number for pagination. Minimum value is 1.","uniqueKey":"page","typeLabel":"integer"},"pageSize":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Number of items per page. Minimum is 1, maximum is 100.","uniqueKey":"pageSize","typeLabel":"integer"},"search":{"type":"string","description":"Search term for full-text search across contact fields.","uniqueKey":"search","typeLabel":"string"},"include":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"include.additionalProperties","typeLabel":"any"},"default":{},"description":"Filter conditions to include. Supports special filters like `id`, `campaigns`, `leadsGroup`, `companyGroup`, `contactTags`, `isInCRM`, `enrichments`, and any contact/company field ID returned by the fields endpoints. Filter values should match the field data type returned by `GET /v1/contacts/fields`: text/select fields use arrays of exact values, numeric fields use two-item range arrays like `[\"10\",\"100\"]`, boolean fields use one-item arrays like `[true]`, and timestamp fields use `{ \"startDate\": \"...\", \"endDate\": \"...\" }`. Start with `id`, `leadsGroup` (contact list IDs), `companyGroup` (company list IDs), `campaigns`, `isInCRM`, and any workspace scoring fields such as `icpScore` or `scoreBand` when those field IDs appear in the fields response. To filter contacts by the contact's own country, use `leadCountry` (this same field is returned in responses as `contactCountry` and accepted as a write alias on update/create). The `country` filter key matches the associated company's country instead, not the contact's own. Per-contact campaign engagement — including LinkedIn connection-request status — is available through the campaign-scoped `campaignLeadStatus` filter. It is not a contact field, so it never appears in the fields catalog, and it is ignored unless `include.campaigns` is also set; both `include.campaignLeadStatus` and `exclude.campaignLeadStatus` are evaluated against the campaigns in `include.campaigns`. Supported values: `linkedinConnectionSent`, `linkedinConnectionRequestAccepted`, `sentAtLeastOneMessage`, `replied`, `seenMessage`, `linkedinConversationViewed`, `clickedConversations`, `bouncedMessages`, `linkedinConnectionsSentNotByPlatform`. Exception: `linkedinConnectionsSentNotByPlatform` is not campaign-scoped — it matches any connection request to the contact that was not sent through Enginy, whatever the campaign. Flow to list contacts who accepted a LinkedIn connection request but have not been messaged yet: find the campaign ID with `GET /v1/campaigns` (MCP tool `get_campaigns`), then search with include `{ \"campaigns\": [\"\u003ccampaignId>\"], \"campaignLeadStatus\": [\"linkedinConnectionRequestAccepted\"] }` and exclude `{ \"campaignLeadStatus\": [\"sentAtLeastOneMessage\"] }`, requesting the contact fields you need (e.g. `fields: [\"firstName\", \"lastName\", \"jobTitle\"]`). Caveat: connection acceptance is tracked per contact + sender identity, so an acceptance obtained through another campaign that uses the same sender identity also matches, and counts can differ slightly from campaign analytics (which additionally check acceptance timing against the connection step). `contactTags` filters by the tags applied to the contact: tag IDs from `GET /v1/contacts/tags` (numbers or strings), with `\"\"` meaning no tag; in `include` a contact matches any of them, in `exclude` none. It needs contact and company tags on the workspace, otherwise the search answers 400 `ENTITY_TAGS_NOT_ENABLED`. Unrecognized keys are rejected with a 400 rather than silently ignored. Use `GET /v1/contacts/fields` (MCP tool `get_contact_field_metadata`) to discover valid contact field names for `fields`, `include`, `exclude`, and update payloads. Company-backed filters can use use `get /v1/companies/fields` (mcp tool `get_company_field_metadata`) to discover valid company field names.","uniqueKey":"include","typeLabel":"object"},"exclude":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"exclude.additionalProperties","typeLabel":"any"},"default":{},"description":"Filter conditions to exclude. Same structure as include. Filter values should match the field data type returned by `GET /v1/contacts/fields`: text/select fields use arrays of exact values, numeric fields use two-item range arrays like `[\"10\",\"100\"]`, boolean fields use one-item arrays like `[true]`, and timestamp fields use `{ \"startDate\": \"...\", \"endDate\": \"...\" }`. Start with `id`, `leadsGroup` (contact list IDs), `companyGroup` (company list IDs), `campaigns`, `isInCRM`, and any workspace scoring fields such as `icpScore` or `scoreBand` when those field IDs appear in the fields response. To filter contacts by the contact's own country, use `leadCountry` (this same field is returned in responses as `contactCountry` and accepted as a write alias on update/create). The `country` filter key matches the associated company's country instead, not the contact's own. Per-contact campaign engagement — including LinkedIn connection-request status — is available through the campaign-scoped `campaignLeadStatus` filter. It is not a contact field, so it never appears in the fields catalog, and it is ignored unless `include.campaigns` is also set; both `include.campaignLeadStatus` and `exclude.campaignLeadStatus` are evaluated against the campaigns in `include.campaigns`. Supported values: `linkedinConnectionSent`, `linkedinConnectionRequestAccepted`, `sentAtLeastOneMessage`, `replied`, `seenMessage`, `linkedinConversationViewed`, `clickedConversations`, `bouncedMessages`, `linkedinConnectionsSentNotByPlatform`. Exception: `linkedinConnectionsSentNotByPlatform` is not campaign-scoped — it matches any connection request to the contact that was not sent through Enginy, whatever the campaign. Flow to list contacts who accepted a LinkedIn connection request but have not been messaged yet: find the campaign ID with `GET /v1/campaigns` (MCP tool `get_campaigns`), then search with include `{ \"campaigns\": [\"\u003ccampaignId>\"], \"campaignLeadStatus\": [\"linkedinConnectionRequestAccepted\"] }` and exclude `{ \"campaignLeadStatus\": [\"sentAtLeastOneMessage\"] }`, requesting the contact fields you need (e.g. `fields: [\"firstName\", \"lastName\", \"jobTitle\"]`). Caveat: connection acceptance is tracked per contact + sender identity, so an acceptance obtained through another campaign that uses the same sender identity also matches, and counts can differ slightly from campaign analytics (which additionally check acceptance timing against the connection step). `contactTags` filters by the tags applied to the contact: tag IDs from `GET /v1/contacts/tags` (numbers or strings), with `\"\"` meaning no tag; in `include` a contact matches any of them, in `exclude` none. It needs contact and company tags on the workspace, otherwise the search answers 400 `ENTITY_TAGS_NOT_ENABLED`. Unrecognized keys are rejected with a 400 rather than silently ignored. Use `GET /v1/contacts/fields` (MCP tool `get_contact_field_metadata`) to discover valid contact field names for `fields`, `include`, `exclude`, and update payloads.","uniqueKey":"exclude","typeLabel":"object"},"actionsId":{"type":"integer","description":"Filter contacts by a specific actions run ID. Returns only contacts that were created or processed as part of this actions run (e.g., from \"Search contacts from company\" action).","uniqueKey":"actionsId","typeLabel":"integer"},"fields":{"type":"array","items":{"type":"string","uniqueKey":"fields.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Specific contact fields to include in the response. Through MCP, each contact contains only these fields plus `id` and `appUrl`; over REST they are added to the full contact. Use `GET /v1/contacts/fields` (MCP tool `get_contact_field_metadata`) to discover valid contact field names.","uniqueKey":"fields","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"byListIdAndCrmPresence":{"title":"byListIdAndCrmPresence","value":{"page":1,"pageSize":25,"search":"growth","fields":["firstName","lastName","jobTitle","companyName","professionalEmail"],"include":{"leadsGroup":[123],"isInCRM":[true]}}},"byIdsAndCompanyFields":{"title":"byIdsAndCompanyFields","value":{"page":1,"pageSize":25,"include":{"id":[101,205],"companyName":["Stripe","HubSpot"],"industry":["Software"],"numberOfEmployees":["50","500"]},"exclude":{"campaigns":[77]}}},"scoringFieldExample":{"title":"scoringFieldExample","value":{"page":1,"pageSize":25,"include":{"leadsGroup":[123],"icpScore":["80","100"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"9db77ed5-8cdf-48a0-98f2-9edb696604f6":{"description":"Successful response with paginated contacts","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Unique identifier for the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"number"},"appUrl":{"type":"string","format":"uri","description":"Direct Enginy app URL for opening this contact.","isRequired":true,"uniqueKey":"data.items.[INDEX].appUrl","typeLabel":"string\u003curi>"},"firstName":{"oneOf":[{"type":"string","description":"First name of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].firstName.oneOf.0","typeLabel":"string"},{"type":"null","description":"First name of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].firstName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].firstName","typeLabel":"string | null"},"lastName":{"oneOf":[{"type":"string","description":"Last name of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].lastName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Last name of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].lastName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].lastName","typeLabel":"string | null"},"jobTitle":{"oneOf":[{"type":"string","description":"Job title of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].jobTitle.oneOf.0","typeLabel":"string"},{"type":"null","description":"Job title of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].jobTitle.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].jobTitle","typeLabel":"string | null"},"jobFunction":{"oneOf":[{"type":"string","description":"Job function of the contact (e.g. \"Sales\", \"Engineering\"). Null when unknown.","isRequired":true,"uniqueKey":"data.items.[INDEX].jobFunction.oneOf.0","typeLabel":"string"},{"type":"null","description":"Job function of the contact (e.g. \"Sales\", \"Engineering\"). Null when unknown.","isRequired":true,"uniqueKey":"data.items.[INDEX].jobFunction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].jobFunction","typeLabel":"string | null"},"jobLevel":{"oneOf":[{"type":"string","description":"Seniority level of the contact (e.g. \"VP\", \"Director\"). Null when unknown.","isRequired":true,"uniqueKey":"data.items.[INDEX].jobLevel.oneOf.0","typeLabel":"string"},{"type":"null","description":"Seniority level of the contact (e.g. \"VP\", \"Director\"). Null when unknown.","isRequired":true,"uniqueKey":"data.items.[INDEX].jobLevel.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].jobLevel","typeLabel":"string | null"},"linkedInProfileUrl":{"oneOf":[{"type":"string","description":"LinkedIn profile URL of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInProfileUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"LinkedIn profile URL of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInProfileUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInProfileUrl","typeLabel":"string | null"},"professionalEmail":{"oneOf":[{"type":"string","description":"Professional email address of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].professionalEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Professional email address of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].professionalEmail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].professionalEmail","typeLabel":"string | null"},"personalEmails":{"oneOf":[{"type":"string","description":"Personal email addresses (comma-separated)","isRequired":true,"uniqueKey":"data.items.[INDEX].personalEmails.oneOf.0","typeLabel":"string"},{"type":"null","description":"Personal email addresses (comma-separated)","isRequired":true,"uniqueKey":"data.items.[INDEX].personalEmails.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].personalEmails","typeLabel":"string | null"},"mobilePhone":{"oneOf":[{"type":"string","description":"Mobile phone number of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].mobilePhone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Mobile phone number of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].mobilePhone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].mobilePhone","typeLabel":"string | null"},"phones":{"oneOf":[{"type":"string","description":"Other phone numbers (comma-separated)","isRequired":true,"uniqueKey":"data.items.[INDEX].phones.oneOf.0","typeLabel":"string"},{"type":"null","description":"Other phone numbers (comma-separated)","isRequired":true,"uniqueKey":"data.items.[INDEX].phones.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].phones","typeLabel":"string | null"},"imageUrl":{"oneOf":[{"type":"string","description":"Profile image URL","isRequired":true,"uniqueKey":"data.items.[INDEX].imageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile image URL","isRequired":true,"uniqueKey":"data.items.[INDEX].imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].imageUrl","typeLabel":"string | null"},"companyId":{"oneOf":[{"type":"number","description":"ID of the company associated with the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].companyId.oneOf.0","typeLabel":"number"},{"type":"null","description":"ID of the company associated with the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].companyId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].companyId","typeLabel":"number | null"},"company":{"oneOf":[{"type":"object","properties":{"id":{"type":"number","description":"Company ID","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.id","typeLabel":"number"},"appUrl":{"type":"string","format":"uri","description":"Direct Enginy app URL for opening the associated company.","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.appUrl","typeLabel":"string\u003curi>"},"name":{"oneOf":[{"type":"string","description":"Company name","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company name","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.name","typeLabel":"string | null"},"domain":{"oneOf":[{"type":"string","description":"Company website domain","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company website domain","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.domain","typeLabel":"string | null"},"companyLinkedInUrl":{"oneOf":[{"type":"string","description":"Company LinkedIn URL","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.companyLinkedInUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company LinkedIn URL","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.companyLinkedInUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0.companyLinkedInUrl","typeLabel":"string | null"}},"required":["id","appUrl","name","domain","companyLinkedInUrl"],"description":"Company details","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"number","description":"Company ID"},"appUrl":{"type":"string","format":"uri","description":"Direct Enginy app URL for opening the associated company."},"name":{"oneOf":[{"type":"string","description":"Company name"},{"type":"null","description":"Company name"}]},"domain":{"oneOf":[{"type":"string","description":"Company website domain"},{"type":"null","description":"Company website domain"}]},"companyLinkedInUrl":{"oneOf":[{"type":"string","description":"Company LinkedIn URL"},{"type":"null","description":"Company LinkedIn URL"}]}},"required":["id","appUrl","name","domain","companyLinkedInUrl"],"description":"Company details","isRequired":true,"uniqueKey":"data.items.[INDEX].company.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].company","typeLabel":"object | null"},"emailVerificationStatus":{"type":"string","description":"Email verification status","isRequired":true,"uniqueKey":"data.items.[INDEX].emailVerificationStatus","typeLabel":"string"},"contactCountry":{"oneOf":[{"type":"string","description":"Country of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].contactCountry.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country of the contact","isRequired":true,"uniqueKey":"data.items.[INDEX].contactCountry.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].contactCountry","typeLabel":"string | null"},"linkedInHeadline":{"oneOf":[{"type":"string","description":"LinkedIn headline","isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInHeadline.oneOf.0","typeLabel":"string"},{"type":"null","description":"LinkedIn headline","isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInHeadline.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].linkedInHeadline","typeLabel":"string | null"},"numberOfConnections":{"oneOf":[{"type":"number","description":"Number of LinkedIn connections","isRequired":true,"uniqueKey":"data.items.[INDEX].numberOfConnections.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of LinkedIn connections","isRequired":true,"uniqueKey":"data.items.[INDEX].numberOfConnections.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].numberOfConnections","typeLabel":"number | null"},"contactCRMId":{"oneOf":[{"type":"string","description":"CRM contact ID","isRequired":true,"uniqueKey":"data.items.[INDEX].contactCRMId.oneOf.0","typeLabel":"string"},{"type":"null","description":"CRM contact ID","isRequired":true,"uniqueKey":"data.items.[INDEX].contactCRMId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].contactCRMId","typeLabel":"string | null"},"leadCRMId":{"oneOf":[{"type":"string","description":"CRM lead ID","isRequired":true,"uniqueKey":"data.items.[INDEX].leadCRMId.oneOf.0","typeLabel":"string"},{"type":"null","description":"CRM lead ID","isRequired":true,"uniqueKey":"data.items.[INDEX].leadCRMId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].leadCRMId","typeLabel":"string | null"},"isInCRM":{"type":"boolean","description":"Whether the contact is synced with CRM","isRequired":true,"uniqueKey":"data.items.[INDEX].isInCRM","typeLabel":"boolean"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"Tag ID","isRequired":true,"uniqueKey":"data.items.[INDEX].tags.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"Tag name","isRequired":true,"uniqueKey":"data.items.[INDEX].tags.items.[INDEX].name","typeLabel":"string"},"color":{"type":"string","description":"Tag colour as a `#rrggbb` hex value","isRequired":true,"uniqueKey":"data.items.[INDEX].tags.items.[INDEX].color","typeLabel":"string"}},"required":["id","name","color"],"uniqueKey":"data.items.[INDEX].tags.items.[INDEX]","typeLabel":"object"},"description":"Tags applied to this contact, oldest assignment first (at most 50). Empty when the workspace does not have contact and company tags enabled.","isRequired":true,"uniqueKey":"data.items.[INDEX].tags","typeLabel":"object[]"},"lastContactedAt":{"oneOf":[{"type":"string","format":"date-time","description":"Date and time of the most recent outbound message sent to this contact across all campaigns. Null when the contact has never been messaged.","isRequired":true,"uniqueKey":"data.items.[INDEX].lastContactedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Date and time of the most recent outbound message sent to this contact across all campaigns. Null when the contact has never been messaged.","isRequired":true,"uniqueKey":"data.items.[INDEX].lastContactedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].lastContactedAt","typeLabel":"string\u003cdate-time> | null"},"createdAt":{"type":"string","format":"date-time","description":"Date and time when the contact was created","isRequired":true,"uniqueKey":"data.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"Date and time when the contact was last updated","isRequired":true,"uniqueKey":"data.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"},"smartFieldExplanations":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"data.items.[INDEX].smartFieldExplanations.additionalProperties","typeLabel":"string"},"description":"Map of smart field names to their explanation (returned when smart fields are requested).","uniqueKey":"data.items.[INDEX].smartFieldExplanations","typeLabel":"object"}},"required":["id","appUrl","firstName","lastName","jobTitle","jobFunction","jobLevel","linkedInProfileUrl","professionalEmail","personalEmails","mobilePhone","phones","imageUrl","companyId","company","emailVerificationStatus","contactCountry","linkedInHeadline","numberOfConnections","contactCRMId","leadCRMId","isInCRM","tags","lastContactedAt","createdAt","updatedAt"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"meta":{"type":"object","properties":{"page":{"type":"number","isRequired":true,"uniqueKey":"meta.page","typeLabel":"number"},"pageSize":{"type":"number","isRequired":true,"uniqueKey":"meta.pageSize","typeLabel":"number"},"total":{"type":"number","isRequired":true,"uniqueKey":"meta.total","typeLabel":"number"}},"required":["page","pageSize","total"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["data","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":123,"appUrl":"\u003cstring>","firstName":"\u003cstring>","lastName":"\u003cstring>","jobTitle":"\u003cstring>","jobFunction":"\u003cstring>","jobLevel":"\u003cstring>","linkedInProfileUrl":"\u003cstring>","professionalEmail":"\u003cstring>","personalEmails":"\u003cstring>","mobilePhone":"\u003cstring>","phones":"\u003cstring>","imageUrl":"\u003cstring>","companyId":123,"company":{"id":123,"appUrl":"\u003cstring>","name":"\u003cstring>","domain":"\u003cstring>","companyLinkedInUrl":"\u003cstring>"},"emailVerificationStatus":"\u003cstring>","contactCountry":"\u003cstring>","linkedInHeadline":"\u003cstring>","numberOfConnections":123,"contactCRMId":"\u003cstring>","leadCRMId":"\u003cstring>","isInCRM":true,"tags":[{"id":123,"name":"\u003cstring>","color":"\u003cstring>"}],"lastContactedAt":"2023-11-07T05:31:56Z","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","smartFieldExplanations":{}}],"meta":{"page":123,"pageSize":123,"total":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"93c44b00-9951-4c22-950a-b14eb2b0ddc2":{"description":"Actions run not found (when filtering by actionsId)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"3a4e7d6f-912a-492e-b07c-88e08dd33123":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"apiKey"}}},"servers":{"0583bc01-7d89-47ba-9860-852cd05faae2":{"url":"https://openapi.enginy.ai","description":"Configured server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"apiKey"},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"x-api-key"}],"title":"apiKey"}]},"originalFileLocation":"https://openapi.enginy.ai/definitions.json"},"subdomain":"genesyai","siteName":"Enginy API Docs","title":"Search contacts with advanced filters - Enginy API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T06:52:01.927Z","originalFileLocation":"api-reference/contacts/search-contacts-with-advanced-filters.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact\u0026#x27;s own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company\u0026#x27;s country instead, not the contact\u0026#x27;s own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow. Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response. \u0026gt; Required scope: CONTACTS_READ \u0026gt; \u0026gt; Rate limit: 100 requests per minute\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enginy API Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Search contacts with advanced filters - Enginy API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact\u0026#x27;s own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company\u0026#x27;s country instead, not the contact\u0026#x27;s own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow. Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response. \u0026gt; Required scope: CONTACTS_READ \u0026gt; \u0026gt; Rate limit: 100 requests per minute\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enginy API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://genesyai.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Search+contacts+with+advanced+filters\u0026amp;description=Search+contacts+with+advanced+filtering+options.+Every+key+in+%60include%60%2F%60exclude%60+must+be+a+recognized+filter+field+%28a+static+filter+like+%60id%60%2C+%60leadsGroup%60%2C+or\u0026amp;theme=f2b1053b8a2ac574395c5658\u0026amp;signature=6ffa26ef4d20247eba7aca959258034dbc03f442ee86cd31253f4ab8895b2466\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Search contacts with advanced filters - Enginy API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact\u0026#x27;s own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company\u0026#x27;s country instead, not the contact\u0026#x27;s own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow. Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response. \u0026gt; Required scope: CONTACTS_READ \u0026gt; \u0026gt; Rate limit: 100 requests per minute\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://genesyai.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Search+contacts+with+advanced+filters\u0026amp;description=Search+contacts+with+advanced+filtering+options.+Every+key+in+%60include%60%2F%60exclude%60+must+be+a+recognized+filter+field+%28a+static+filter+like+%60id%60%2C+%60leadsGroup%60%2C+or\u0026amp;theme=f2b1053b8a2ac574395c5658\u0026amp;signature=6ffa26ef4d20247eba7aca959258034dbc03f442ee86cd31253f4ab8895b2466\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enginy API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1EC371\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/contacts/search-contacts-with-advanced-filters.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enginy.ai/#organization\",\"name\":\"Enginy API Docs\",\"url\":\"https://docs.enginy.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-dark.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=939acf98e42633af0faae66d57713e73\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enginy.ai#website\",\"name\":\"Enginy API Docs\",\"url\":\"https://docs.enginy.ai\",\"publisher\":{\"@id\":\"https://docs.enginy.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters#webpage\",\"url\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters\",\"name\":\"Search contacts with advanced filters\",\"description\":\"Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact's own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company's country instead, not the contact's own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow. Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response. > Required scope: CONTACTS_READ > > Rate limit: 100 requests per minute\",\"dateModified\":\"2026-10-23T06:52:01.927Z\",\"isPartOf\":{\"@id\":\"https://docs.enginy.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.enginy.ai/api-reference/ai-variables/list-contact-ai-variable-folders\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contacts\",\"item\":\"https://docs.enginy.ai/api-reference/contacts/get-contact-field-metadata\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Search contacts with advanced filters\",\"item\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters#apireference\",\"headline\":\"Search contacts with advanced filters\",\"name\":\"Search contacts with advanced filters\",\"description\":\"Search contacts with advanced filtering options. Every key in include/exclude must be a recognized filter field (a static filter like id, leadsGroup, or campaigns, or a contact/company field id returned by the fields endpoints) — an unrecognized key returns a 400 listing the offending key(s) instead of being silently ignored. To filter contacts by the contact's own country, use leadCountry (this same field is returned in responses as contactCountry and accepted as a write alias on update/create). The country filter key matches the associated company's country instead, not the contact's own. This is also the endpoint for per-contact campaign engagement, e.g. which contacts accepted a LinkedIn connection request (optionally without having been messaged yet): pair campaigns with the campaignLeadStatus filter — see the include/exclude schema descriptions for the supported values and the full flow. Responses include direct Enginy app URLs when available. Each returned contact includes an appUrl field, and associated companies include appUrl when present. MCP agents should return those URLs to users whenever they are present in the response. > Required scope: CONTACTS_READ > > Rate limit: 100 requests per minute\",\"url\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enginy.ai/api-reference/contacts/search-contacts-with-advanced-filters#webpage\"},\"dateModified\":\"2026-10-23T06:52:01.927Z\",\"publisher\":{\"@id\":\"https://docs.enginy.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enginy.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enginy API Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enginy API Docs","nav":{"global":{"anchors":[{"anchor":"Help Center","icon":"book-open-cover","href":"https://help.enginy.ai/"},{"anchor":"API Dashboard","icon":"key","href":"https://app.enginy.ai/api-access"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"API documentation","pages":[{"title":"Introduction","icon":"compass","href":"/api-reference/introduction"},{"title":"Searching Contacts And Companies","icon":"magnifying-glass","href":"/api-reference/searching-contacts-companies"},{"title":"Contact and Company Tags","icon":"tags","href":"/api-reference/contact-company-tags-guide"},{"title":"Campaign Creation Guide","icon":"paper-plane","href":"/api-reference/campaigns-guide"},{"title":"Identities Guide","icon":"id-badge","href":"/api-reference/identities-guide"},{"title":"Rate Limits","icon":"gauge-high","href":"/api-reference/rate-limits"},{"title":"Actions guide","icon":"bolt","href":"/api-reference/actions-guide"},{"title":"AI Variables","icon":"wand-magic-sparkles","href":"/api-reference/ai-variables-guide"},{"title":"AI Playbook","icon":"book-open","href":"/api-reference/ai-playbook-guide"},{"title":"Webhooks guide","icon":"webhook","href":"/api-reference/webhooks-guide"},{"title":"Workflows API Overview","icon":"diagram-project","href":"/api-reference/workflows-guide"},{"title":"Workflows API Cookbook","icon":"book-open","href":"/api-reference/workflows-cookbook"},{"title":"Social Selling","href":"/api-reference/social-selling-guide"}]},{"group":"Endpoints","pages":[{"group":"AI Variables","pages":[{"title":"List contact AI variable folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/contacts","href":"/api-reference/ai-variables/list-contact-ai-variable-folders"},{"title":"Create contact AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/folders/contacts","href":"/api-reference/ai-variables/create-contact-ai-variable-folder"},{"title":"Get contact AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/contacts/{folderId}","href":"/api-reference/ai-variables/get-contact-ai-variable-folder"},{"title":"Delete contact AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/folders/contacts/{folderId}","href":"/api-reference/ai-variables/delete-contact-ai-variable-folder"},{"title":"Update contact AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/folders/contacts/{folderId}","href":"/api-reference/ai-variables/update-contact-ai-variable-folder"},{"title":"List company AI variable folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/companies","href":"/api-reference/ai-variables/list-company-ai-variable-folders"},{"title":"Create company AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/folders/companies","href":"/api-reference/ai-variables/create-company-ai-variable-folder"},{"title":"Get company AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/companies/{folderId}","href":"/api-reference/ai-variables/get-company-ai-variable-folder"},{"title":"Delete company AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/folders/companies/{folderId}","href":"/api-reference/ai-variables/delete-company-ai-variable-folder"},{"title":"Update company AI variable folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/folders/companies/{folderId}","href":"/api-reference/ai-variables/update-company-ai-variable-folder"},{"title":"List AI message folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/ai-messages","href":"/api-reference/ai-variables/list-ai-message-folders"},{"title":"Create AI message folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/folders/ai-messages","href":"/api-reference/ai-variables/create-ai-message-folder"},{"title":"Get AI message folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/ai-messages/{folderId}","href":"/api-reference/ai-variables/get-ai-message-folder"},{"title":"Delete AI message folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/folders/ai-messages/{folderId}","href":"/api-reference/ai-variables/delete-ai-message-folder"},{"title":"Update AI message folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/folders/ai-messages/{folderId}","href":"/api-reference/ai-variables/update-ai-message-folder"},{"title":"List AI snippet folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/ai-snippets","href":"/api-reference/ai-variables/list-ai-snippet-folders"},{"title":"Create AI snippet folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/folders/ai-snippets","href":"/api-reference/ai-variables/create-ai-snippet-folder"},{"title":"Get AI snippet folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/ai-snippets/{folderId}","href":"/api-reference/ai-variables/get-ai-snippet-folder"},{"title":"Delete AI snippet folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/folders/ai-snippets/{folderId}","href":"/api-reference/ai-variables/delete-ai-snippet-folder"},{"title":"Update AI snippet folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/folders/ai-snippets/{folderId}","href":"/api-reference/ai-variables/update-ai-snippet-folder"},{"title":"List message template folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/message-templates","href":"/api-reference/ai-variables/list-message-template-folders"},{"title":"Create message template folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/folders/message-templates","href":"/api-reference/ai-variables/create-message-template-folder"},{"title":"Get message template folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/folders/message-templates/{folderId}","href":"/api-reference/ai-variables/get-message-template-folder"},{"title":"Delete message template folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/folders/message-templates/{folderId}","href":"/api-reference/ai-variables/delete-message-template-folder"},{"title":"Update message template folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/folders/message-templates/{folderId}","href":"/api-reference/ai-variables/update-message-template-folder"},{"title":"List AI messages","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/ai-messages","href":"/api-reference/ai-variables/list-ai-messages"},{"title":"Create an ai message","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/ai-messages","href":"/api-reference/ai-variables/create-an-ai-message"},{"title":"List AI snippets","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/ai-snippets","href":"/api-reference/ai-variables/list-ai-snippets"},{"title":"Create an ai snippet","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/ai-snippets","href":"/api-reference/ai-variables/create-an-ai-snippet"},{"title":"List message templates","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/message-templates","href":"/api-reference/ai-variables/list-message-templates"},{"title":"Create a message template","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables/message-templates","href":"/api-reference/ai-variables/create-a-message-template"},{"title":"Get an ai message","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/ai-messages/{aiMessageId}","href":"/api-reference/ai-variables/get-an-ai-message"},{"title":"Delete an ai message","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/ai-messages/{aiMessageId}","href":"/api-reference/ai-variables/delete-an-ai-message"},{"title":"Update an ai message","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/ai-messages/{aiMessageId}","href":"/api-reference/ai-variables/update-an-ai-message"},{"title":"Get an ai snippet","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/ai-snippets/{aiSnippetId}","href":"/api-reference/ai-variables/get-an-ai-snippet"},{"title":"Delete an ai snippet","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/ai-snippets/{aiSnippetId}","href":"/api-reference/ai-variables/delete-an-ai-snippet"},{"title":"Update an ai snippet","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/ai-snippets/{aiSnippetId}","href":"/api-reference/ai-variables/update-an-ai-snippet"},{"title":"Get a message template","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/message-templates/{messageTemplateId}","href":"/api-reference/ai-variables/get-a-message-template"},{"title":"Delete a message template","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/message-templates/{messageTemplateId}","href":"/api-reference/ai-variables/delete-a-message-template"},{"title":"Update a message template","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/message-templates/{messageTemplateId}","href":"/api-reference/ai-variables/update-a-message-template"},{"title":"List AI message tones","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/ai-message-tones","href":"/api-reference/ai-variables/list-ai-message-tones"},{"title":"List AI variables","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables","href":"/api-reference/ai-variables/list-ai-variables"},{"title":"Create an AI variable","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-variables","href":"/api-reference/ai-variables/create-an-ai-variable"},{"title":"Get an AI variable","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-variables/{aiVariableId}","href":"/api-reference/ai-variables/get-an-ai-variable"},{"title":"Delete an AI variable","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/ai-variables/{aiVariableId}","href":"/api-reference/ai-variables/delete-an-ai-variable"},{"title":"Update an AI variable","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/ai-variables/{aiVariableId}","href":"/api-reference/ai-variables/update-an-ai-variable"}]},{"group":"Contacts","pages":[{"title":"Get contact field metadata","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/contacts/fields","href":"/api-reference/contacts/get-contact-field-metadata"},{"title":"Create a contact custom field","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/fields","href":"/api-reference/contacts/create-a-contact-custom-field"},{"title":"Get contacts","description":"Retrieve a paginated list of contacts.\n\nResponses include direct Enginy app URLs when available. Each returned contact includes an `appUrl` field, and associated companies include `appUrl` when present. MCP agents should return those URLs to users whenever they are present in the response.\n\n > **Required scope:** `CONTACTS_READ`\n >\n > **Rate limit:** 100 requests per minute","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/contacts","href":"/api-reference/contacts/get-contacts"},{"title":"Search contacts with advanced filters","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/search","href":"/api-reference/contacts/search-contacts-with-advanced-filters"},{"title":"Get a single contact","description":"Retrieve a single contact by ID.\n\nResponses include direct Enginy app URLs when available. The returned contact includes an `appUrl` field, and the associated company includes `appUrl` when present. MCP agents should return those URLs to users whenever they are present in the response.\n\n > **Required scope:** `CONTACTS_READ`\n >\n > **Rate limit:** 100 requests per minute","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/contact/{contactId}","href":"/api-reference/contacts/get-a-single-contact"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/contact/{contactId}","href":"/api-reference/contacts/delete-a-contact"},{"title":"Update contact fields","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/contact/{contactId}","href":"/api-reference/contacts/update-contact-fields"},{"title":"Create a new contact","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contact","href":"/api-reference/contacts/create-a-new-contact"},{"title":"Bulk create contacts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/bulk","href":"/api-reference/contacts/bulk-create-contacts"},{"title":"Get contact tags","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/contacts/tags","href":"/api-reference/contacts/get-contact-tags"},{"title":"Create a contact tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/tags","href":"/api-reference/contacts/create-a-contact-tag"},{"title":"Delete a contact tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/contacts/tag/{tagId}","href":"/api-reference/contacts/delete-a-contact-tag"},{"title":"Update a contact tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/contacts/tag/{tagId}","href":"/api-reference/contacts/update-a-contact-tag"},{"title":"Add tags to contacts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/tags/add","href":"/api-reference/contacts/add-tags-to-contacts"},{"title":"Remove tags from contacts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/contacts/tags/remove","href":"/api-reference/contacts/remove-tags-from-contacts"},{"title":"Find duplicate contacts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/contacts/duplicates","href":"/api-reference/contacts/find-duplicate-contacts"}]},{"group":"Companies","pages":[{"title":"Get company field metadata","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/companies/fields","href":"/api-reference/companies/get-company-field-metadata"},{"title":"Create a new company","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/company","href":"/api-reference/companies/create-a-new-company"},{"title":"Bulk create companies","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/companies/bulk","href":"/api-reference/companies/bulk-create-companies"},{"title":"Get companies","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/companies","href":"/api-reference/companies/get-companies"},{"title":"Search companies with advanced filters","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/companies/search","href":"/api-reference/companies/search-companies-with-advanced-filters"},{"title":"Get a single company","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/company/{companyId}","href":"/api-reference/companies/get-a-single-company"},{"title":"Delete a company","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/company/{companyId}","href":"/api-reference/companies/delete-a-company"},{"title":"Update company fields","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/company/{companyId}","href":"/api-reference/companies/update-company-fields"},{"title":"Get company tags","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/companies/tags","href":"/api-reference/companies/get-company-tags"},{"title":"Create a company tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/companies/tags","href":"/api-reference/companies/create-a-company-tag"},{"title":"Delete a company tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/companies/tag/{tagId}","href":"/api-reference/companies/delete-a-company-tag"},{"title":"Update a company tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/companies/tag/{tagId}","href":"/api-reference/companies/update-a-company-tag"},{"title":"Add tags to companies","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/companies/tags/add","href":"/api-reference/companies/add-tags-to-companies"},{"title":"Remove tags from companies","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/companies/tags/remove","href":"/api-reference/companies/remove-tags-from-companies"},{"title":"Find duplicate companies","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/companies/duplicates","href":"/api-reference/companies/find-duplicate-companies"}]},{"group":"AI Finder","pages":[{"title":"Preview an AI Finder search","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-finder/previews","href":"/api-reference/ai-finder/preview-an-ai-finder-search"},{"title":"Refine an AI Finder preview","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-finder/previews/{previewId}/iterate","href":"/api-reference/ai-finder/refine-an-ai-finder-preview"},{"title":"Import an AI Finder preview","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-finder/previews/{previewId}/import","href":"/api-reference/ai-finder/import-an-ai-finder-preview"},{"title":"Fetch results from an AI Finder preview","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-finder/previews/{previewId}/results","href":"/api-reference/ai-finder/fetch-results-from-an-ai-finder-preview"}]},{"group":"AI Playbook","pages":[{"title":"Get AI playbook","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/ai-playbook","href":"/api-reference/ai-playbook/get-ai-playbook"},{"title":"Update AI playbook","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json put /v1/ai-playbook","href":"/api-reference/ai-playbook/update-ai-playbook"}]},{"group":"Identities","pages":[{"title":"Get identities","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/identities","href":"/api-reference/identities/get-identities"},{"title":"Get identity performance metrics","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/identities/performance","href":"/api-reference/identities/get-identity-performance-metrics"},{"title":"Update identity","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/identities/{identityId}","href":"/api-reference/identities/update-identity"},{"title":"Get identity mailboxes","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/identities/{identityId}/mailboxes","href":"/api-reference/identities/get-identity-mailboxes"},{"title":"Create or update an identity mailbox","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/identities/{identityId}/mailboxes","href":"/api-reference/identities/create-or-update-an-identity-mailbox"}]},{"group":"Campaigns","pages":[{"title":"List campaign folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaigns/folders","href":"/api-reference/campaigns/list-campaign-folders"},{"title":"Create campaign folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/campaigns/folders","href":"/api-reference/campaigns/create-campaign-folder"},{"title":"Get campaign folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaigns/folders/{folderId}","href":"/api-reference/campaigns/get-campaign-folder"},{"title":"Delete campaign folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/campaigns/folders/{folderId}","href":"/api-reference/campaigns/delete-campaign-folder"},{"title":"Update campaign folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/campaigns/folders/{folderId}","href":"/api-reference/campaigns/update-campaign-folder"},{"title":"Get campaigns","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaigns","href":"/api-reference/campaigns/get-campaigns"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/campaigns","href":"/api-reference/campaigns/create-campaign"},{"title":"Validate campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/campaigns/validate","href":"/api-reference/campaigns/validate-campaign"},{"title":"Get a single campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaign/{campaignId}","href":"/api-reference/campaigns/get-a-single-campaign"},{"title":"Update a draft campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/campaign/{campaignId}","href":"/api-reference/campaigns/update-a-draft-campaign"},{"title":"Validate campaign draft","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaign/{campaignId}/validate-draft","href":"/api-reference/campaigns/validate-campaign-draft"},{"title":"Get campaign analytics","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/campaign/{campaignId}/analytics","href":"/api-reference/campaigns/get-campaign-analytics"},{"title":"Clone a campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/campaign/{campaignId}/clone","href":"/api-reference/campaigns/clone-a-campaign"},{"title":"Update campaign status","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/campaign/{campaignId}/status","href":"/api-reference/campaigns/update-campaign-status"},{"title":"Add a contact to a campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/add-contact-to-campaign","href":"/api-reference/campaigns/add-a-contact-to-a-campaign"},{"title":"Add a contact group to a campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/add-contact-group-to-campaign","href":"/api-reference/campaigns/add-a-contact-group-to-a-campaign"},{"title":"Pause a contact in a campaign","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/pause-contact-in-campaign","href":"/api-reference/campaigns/pause-a-contact-in-a-campaign"},{"title":"Get conversations analytics","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/analytics/conversations","href":"/api-reference/campaigns/get-conversations-analytics"},{"title":"Get conversation messages","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/conversation/:conversationId/messages","href":"/api-reference/campaigns/get-conversation-messages"}]},{"group":"Tasks","pages":[{"title":"Get task owners","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/tasks/owners","href":"/api-reference/tasks/get-task-owners"},{"title":"Get tasks","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/tasks","href":"/api-reference/tasks/get-tasks"},{"title":"Create task","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/tasks","href":"/api-reference/tasks/create-task"},{"title":"Delete tasks","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/tasks","href":"/api-reference/tasks/delete-tasks"},{"title":"Get task IDs","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/tasks/ids","href":"/api-reference/tasks/get-task-ids"},{"title":"Get task status counts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/tasks/status-counts","href":"/api-reference/tasks/get-task-status-counts"},{"title":"Get task pending count","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/tasks/pending-count","href":"/api-reference/tasks/get-task-pending-count"},{"title":"Update task","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/tasks/{taskId}","href":"/api-reference/tasks/update-task"},{"title":"Complete task","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/tasks/{taskId}/complete","href":"/api-reference/tasks/complete-task"},{"title":"Complete tasks batch","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/tasks/complete-batch","href":"/api-reference/tasks/complete-tasks-batch"},{"title":"Set skipped tasks","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/tasks/skipped","href":"/api-reference/tasks/set-skipped-tasks"}]},{"group":"Voices","pages":[{"title":"Get voices","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/voices","href":"/api-reference/voices/get-voices"}]},{"group":"Lists","pages":[{"title":"List folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/folders","href":"/api-reference/lists/list-folders"},{"title":"List contact list folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/folders/contacts","href":"/api-reference/lists/list-contact-list-folders"},{"title":"Create contact list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/folders/contacts","href":"/api-reference/lists/create-contact-list-folder"},{"title":"Get contact list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/folders/contacts/{folderId}","href":"/api-reference/lists/get-contact-list-folder"},{"title":"Delete contact list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/folders/contacts/{folderId}","href":"/api-reference/lists/delete-contact-list-folder"},{"title":"Update contact list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/folders/contacts/{folderId}","href":"/api-reference/lists/update-contact-list-folder"},{"title":"List company list folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/folders/companies","href":"/api-reference/lists/list-company-list-folders"},{"title":"Create company list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/folders/companies","href":"/api-reference/lists/create-company-list-folder"},{"title":"Get company list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/folders/companies/{folderId}","href":"/api-reference/lists/get-company-list-folder"},{"title":"Delete company list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/folders/companies/{folderId}","href":"/api-reference/lists/delete-company-list-folder"},{"title":"Update company list folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/folders/companies/{folderId}","href":"/api-reference/lists/update-company-list-folder"},{"title":"Get lists","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/lists","href":"/api-reference/lists/get-lists"},{"title":"Create a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/lists","href":"/api-reference/lists/create-a-list"},{"title":"Delete a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/lists/{listId}","href":"/api-reference/lists/delete-a-list"},{"title":"Import a list from AI Finder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/ai-finder/import","href":"/api-reference/lists/import-a-list-from-ai-finder"},{"title":"Add contacts to a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/lists/{listId}/contacts","href":"/api-reference/lists/add-contacts-to-a-list"},{"title":"Remove contacts from a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/lists/{listId}/contacts","href":"/api-reference/lists/remove-contacts-from-a-list"},{"title":"Move contacts between lists","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/lists/{fromListId}/contacts/move","href":"/api-reference/lists/move-contacts-between-lists"},{"title":"Add companies to a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/lists/{listId}/companies","href":"/api-reference/lists/add-companies-to-a-list"},{"title":"Remove companies from a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/lists/{listId}/companies","href":"/api-reference/lists/remove-companies-from-a-list"},{"title":"Move companies between lists","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/lists/{fromListId}/companies/move","href":"/api-reference/lists/move-companies-between-lists"}]},{"group":"Saved Filters","pages":[{"title":"Get saved filters","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/saved-filters","href":"/api-reference/saved-filters/get-saved-filters"},{"title":"Create a saved filter","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/saved-filters","href":"/api-reference/saved-filters/create-a-saved-filter"},{"title":"Delete a saved filter","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/saved-filters/{savedFilterId}","href":"/api-reference/saved-filters/delete-a-saved-filter"}]},{"group":"Saved Views","pages":[{"title":"Get saved views","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/saved-views","href":"/api-reference/saved-views/get-saved-views"},{"title":"Get saved view","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/saved-views/{savedViewId}","href":"/api-reference/saved-views/get-saved-view"}]},{"group":"Credits","pages":[{"title":"Get credit balance","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/credits","href":"/api-reference/credits/get-credit-balance"},{"title":"Get credit pricing","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/credits/pricing","href":"/api-reference/credits/get-credit-pricing"}]},{"group":"Actions","pages":[{"title":"Start an actions run","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/actions","href":"/api-reference/actions/start-an-actions-run"},{"title":"Get actions run status","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/actions/{actionsId}/status","href":"/api-reference/actions/get-actions-run-status"}]},{"group":"Inbox","pages":[{"title":"List inbox threads","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/inboxes","href":"/api-reference/inbox/list-inbox-threads"},{"title":"Get inbox contact messages","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/inboxes/:contactId/messages","href":"/api-reference/inbox/get-inbox-contact-messages"},{"title":"Build inbox link","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inbox/link","href":"/api-reference/inbox/build-inbox-link"},{"title":"List inbox tags","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/inbox/tags","href":"/api-reference/inbox/list-inbox-tags"},{"title":"Create inbox tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inbox/tags","href":"/api-reference/inbox/create-inbox-tag"},{"title":"Get inbox tag","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/inbox/tags/:tagId","href":"/api-reference/inbox/get-inbox-tag"},{"title":"Attach inbox tags to a contact thread","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inbox/contacts/:contactId/tags","href":"/api-reference/inbox/attach-inbox-tags-to-a-contact-thread"},{"title":"Remove inbox tags from a contact thread","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/inbox/contacts/:contactId/tags","href":"/api-reference/inbox/remove-inbox-tags-from-a-contact-thread"},{"title":"Archive inbox contact thread","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inboxes/:contactId/archive","href":"/api-reference/inbox/archive-inbox-contact-thread"},{"title":"Unarchive inbox contact thread","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inboxes/:contactId/unarchive","href":"/api-reference/inbox/unarchive-inbox-contact-thread"},{"title":"Mark inbox contact thread as read","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inboxes/:contactId/read","href":"/api-reference/inbox/mark-inbox-contact-thread-as-read"},{"title":"Send inbox message","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/inbox/messages","href":"/api-reference/inbox/send-inbox-message"}]},{"group":"Webhooks","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/webhooks","href":"/api-reference/webhooks/list-webhook-subscriptions"},{"title":"Create webhook subscription","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/webhooks","href":"/api-reference/webhooks/create-webhook-subscription"},{"title":"Get webhook subscription","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/webhooks/{webhookId}","href":"/api-reference/webhooks/get-webhook-subscription"},{"title":"Delete webhook subscription","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/webhooks/{webhookId}","href":"/api-reference/webhooks/delete-webhook-subscription"},{"title":"Update webhook subscription","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/webhooks/{webhookId}","href":"/api-reference/webhooks/update-webhook-subscription"},{"title":"Get webhook delivery logs","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/webhooks/{webhookId}/logs","href":"/api-reference/webhooks/get-webhook-delivery-logs"},{"title":"Test webhook subscription","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/webhooks/{webhookId}/test","href":"/api-reference/webhooks/test-webhook-subscription"},{"title":"Actions completed webhook","version":null,"deprecated":null,"openapi":"https://openapi.enginy.ai/definitions.json webhook /your-webhook-url","href":"/api-reference/webhooks/actions-completed-webhook"},{"title":"Conversation events webhook","version":null,"deprecated":null,"openapi":"https://openapi.enginy.ai/definitions.json webhook /your-conversation-webhook-url","href":"/api-reference/webhooks/conversation-events-webhook"}]},{"group":"Blocklist","pages":[{"title":"List blocklist entries","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/blocklist","href":"/api-reference/blocklist/list-blocklist-entries"},{"title":"Add blocklist entries by value","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/blocklist/items","href":"/api-reference/blocklist/add-blocklist-entries-by-value"},{"title":"Block contacts or companies by ID","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/blocklist/add-entities","href":"/api-reference/blocklist/block-contacts-or-companies-by-id"},{"title":"Delete a blocklist entry","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/blocklist/{itemId}","href":"/api-reference/blocklist/delete-a-blocklist-entry"},{"title":"Update a blocklist entry","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/blocklist/{itemId}","href":"/api-reference/blocklist/update-a-blocklist-entry"},{"title":"Delete blocklist entries in bulk","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/blocklist/bulk-delete","href":"/api-reference/blocklist/delete-blocklist-entries-in-bulk"}]},{"group":"Social Selling","pages":[{"title":"List Social Selling posts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/posts","href":"/api-reference/social-selling/list-social-selling-posts"},{"title":"Track a Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/posts","href":"/api-reference/social-selling/track-a-social-selling-post"},{"title":"Get a Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/posts/{postId}","href":"/api-reference/social-selling/get-a-social-selling-post"},{"title":"Add reactions to a Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/posts/{postId}/reactions","href":"/api-reference/social-selling/add-reactions-to-a-social-selling-post"},{"title":"Get Social Selling best publishing times","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/analytics/publishing-times","href":"/api-reference/social-selling/get-social-selling-best-publishing-times"},{"title":"Get Social Selling overview","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/analytics/overview","href":"/api-reference/social-selling/get-social-selling-overview"},{"title":"List Social Selling identity performance","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/analytics/identities","href":"/api-reference/social-selling/list-social-selling-identity-performance"},{"title":"List Social Selling engagers","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/engagers","href":"/api-reference/social-selling/list-social-selling-engagers"},{"title":"List Social Selling post engagers","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/posts/{postId}/engagers","href":"/api-reference/social-selling/list-social-selling-post-engagers"},{"title":"Preview Social Selling engager export","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/engagers/export-preview","href":"/api-reference/social-selling/preview-social-selling-engager-export"},{"title":"Export Social Selling engagers to a list","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/engagers/export","href":"/api-reference/social-selling/export-social-selling-engagers-to-a-list"},{"title":"Add a comment to a Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/comments","href":"/api-reference/social-selling/add-a-comment-to-a-social-selling-post"},{"title":"Generate Social Selling comment suggestions","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/comment-suggestions","href":"/api-reference/social-selling/generate-social-selling-comment-suggestions"},{"title":"List scheduled Social Selling posts","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/social-selling/scheduled-posts","href":"/api-reference/social-selling/list-scheduled-social-selling-posts"},{"title":"Schedule a Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/social-selling/scheduled-posts","href":"/api-reference/social-selling/schedule-a-social-selling-post"},{"title":"Cancel a scheduled Social Selling post","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/social-selling/scheduled-posts/{publishingPostId}","href":"/api-reference/social-selling/cancel-a-scheduled-social-selling-post"}]},{"group":"Workflows","pages":[{"title":"Get workflow blocks","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows/blocks","href":"/api-reference/workflows/get-workflow-blocks"},{"title":"Get workflow block inputs","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows/blocks/{blockId}","href":"/api-reference/workflows/get-workflow-block-inputs"},{"title":"Get workflow condition fields","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows/condition-fields","href":"/api-reference/workflows/get-workflow-condition-fields"},{"title":"Get workflow import inputs","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows/import-inputs","href":"/api-reference/workflows/get-workflow-import-inputs"},{"title":"Get workflows","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows","href":"/api-reference/workflows/get-workflows"},{"title":"Create workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflows","href":"/api-reference/workflows/create-workflow"},{"title":"List workflow folders","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflows/folders","href":"/api-reference/workflows/list-workflow-folders"},{"title":"Create workflow folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflows/folders","href":"/api-reference/workflows/create-workflow-folder"},{"title":"Delete workflow folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/workflows/folders/{folderId}","href":"/api-reference/workflows/delete-workflow-folder"},{"title":"Update workflow folder","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/workflows/folders/{folderId}","href":"/api-reference/workflows/update-workflow-folder"},{"title":"Validate workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflows/validate","href":"/api-reference/workflows/validate-workflow"},{"title":"Get a single workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflow/{workflowId}","href":"/api-reference/workflows/get-a-single-workflow"},{"title":"Delete workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json delete /v1/workflow/{workflowId}","href":"/api-reference/workflows/delete-workflow"},{"title":"Update workflow draft","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json patch /v1/workflow/{workflowId}/draft","href":"/api-reference/workflows/update-workflow-draft"},{"title":"Validate workflow draft","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflow/{workflowId}/validate-draft","href":"/api-reference/workflows/validate-workflow-draft"},{"title":"Publish workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflow/{workflowId}/publish","href":"/api-reference/workflows/publish-workflow"},{"title":"Run workflow","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflow/{workflowId}/run","href":"/api-reference/workflows/run-workflow"},{"title":"Get workflow runs","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflow/{workflowId}/runs","href":"/api-reference/workflows/get-workflow-runs"},{"title":"Get workflow run status","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/workflow-runs/{runId}","href":"/api-reference/workflows/get-workflow-run-status"},{"title":"Cancel workflow run","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json post /v1/workflow-runs/{runId}/cancel","href":"/api-reference/workflows/cancel-workflow-run"}]},{"group":"Authentication","pages":[{"title":"Validate API key","deprecated":null,"version":null,"openapi":"https://openapi.enginy.ai/definitions.json get /v1/validate","href":"/api-reference/authentication/validate-api-key"}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Workflows","pages":[{"title":"Workflows","href":"/workflows/overview"}]},{"tab":"Custom CRM","pages":[{"title":"Custom CRM","href":"/api-reference/custom-crm/overview"}]}]},"title":"Search contacts with advanced filters - Enginy API Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}