Instantly integration for AI agents.
Instantly integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Instantly tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Instantly actions, managed and audited.
Your user connects Instantly once; your agent can then manage Instantly outbound campaigns, leads, accounts, emails, analytics, tags, and webhooks — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Instantly access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Instantly tools.
170 tools are generated from the published Instantly catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 170 tools. All published catalog entries are included in this page's server-rendered HTML.
- Activate(start), or resume a campaign
- Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`
- Campaign
- Add campaign variables
- Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`
- Campaign
- Set the agency domain for the workspace
- Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`
- Workspace
- Add leads in bulk to a campaign or list
- Adds up to 1000 leads to either a campaign or a list. You must provide a `campaign_id` or a `list_id`, but not both. The endpoint validates emails, checks against blocklists and existing leads. Requires one of the following scopes: `leads:create`, `leads:all`, `all:create`, `all:all`
- Lead
- Bulk assign leads to organization users
- Bulk assign leads to organization users
- Lead
- Delete leads in bulk
- Delete multiple leads from a campaign or list based on filters. You must provide either `campaign_id` or `list_id`. Optionally filter by status or specific IDs. Requires one of the following scopes: `leads:delete`, `leads:all`, `all:delete`, `all:all`
- Lead
- Cancel Current Workspace Removal
- Requires one of the following scopes: `workspaces:delete`, `workspaces:all`, `all:delete`, `all:all`
- Workspace
- Cancel dfy email accounts
- This endpoint will cancel the DFY email accounts based on the provided email addresses. Cancelling permanently deletes all Unibox emails and conversations associated with the cancelled accounts. This cannot be undone. Requires one of the following scopes: `dfy_email_account_orders:delete`, `dfy_email_account_orders:all`, `all:delete`, `all:all`
- DFYEmailAccountOrder
- Change workspace owner
- Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`
- Workspace
- Check domains availability
- This endpoint will check the availability of the provided domains.. It will return a list of domains with their availability status. . The only supported extensions (tlds) are: .com, .org. . Domains containing trademarks of well-known companies are restricted and cannot be ordered. . Please do not abuse this endpoint and do not use it for anything other than checking availability before ordering a domain.. This request has a rate limit of 30 request per minute, or 900 requests per hour. Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`, `all:all`
- DFYEmailAccountOrder
- Check an email verification status
- Requires one of the following scopes: `email_verifications:read`, `email_verifications:all`, `all:read`, `all:all`
- EmailVerification
- Get launched campaigns count
- Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- Count leads from supersearch
- Count the number of leads matching a SuperSearch query without enriching them. This endpoint is intended to estimate lead availability before running an enrichment. Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`
- SuperSearchEnrichment
- Count unread emails
- Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`
- Create account
- Requires one of the following scopes: `accounts:create`, `accounts:all`, `all:create`, `all:all`
- Account
- Create AI enrichment
- Create an AI enrichment for a resource (list or campaign) Requires one of the following scopes: `supersearch_enrichments:create`, `supersearch_enrichments:all`, `all:create`, `all:all`
- SuperSearchEnrichment
- Create api key
- Requires one of the following scopes: `api_keys:create`, `api_keys:all`, `all:create`, `all:all`
- APIKey
- Create block list entry
- Requires one of the following scopes: `block_list_entries:create`, `block_list_entries:all`, `all:create`, `all:all`
- BlockListEntry
- Create campaign
- Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`
- Campaign
- Create campaign subsequence
- Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`
- CampaignSubsequence
- Create custom tag
- Requires one of the following scopes: `custom_tags:create`, `custom_tags:all`, `all:create`, `all:all`
- CustomTag
- Place a DFY email account order
- Place a Done-For-You (DFY) email account order for your workspace. **Order types** - `dfy`: Buy new DFY accounts on new custom domains. - `pre_warmed_up`: Buy available pre-warmed domains returned by `/dfy-email-account-orders/domains/pre-warmed-up-list`. - `extra_accounts`: Add mailboxes to domains you already ordered. All active accounts on a domain must use the same `email_provider`. **Provider limits and pricing** - `1` Google: up to 5 mailboxes per domain; per-mailbox monthly pricing. - `2` AirMail: up to 5 mailboxes per domain; per-mailbox monthly pricing. - `3` Microsoft/Outlook: exactly 50 mailboxes per new DFY domain; per-domain monthly pricing; extra-account orders are not supported. **Before ordering** - Regular DFY domains must use supported TLDs: .com, .org. - Check new-domain availability with `/dfy-email-account-orders/domains/check`. - Domains containing trademarks of well-known companies are restricted and cannot be ordered. - For pre-warmed orders, choose a domain from `/dfy-email-account-orders/domains/pre-warmed-up-list`; if none are available, use a regular `dfy` order instead. - The workspace must have an Outreach plan and a default payment method. Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`, `all:all`
- DFYEmailAccountOrder
- Create email verification
- If an email takes longer than 10 seconds to verify, the endpoint will return the status as `pending`. In that case, you may use the `/email-verification/:email` endpoint to check the status of the verification job. Alternatively, you can send a `webhook_url` to receive the results instead of polling the status endpoint. Requires one of the following scopes: `email_verifications:create` Requires one of the following scopes: `email_verifications:create`, `email_verifications:all`, `all:create`, `all:all`
- EmailVerification
- Create campaign from shared one
- Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`
- Campaign
- Create inbox placement test
- Requires one of the following scopes: `inbox_placement_tests:create`, `inbox_placement_tests:all`, `all:create`, `all:all`
- InboxPlacementTest
- Create lead
- Requires one of the following scopes: `leads:create`, `leads:all`, `all:create`, `all:all`
- Lead
- Create lead label
- Requires one of the following scopes: `lead-labels:create`, `lead-labels:all`, `all:create`, `all:all`
- LeadLabel
- Create lead list
- Requires one of the following scopes: `lead_lists:create`, `lead_lists:all`, `all:create`, `all:all`
- LeadList
- Create an enrichment
- Create an enrichment for a specific resource (list or campaign). This is the main endpoint for adding enrichments to resources. The enrichments are automatically run after creation.
- SuperSearchEnrichment
- Create webhook
- Requires one of the following scopes: `webhooks:create`, `webhooks:all`, `all:create`, `all:all`
- Webhook
- Create workspace group member
- This endpoint allows you to send an invitation for a sub workspace to join the admin workspace. The sub workspace will be added as a sub workspace of the admin workspace only if the sub workspace owner accepts the invitation. Requires one of the following scopes: `workspace_group_members:create`, `workspace_group_members:all`, `all:create`, `all:all`
- WorkspaceGroupMember
- Create workspace member
- Requires one of the following scopes: `workspace_members:create`, `workspace_members:all`, `all:create`, `all:all`
- WorkspaceMember
- Bulk create block list entry
- Requires one of the following scopes: `block_list_entries:create`, `block_list_entries:all`, `all:create`, `all:all`
- BlockListEntry
- Delete account
- Requires one of the following scopes: `accounts:delete`, `accounts:all`, `all:delete`, `all:all`
- Account
- Delete api key
- Requires one of the following scopes: `api_keys:delete`, `api_keys:all`, `all:delete`, `all:all`
- APIKey
- Delete block list entry
- Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`, `all:all`
- BlockListEntry
- Delete campaign
- Requires one of the following scopes: `campaigns:delete`, `campaigns:all`, `all:delete`, `all:all`
- Campaign
- Delete campaign subsequence
- Requires one of the following scopes: `subsequences:delete`, `subsequences:all`, `all:delete`, `all:all`
- CampaignSubsequence
- Delete custom tag
- Requires one of the following scopes: `custom_tags:delete`, `custom_tags:all`, `all:delete`, `all:all`
- CustomTag
- Delete email
- Requires one of the following scopes: `emails:delete`, `emails:all`, `all:delete`, `all:all`
- Delete inbox placement test
- Requires one of the following scopes: `inbox_placement_tests:delete`, `inbox_placement_tests:all`, `all:delete`, `all:all`
- InboxPlacementTest
- Delete lead
- Requires one of the following scopes: `leads:delete`, `leads:all`, `all:delete`, `all:all`
- Lead
- Delete lead label
- Requires one of the following scopes: `lead-labels:delete`, `lead-labels:all`, `all:delete`, `all:all`
- LeadLabel
- Delete lead list
- Requires one of the following scopes: `lead_lists:delete`, `lead_lists:all`, `all:delete`, `all:all`
- LeadList
- Delete phone number
- Delete a specific phone number from the organization. Requires one of the following scopes: `crm_actions:delete`, `crm_actions:all`, `all:delete`, `all:all`
- CRMActions
- Delete webhook
- Requires one of the following scopes: `webhooks:delete`, `webhooks:all`, `all:delete`, `all:all`
- Webhook
- Delete organization agency domain
- Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`
- Workspace
- Delete workspace group member
- Requires one of the following scopes: `workspace_group_members:delete`, `workspace_group_members:all`, `all:delete`, `all:all`
- WorkspaceGroupMember
- Delete workspace member
- Requires one of the following scopes: `workspace_members:delete`, `workspace_members:all`, `all:delete`, `all:all`
- WorkspaceMember
- Delete all block list entries
- Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`, `all:all`
- BlockListEntry
- Bulk delete block list entry
- Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`, `all:all`
- BlockListEntry
- Disable warmup for accounts
- Initiates a background job to disable warmup for the specified accounts. The response will contain the initial background job object. You can monitor the job's progress by polling the `GET: /api/v2/background-jobs/:id` endpoint.
- Account
- Download all block list entries as CSV
- Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`, `all:all`
- BlockListEntry
- Duplicate campaign
- Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`
- Campaign
- Duplicate a subsequence
- Duplicate a subsequence with the same trigger conditions Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`
- CampaignSubsequence
- Enable warmup for accounts
- Initiates a background job to enable warmup for the specified accounts. The response will contain the initial background job object. You can monitor the job's progress by polling the `GET: /api/v2/background-jobs/:id` endpoint.
- Account
- Enrich leads from supersearch
- Add leads from SuperSearch to a list and enrich them. A list is automatically created if no list is provided.
- SuperSearchEnrichment
- Export campaign to JSON format
- Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- Forward an email
- Forward an existing email to another recipient. You must specify the `reply_to_uuid` field, which represents the `id` of an existing email returned by the `/emails` endpoints. By default only the provided body is sent. Set `include_original_body` to `true` to append the original email context. Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`
- Generate similar available domains
- This endpoint will generate a list of similar AND available domains based on the provided domain.. It will return a maximum number of 66 suggestions per extension (tld) requested.. All the returned domains will be available for order.. Domains containing trademarks of well-known companies are restricted and cannot be ordered. Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`, `all:all`
- DFYEmailAccountOrder
- Get account
- Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`
- Account
- Get campaigns associated with an email
- Requires one of the following scopes: `account_campaign_mappings:read`, `account_campaign_mappings:all`, `all:read`, `all:all`
- AccountCampaignMapping
- Get the current workspace admin workspace
- Get the details of the admin workspace of the current workspace
- WorkspaceGroupMember
- Get AI enrichment for resource
- Get the AI enrichment for a specific resource Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`
- SuperSearchEnrichment
- Get background job
- Requires one of the following scopes: `background-jobs:read`, `background-jobs:all`, `all:read`, `all:all`
- BackgroundJob
- Get block list entry
- Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`, `all:all`
- BlockListEntry
- Get campaign
- Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- Get campaign(s) analytics
- Get analytics for one or multiple campaigns. Specify the `id` field to get the analytics for a single campaign, or leave it empty to get the analytics for all campaigns
- CampaignAnalytics
- Get campaign(s) analytics overview
- Get analytics overview for one or multiple campaigns. Specify the `id` field to get the analytics overview for a single campaign, or leave it empty to get the analytics overview for all campaigns. Note regarding the interest status totals (interested, meeting booked, meeting completed, closed): these are calculated based on the first occurrence of each event per contact by default. To change this behavior and calculate the totals based on all occurrences of the events, set the `expand_crm_events` parameter to `true`. Additionally, there is a 10 minute time window after you change a lead status in which the subsequent updates will NOT insert new analytics events to avoid duplicates from rapid status changes and avoid false inflation of the analytics numbers.
- CampaignAnalytics
- Get campaign sending status
- Returns sending status data explaining why a campaign may not be sending emails or is sending slower than expected. Note: Some fields may be missing when the campaign is out of schedule. Always-present fields: campaign_id, last_updated, status, issue_tracking. Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- Get campaign steps analytics
- Get campaign steps analytics
- CampaignAnalytics
- Get campaign subsequence
- Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`
- CampaignSubsequence
- Get custom tracking domain status
- Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`
- Account
- Get custom tag
- Requires one of the following scopes: `custom_tags:read`, `custom_tags:all`, `all:read`, `all:all`
- CustomTag
- Get daily account analytics
- Get daily account analytics showing the number of emails sent per day for each email account. Useful for tracking daily sending activity across your accounts.
- AccountAnalytics
- Get daily campaign analytics
- Get campaign daily analytics
- CampaignAnalytics
- Get email
- Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`
- Get enrichment for resource
- Get the enrichment for a specific resource
- SuperSearchEnrichment
- Get enrichment history
- Retrieve the enrichment history for a specific resource Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`
- SuperSearchEnrichment
- Get inbox placement analytics
- Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`, `all:all`
- InboxPlacementAnalytics
- Retrieve inbox placement analytics deliverability insights
- Provides deliverability insights for a specific inbox placement test Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`, `all:all`
- InboxPlacementAnalytics
- Get inbox placement analytics stats by date
- Provides a time series representing the distribution of emails sent to inbox, spam, or category folders for scheduled inbox placement tests. Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`, `all:all`
- InboxPlacementAnalytics
- Retrieve inbox placement analytics stats by test id
- Provides aggregated inbox, spam and category counts for specified test IDs Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`, `all:all`
- InboxPlacementAnalytics
- Get inbox placement blacklist and spamassassin report
- Requires one of the following scopes: `inbox_placement_reports:read`, `inbox_placement_reports:all`, `all:read`, `all:all`
- InboxPlacementBlacklistAndSpamAssassinReport
- Get inbox placement test
- Requires one of the following scopes: `inbox_placement_tests:read`, `inbox_placement_tests:all`, `all:read`, `all:all`
- InboxPlacementTest
- Get ESP options
- Provides a list of available email service providers for inbox placement tests.
- InboxPlacementTest
- Get lead
- Requires one of the following scopes: `leads:read`, `leads:all`, `all:read`, `all:all`
- Lead
- Get lead label
- Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`
- LeadLabel
- Get lead list
- Requires one of the following scopes: `lead_lists:read`, `lead_lists:all`, `all:read`, `all:all`
- LeadList
- Get oauth session status
- Poll this endpoint to check the OAuth session result. Works for both Google and Microsoft OAuth sessions. Returns pending while waiting, success with account details when complete, or error if something went wrong. Sessions expire after 10 minutes.
- OAuth
- Get subsequence sending status
- Returns sending status data explaining why a subsequence may not be sending emails or is sending slower than expected. Note: Some fields may be missing when the campaign is out of schedule. Always-present fields: campaign_id, subsequence_id, last_updated, status, issue_tracking. Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`
- CampaignSubsequence
- Get verification statistics for a lead list
- Get verification statistics for a lead list
- LeadList
- Get warmup analytics
- Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`
- AccountAnalytics
- Get webhook
- Requires one of the following scopes: `webhooks:read`, `webhooks:all`, `all:read`, `all:all`
- Webhook
- Get webhook event
- Requires one of the following scopes: `webhook_events:read`, `webhook_events:all`, `all:read`, `all:all`
- WebhookEvent
- Get overview aggregates for webhook events
- Get overview aggregates for webhook events including success/failure rates
- WebhookEvent
- Get overview aggregates for webhook events by date
- Get overview aggregates for webhook events by Date for charts
- WebhookEvent
- Get workspace
- Get your current workspace details. Note that this endpoint doesn't require any parameters. It will return the workspace based on the API key sent in the headers. Requires one of the following scopes: `workspaces:read`, `workspaces:all`, `all:read`, `all:all`
- Workspace
- Get organization verified agency domain information
- Requires one of the following scopes: `workspaces:read`, `workspaces:all`, `all:read`, `all:all`
- Workspace
- Get workspace group member
- Requires one of the following scopes: `workspace_group_members:read`, `workspace_group_members:all`, `all:read`, `all:all`
- WorkspaceGroupMember
- Get workspace member
- Requires one of the following scopes: `workspace_members:read`, `workspace_members:all`, `all:read`, `all:all`
- WorkspaceMember
- Get workspace plan details
- Requires one of the following scopes: `workspace_billing:read`, `workspace_billing:all`, `all:read`, `all:all`
- WorkspaceBilling
- Get workspace subscription details
- Requires one of the following scopes: `workspace_billing:read`, `workspace_billing:all`, `all:read`, `all:all`
- WorkspaceBilling
- Initialize google oauth
- Creates an OAuth session and returns the Google authorization URL. The user should be redirected to auth_url to complete the OAuth flow. Poll the status endpoint to check for completion. **Special rate limits (stricter than the standard API rate limit) to comply with upstream Google rate limits:** - 75 requests per minute per workspace - 150 requests per minute per IP If Google's upstream OAuth service is temporarily unavailable, requests may return 503.
- OAuth
- Initialize microsoft oauth
- Creates an OAuth session and returns the Microsoft authorization URL. The user should be redirected to auth_url to complete the OAuth flow. Poll the status endpoint to check for completion. **Special rate limits (stricter than the standard API rate limit) to comply with upstream Microsoft rate limits:** - 75 requests per minute per workspace - 150 requests per minute per IP If Microsoft's upstream OAuth service is temporarily unavailable, requests may return 503.
- OAuth
- List account
- Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`
- Account
- List api key
- Requires one of the following scopes: `api_keys:read`, `api_keys:all`, `all:read`, `all:all`
- APIKey
- List audit log
- Requires one of the following scopes: `audit_logs:read`, `audit_logs:all`, `all:read`, `all:all`
- AuditLog
- List background job
- Requires one of the following scopes: `background-jobs:read`, `background-jobs:all`, `all:read`, `all:all`
- BackgroundJob
- List block list entry
- Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`, `all:all`
- BlockListEntry
- List campaign
- Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- List campaign subsequence
- Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`
- CampaignSubsequence
- List custom tag
- Requires one of the following scopes: `custom_tags:read`, `custom_tags:all`, `all:read`, `all:all`
- CustomTag
- List custom tag mapping
- Requires one of the following scopes: `custom_tag_mappings:read`, `custom_tag_mappings:all`, `all:read`, `all:all`
- CustomTagMapping
- List dfy email account order
- Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`, `all:read`, `all:all`
- DFYEmailAccountOrder
- List DFY ordered email accounts
- This endpoint will return a list of DFY email accounts ordered Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`, `all:read`, `all:all`
- DFYEmailAccountOrder
- List email
- **Rate Limit:** This endpoint has a rate limit of 20 requests per minute, unlike other API endpoints. Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`
- List inbox placement analytics
- Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`, `all:all`
- InboxPlacementAnalytics
- List inbox placement blacklist and spamassassin report
- Requires one of the following scopes: `inbox_placement_reports:read`, `inbox_placement_reports:all`, `all:read`, `all:all`
- InboxPlacementBlacklistAndSpamAssassinReport
- List inbox placement test
- Requires one of the following scopes: `inbox_placement_tests:read`, `inbox_placement_tests:all`, `all:read`, `all:all`
- InboxPlacementTest
- List lead label
- Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`
- LeadLabel
- List lead list
- Requires one of the following scopes: `lead_lists:read`, `lead_lists:all`, `all:read`, `all:all`
- LeadList
- List leads
- This endpoint is a POST endpoint, instead of GET - a deviation from the REST APIs standards we’re following because of the complex arguments it accepts, which would be too hard to express through query parameters. Results are ordered by each lead's `id` field in ascending order (or by `contact` when distinct_contacts is true) so clients can paginate chronologically by reusing the cursor returned in `next_starting_after`. Leads created on or after October 15, 2025 respect this chronological ordering; older records may appear out of sequence when sorted by ID. Requires one of the following scopes: `leads:read`, `leads:all`, `all:read`, `all:all`
- Lead
- List phone numbers
- Retrieve all phone numbers associated with the current organization. Requires one of the following scopes: `crm_actions:read`, `crm_actions:all`, `all:read`, `all:all`
- CRMActions
- List webhooks
- List all webhooks for the workspace with optional filters
- Webhook
- List webhook event
- Requires one of the following scopes: `webhook_events:read`, `webhook_events:all`, `all:read`, `all:all`
- WebhookEvent
- List available event types
- Get all available webhook event types including custom labels
- Webhook
- List workspace group member
- Requires one of the following scopes: `workspace_group_members:read`, `workspace_group_members:all`, `all:read`, `all:all`
- WorkspaceGroupMember
- List workspace member
- Requires one of the following scopes: `workspace_members:read`, `workspace_members:all`, `all:read`, `all:all`
- WorkspaceMember
- Mark an account as fixed
- Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`
- Account
- Mark all emails in a thread as read
- Requires one of the following scopes: `emails:update`, `emails:all`, `all:update`, `all:all`
- Merge two leads
- Merge two leads Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`
- Lead
- Move accounts between workspaces
- Move accounts between workspaces. IMPORTANT: this endpoint should be called ONLY with an ADMIN workspace API key (check the workspace group docs: https://developer.instantly.ai/workspace-group), and both the source and destination workspaces must have the same admin workspace.
- Account
- Move a lead to a subsequence
- Move a lead to a subsequence Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`
- Lead
- Move leads to a campaign or list
- Move leads to a different campaign or list. This endpoint will return a background job that will process the move. The job will be processed in the background and the leads will be moved to the destination campaign or list. You can use the `/background-jobs/:id` endpoint to check the job status. Note: When using the `ids` parameter, you must also provide either `campaign` or `list_id` to specify which campaign or list to filter the leads from. Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`
- Lead
- Patch account
- Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`
- Account
- Patch block list entry
- Requires one of the following scopes: `block_list_entries:update`, `block_list_entries:all`, `all:update`, `all:all`
- BlockListEntry
- Patch campaign
- Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`
- Campaign
- Patch campaign subsequence
- Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`
- CampaignSubsequence
- Patch custom tag
- Requires one of the following scopes: `custom_tags:update`, `custom_tags:all`, `all:update`, `all:all`
- CustomTag
- Patch email
- Requires one of the following scopes: `emails:update`, `emails:all`, `all:update`, `all:all`
- Patch inbox placement test
- Requires one of the following scopes: `inbox_placement_tests:update`, `inbox_placement_tests:all`, `all:update`, `all:all`
- InboxPlacementTest
- Patch lead
- Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`
- Lead
- Patch lead label
- Requires one of the following scopes: `lead-labels:update`, `lead-labels:all`, `all:update`, `all:all`
- LeadLabel
- Patch lead list
- Requires one of the following scopes: `lead_lists:update`, `lead_lists:all`, `all:update`, `all:all`
- LeadList
- Patch webhook
- Requires one of the following scopes: `webhooks:update`, `webhooks:all`, `all:update`, `all:all`
- Webhook
- Patch workspace
- Update your current workspace details. Note that this endpoint doesn't require any parameters. It will update the workspace based on the API key sent in the headers. Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`
- Workspace
- Patch workspace member
- Requires one of the following scopes: `workspace_members:update`, `workspace_members:all`, `all:update`, `all:all`
- WorkspaceMember
- Pause an account
- Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`
- Account
- Stop(or pause) a campaign
- Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`
- Campaign
- Pause a subsequence
- Pause a subsequence Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`
- CampaignSubsequence
- Get pre-warmed up domains
- This endpoint will return a list of pre-warmed up domains available for order.<br/>These domains are set up and configured in advance, allowing for quick deployment of email services.<br/>Use this endpoint to retrieve available pre-warmed up domains before placing an order.<br/><br/><b>IMPORTANT: if the endpoint returns a list of empty domains - it's not a bug, please don't retry right away or report this as a bug - it simply means that there are no available pre-warmed up domains at the moment.</b> Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`, `all:read`, `all:all`
- DFYEmailAccountOrder
- Preview leads from supersearch
- Preview the leads matching a SuperSearch query without enriching them Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`
- SuperSearchEnrichment
- Remove a lead from a subsequence
- Remove a lead from a subsequence Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`
- Lead
- Reply to an email
- Send a reply to an email. This endpoint can be used to send an email only as a reply to an existing email. In order to reply to an email, please specify the `reyply_to_uuid` field, and your email will be sent as a reply to that email. The `reyply_to_uuid` field represents the `id` field of an existing email, which is being returned to you in all the `/email` endpoints Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`
- Resume a paused account
- Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`
- Account
- Resume a paused subsequence
- Resume a paused subsequence Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`
- CampaignSubsequence
- Resume a webhook
- Resume a webhook that was disabled due to repeated delivery failures Requires one of the following scopes: `webhooks:update`, `webhooks:all`, `all:update`, `all:all`
- Webhook
- Run enrichment for resource
- Run all enrichments associated with a resource for a list of leads or for all the leads that haven't been enriched yet
- SuperSearchEnrichment
- Schedule Current Workspace Removal
- Schedule the current workspace to be removed in 24 hours. Requires one of the following scopes: `workspaces:delete`, `workspaces:all`, `all:delete`, `all:all`
- Workspace
- Search campaigns by lead email
- Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`
- Campaign
- Send a test email
- Send a preview/test email without creating an email entity in Unibox. Rate limit: 10 requests per minute per workspace. Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`
- Share a campaign
- Share a campaign. This allows other users to create new campaigns based on this campaign. The campaign is being shared for 7 days, after which you'll have to call this endpoint again if you want to enable sharing on the campaign
- Campaign
- Facet keywords for a signal category
- Return the top matching keyword tokens for a given signal category and keyword field, aggregated from the last 90 days of signal data. Powers the Signals filter autocomplete in the Lead Finder. Unknown (category, field) pairs return 400. Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`
- SuperSearchEnrichment
- Test account vitals
- Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`
- AccountAnalytics
- Test AI reply label prediction
- Returns the AI-predicted lead label for a reply text. This simulates how AI auto-tagging would label an incoming reply for testing custom labels and descriptions. Rate limit: 500 requests per 30 days per workspace. This rate limit applies only to this testing endpoint; live reply processing does not use this limiter. Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`
- LeadLabel
- Test a webhook
- Send a test payload to a webhook URL to verify it is working
- Webhook
- Assign or unassign tags to resources
- This can be used for both accounts and campaigns. Please check the `resource_type` field for more information.
- CustomTag
- Update enrichment settings for resource
- Update auto-update and skip settings for a SuperSearch enrichment tied to a specific resource Requires one of the following scopes: `supersearch_enrichments:create`, `supersearch_enrichments:all`, `all:create`, `all:all`
- SuperSearchEnrichment
- Update the interest status of a lead
- Update the interest status of a lead
- Lead
Instantly integration, answered
- How do AI agents use Instantly through Open Connector?
- Your user connects Instantly once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Instantly tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Instantly MCP server?
- Yes. Open Connector can serve Instantly as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Instantly actions with credentials injected server-side.
- Where do Instantly credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Instantly — keep the keys.
Open source, self-hostable, with Instantly credentials that never leave your infrastructure. Run it from source today.