Skip to main content
Every instantly.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Accounts

create

accounts.create Connect a sending account with its IMAP and SMTP login (Google and Microsoft OAuth connections are not covered by this plugin). The passwords are sent to Instantly and never logged Risk: write
Input
Output: object

delete

accounts.delete Remove a sending account from the workspace; it stops sending and warming up Risk: destructive · Irreversible
Input Output: object

disableWarmup

accounts.disableWarmup Turn warmup off for up to 100 sending accounts (runs as a background job; returns the job) Risk: write
Input Output: object

enableWarmup

accounts.enableWarmup Turn warmup on for up to 100 sending accounts (runs as a background job; returns the job) Risk: write
Input Output: object

get

accounts.get Get one sending account by email address Risk: read
Input Output

getDailyAnalytics

accounts.getDailyAnalytics Emails sent per day by each sending account. Pass emails or a short date range: on a large workspace Instantly answers 413 otherwise Risk: read
Input Output: object[]

getTrackingDomainStatus

accounts.getTrackingDomainStatus Check a custom tracking domain’s DNS setup Risk: read
Input Output

getWarmupAnalytics

accounts.getWarmupAnalytics Get warmup results for up to 100 sending accounts: daily sent, received and landed-in-inbox counts and a 0-100 health score Risk: read
Input Output

list

accounts.list List sending accounts (mailboxes) with status, warmup status, daily limit and warmup score; filter by status, provider, tag or search Risk: read
Input Output

listCampaigns

accounts.listCampaigns List the campaigns a sending account sends for Risk: read
Input Output

markFixed

accounts.markFixed Set a sending account back to active and clear its error message, after fixing its connection Risk: write
Input Output: object

moveToWorkspace

accounts.moveToWorkspace Move sending accounts to another workspace in the same workspace group. Needs the admin workspace’s API key Risk: write
Input Output: object

pause

accounts.pause Pause a sending account: it stops sending campaign emails until resumed Risk: write
Input Output: object

pauseMany

accounts.pauseMany Pause up to 100 sending accounts at once; returns which were paused and which failed Risk: write
Input Output: object

resume

accounts.resume Resume a paused sending account so it sends campaign emails again Risk: write
Input Output: object

testVitals

accounts.testVitals Check the health (“vitals”) of sending accounts’ domains; changes nothing Risk: read
Input Output

update

accounts.update Change a sending account’s name, daily limit, sending gap, signature, reply-to, tracking domain or warmup settings Risk: write
Input
Output: object

Api Keys

create

apiKeys.create Create an API key with the given scopes. The response holds the key itself, the only time it is returned in full Risk: write
Input Output: object

delete

apiKeys.delete Revoke an API key; anything using it stops working Risk: destructive · Irreversible
Input Output: object

list

apiKeys.list List the workspace’s API keys with their scopes (key values redacted) Risk: read
Input Output

Audit Logs

list

auditLogs.list List audit log records (who did what, when); filter by activity type, search or date Risk: read
Input Output

Background Jobs

get

backgroundJobs.get Get one background job, e.g. the one leads.move or accounts.enableWarmup returned Risk: read
Input Output

list

backgroundJobs.list List background jobs (lead moves, imports, warmup changes) with status and progress Risk: read
Input Output

Billing

getPlanDetails

billing.getPlanDetails Get the workspace’s plans and their limits Risk: read
Input: empty object Output

getSubscriptionDetails

billing.getSubscriptionDetails Get the workspace’s subscriptions and billing state Risk: read
Input: empty object Output

Blocklist

add

blocklist.add Block an email (jane@acme.com) or a whole domain (acme.com) from every campaign Risk: write
Input Output: object

addMany

blocklist.addMany Block many emails and domains at once Risk: write
Input Output: object

deleteAll

blocklist.deleteAll Delete EVERY blocklist entry (or every domain entry, or every entry matching search). Campaigns can then email those addresses again Risk: destructive · Irreversible
Input Output: object

downloadCsv

blocklist.downloadCsv Download the blocklist as CSV text Risk: read
Input Output: string

get

blocklist.get Get one blocklist entry by ID Risk: read
Input Output

list

blocklist.list List blocked emails and domains Risk: read
Input Output

remove

blocklist.remove Remove a blocklist entry, so campaigns can email that address or domain again Risk: destructive
Input Output: object

removeMany

blocklist.removeMany Remove blocklist entries by ID, so campaigns can email those addresses again Risk: destructive
Input Output: object

update

blocklist.update Change the email or domain a blocklist entry blocks Risk: write
Input Output: object

Campaigns

activate

campaigns.activate Start or resume a campaign. This SENDS REAL EMAIL to the campaign’s leads from the connected accounts, on its schedule Risk: write
Input Output: object

addVariables

campaigns.addVariables Add custom variable names to a campaign, for use as {{variable}} in its copy Risk: write
Input Output: object

countLaunched

campaigns.countLaunched Count the campaigns ever launched in the workspace Risk: read
Input: empty object Output

create

campaigns.create Create a campaign as a draft: schedule, one sequence of email steps with A/B variants, sending accounts, daily limit and stop rules (stop_on_reply, stop_for_company). Sends nothing until campaigns.activate Risk: write
Input
Output: object

createFromShared

campaigns.createFromShared Create a campaign in this workspace from one shared with campaigns.share Risk: write
Input Output: object

delete

campaigns.delete Delete a campaign permanently Risk: destructive · Irreversible
Input Output: object

duplicate

campaigns.duplicate Copy a campaign into a new one, optionally with a new name Risk: write
Input Output: object

export

campaigns.export Export a campaign’s settings and sequence as JSON; changes nothing Risk: read
Input Output

get

campaigns.get Get one campaign with its schedule, sequence steps and settings Risk: read
Input Output

getAnalytics

campaigns.getAnalytics Per-campaign totals: leads, contacted, sent, opens, replies, clicks, bounces, unsubscribes, completed and opportunities, for all campaigns or chosen ones, optionally in a date range Risk: read
Input Output: object[]

getAnalyticsOverview

campaigns.getAnalyticsOverview Combined totals across one, several or all campaigns: sent, opens, replies, clicks, bounces, interested, meetings booked and closed Risk: read
Input Output

getDailyAnalytics

campaigns.getDailyAnalytics Per-day sent, opens, replies and clicks for one campaign or all, optionally in a date range Risk: read
Input Output: object[]

getSendingStatus

campaigns.getSendingStatus Explain why a campaign is not sending, or sending slower than expected Risk: read
Input Output

getStepAnalytics

campaigns.getStepAnalytics Sent, opens, replies and clicks per sequence step and A/B variant, for one campaign or all Risk: read
Input Output: object[]

list

campaigns.list List campaigns with status, schedule, sending accounts and daily limit; filter by name, status or tag Risk: read
Input Output

pause

campaigns.pause Pause a campaign: it stops sending until activated again Risk: write
Input Output: object

searchByLead

campaigns.searchByLead Find the campaigns a lead is in, by their email address Risk: read
Input Output

share

campaigns.share Share a campaign for 7 days so other Instantly users can copy it with campaigns.createFromShared Risk: write
Input Output: object

update

campaigns.update Change a campaign’s name, schedule, sequence steps, sending accounts, daily limit or stop rules; only the fields passed change Risk: write
Input
Output: object

Crm Actions

deletePhoneNumber

crmActions.deletePhoneNumber Release a phone number from the workspace and its provider Risk: destructive · Irreversible
Input Output: object

listPhoneNumbers

crmActions.listPhoneNumbers List the workspace’s phone numbers Risk: read
Input: empty object Output: object[]

Custom Prompt Templates

create

customPromptTemplates.create Create a custom AI prompt template; {{property}} placeholders take lead fields Risk: write
Input Output: object

delete

customPromptTemplates.delete Delete a custom AI prompt template Risk: destructive · Irreversible
Input Output: object

get

customPromptTemplates.get Get one custom AI prompt template Risk: read
Input Output

list

customPromptTemplates.list List custom AI prompt templates, including public ones Risk: read
Input Output

update

customPromptTemplates.update Change a custom AI prompt template Risk: write
Input Output: object

Custom Tag Mappings

list

customTagMappings.list List which tags are assigned to which accounts and campaigns Risk: read
Input Output

Custom Tags

create

customTags.create Create a tag for organizing sending accounts and campaigns Risk: write
Input Output: object

delete

customTags.delete Delete a tag; the accounts and campaigns that had it lose it Risk: destructive · Irreversible
Input Output: object

get

customTags.get Get one tag by ID Risk: read
Input Output

list

customTags.list List the workspace’s tags Risk: read
Input Output

toggleResource

customTags.toggleResource Assign tags to, or remove them from, sending accounts or campaigns (by IDs or all matching a filter) Risk: write
Input
Output: object

update

customTags.update Rename a tag or change its description Risk: write
Input Output: object

Domain Forwarding

get

domainForwarding.get Get the web forwarding set on a domain ordered through Instantly Risk: read
Input Output

remove

domainForwarding.remove Remove a domain’s web forwarding. Limited to 10 requests a minute Risk: destructive
Input Output: object

set

domainForwarding.set Forward web visits to a domain ordered through Instantly to another domain Risk: write
Input Output: object

Emails

countUnread

emails.countUnread Count unread emails in the Unibox Risk: read
Input: empty object Output

delete

emails.delete Delete an email from the Unibox Risk: destructive · Irreversible
Input Output: object

forward

emails.forward Forward an email from the Unibox to other recipients. This SENDS REAL EMAIL from the chosen sending account, and is never retried automatically Risk: write
Input
Output: object

get

emails.get Get one email with its full body and thread_id Risk: read
Input Output

list

emails.list List Unibox emails; email_type received lists replies from leads, the way to read replies on plans without webhooks. Filter by lead, campaign, sending account, unread or date. Limited to 20 requests a minute Risk: read
Input Output

markThreadRead

emails.markThreadRead Mark every email in a thread as read Risk: write
Input Output: object

reply

emails.reply Reply to an email in its thread. This SENDS A REAL EMAIL from the chosen sending account to the lead, and is never retried automatically Risk: write · Irreversible
Input
Output: object

sendTest

emails.sendTest Send a test email from a sending account. This SENDS REAL EMAIL to the given addresses (it does not appear in the Unibox). Limited to 10 a minute Risk: write
Input
Output: object

update

emails.update Mark an email read or unread, or set a Unibox reminder on it Risk: write
Input Output: object

Email Templates

create

emailTemplates.create Save an email template (name and body) Risk: write
Input Output: object

delete

emailTemplates.delete Delete a saved email template Risk: destructive · Irreversible
Input Output: object

list

emailTemplates.list List saved email templates Risk: read
Input Output

Email Verification

getStatus

emailVerification.getStatus Get the result of an email verification started with emailVerification.verify Risk: read
Input Output

verify

emailVerification.verify Verify one email address. SPENDS Instantly email-verification credits (the response reports credits and credits_used) and is never retried automatically. A slow check answers pending; read the result with emailVerification.getStatus Risk: write
Input Output: object

Engage Items

deleteMany

engageItems.deleteMany Delete up to 100 AI agents or automations from Engage at once Risk: destructive · Irreversible
Input
Output: object

list

engageItems.list List Engage items: campaigns, AI agents, automations, broadcasts and journeys in one list Risk: read
Input Output

Inbox Placement Analytics

get

inboxPlacementAnalytics.get Get one inbox placement result Risk: read
Input Output

getDeliverabilityInsights

inboxPlacementAnalytics.getDeliverabilityInsights Deliverability insights for one inbox placement test, optionally against an earlier period; changes nothing Risk: read
Input Output: object[]

getStatsByDate

inboxPlacementAnalytics.getStatsByDate Inbox, spam and category counts per day for a scheduled inbox placement test; changes nothing Risk: read
Input Output: object[]

getStatsByTest

inboxPlacementAnalytics.getStatsByTest Inbox, spam and category counts for inbox placement tests; changes nothing Risk: read
Input Output: object[]

list

inboxPlacementAnalytics.list Where each inbox placement test email landed, per recipient; filter by test, date, provider or sender Risk: read
Input Output

Inbox Placement Reports

get

inboxPlacementReports.get Get one blacklist and SpamAssassin report Risk: read
Input Output

list

inboxPlacementReports.list List blacklist and SpamAssassin reports for inbox placement tests Risk: read
Input Output

Inbox Placement Tests

create

inboxPlacementTests.create Create an inbox placement test: a test email sent to seed inboxes to see where it lands (inbox, spam or a category tab). With sending_method 1, Instantly SENDS REAL EMAIL from the given accounts; with 2, you send it from outside Instantly Risk: write
Input
Output: object

delete

inboxPlacementTests.delete Delete an inbox placement test Risk: destructive · Irreversible
Input Output: object

get

inboxPlacementTests.get Get one inbox placement test Risk: read
Input Output

list

inboxPlacementTests.list List inbox placement tests Risk: read
Input Output

listEspOptions

inboxPlacementTests.listEspOptions List the email providers an inbox placement test can send to (for recipients_labels) Risk: read
Input: empty object Output: object[]

update

inboxPlacementTests.update Rename an inbox placement test, change its schedule or automations, or pause or resume it Risk: write
Input
Output: object

Lead Labels

create

leadLabels.create Create a custom lead label (a status such as “Demo requested”) marked positive, negative or neutral Risk: write
Input Output: object

delete

leadLabels.delete Delete a custom lead label; its leads move to reassigned_status Risk: destructive · Irreversible
Input Output: object

get

leadLabels.get Get one custom lead label by ID Risk: read
Input Output

list

leadLabels.list List the workspace’s custom lead labels Risk: read
Input Output

testAiReplyLabel

leadLabels.testAiReplyLabel Ask which label Instantly’s AI would give a reply text, to test custom labels. Changes nothing, but the workspace gets 500 of these tests per 30 days Risk: read
Input Output

update

leadLabels.update Rename a custom lead label or change its description, sentiment or AI use Risk: write
Input Output: object

Lead Lists

create

leadLists.create Create a lead list to hold leads outside any campaign (add to it with leads.addBulk list_id) Risk: write
Input Output: object

delete

leadLists.delete Delete a lead list permanently Risk: destructive · Irreversible
Input Output: object

get

leadLists.get Get one lead list by ID: name, owner and enrichment setting Risk: read
Input Output

getVerificationStats

leadLists.getVerificationStats Counts of a lead list’s leads by email verification result Risk: read
Input Output

list

leadLists.list List lead lists (leads stored outside any campaign) Risk: read
Input Output

update

leadLists.update Rename a lead list, change its owner or turn enrichment of new leads on or off Risk: write
Input Output: object

Leads

addBulk

leads.addBulk Add up to 1,000 leads to one campaign or list, with custom variables. Skips leads already in the workspace unless skip_if_in_workspace is false, and is never retried automatically. Every lead uploaded counts toward the plan’s lifetime contact limit, including re-uploads and the same person in a second campaign; re-adding or moving a lead who already replied restarts their sequence at step 1 Risk: write · Irreversible
Input
Output: object

assign

leads.assign Assign leads (by IDs or filters) to workspace users. Runs in the background Risk: write
Input
Output: object

create

leads.create Add one lead to a campaign or list. Skips leads already in the workspace unless skip_if_in_workspace is false. Every lead uploaded counts toward the plan’s lifetime contact limit, including re-uploads and the same person in a second campaign; re-adding or moving a lead who already replied restarts their sequence at step 1 Risk: write · Irreversible
Input
Output: object

delete

leads.delete Delete a lead from the workspace. Its upload still counts toward the lifetime contact limit Risk: destructive · Irreversible
Input Output: object

deleteMany

leads.deleteMany Delete leads from one campaign or list, optionally only some IDs or a status. Their uploads still count toward the lifetime contact limit Risk: destructive · Irreversible
Input Output: object

get

leads.get Get one lead with status, interest status, open/reply/click counts and custom variables Risk: read
Input Output

list

leads.list List leads in a campaign or list, or across the workspace; filter by email, status (replied, interested, bounced and more) or search Risk: read
Input Output

merge

leads.merge Merge one lead into another (destination_lead_id); the first lead is removed Risk: destructive · Irreversible
Input Output: object

move

leads.move Move or copy leads (by IDs or filters) to another campaign or list, as a background job; returns the job. Moving a lead who already replied restarts their sequence at step 1 Risk: write
Input
Output: object

moveToSubsequence

leads.moveToSubsequence Put a lead into a subsequence. This SENDS REAL EMAIL: the subsequence starts emailing the lead Risk: write
Input Output: object

removeFromSubsequence

leads.removeFromSubsequence Take a lead out of the subsequence it is in; it stops getting that subsequence’s emails Risk: destructive
Input Output: object

update

leads.update Update a lead’s name, company, job title, phone, website, personalization or custom variables. Its status is read-only: to stop follow-ups use leads.updateInterestStatus Risk: write
Input
Output: object

updateInterestStatus

leads.updateInterestStatus Set a lead’s interest status by email (Interested, Meeting booked, Not interested, Wrong person and so on, or null to reset). In a campaign this completes the lead, which stops its follow-ups: use it when a lead answered on another channel. Applied in the background Risk: write
Input Output: object

Subsequences

create

subsequences.create Create a subsequence: follow-up emails for a campaign’s leads who meet its conditions (a reply, a lead status, an email opened…). While the campaign runs, matching leads get its emails Risk: write
Input
Output: object

delete

subsequences.delete Delete a subsequence; its leads stop getting its emails Risk: destructive · Irreversible
Input Output: object

duplicate

subsequences.duplicate Copy a subsequence, with the same trigger conditions, into a campaign Risk: write
Input Output: object

get

subsequences.get Get one subsequence with its conditions, schedule and steps Risk: read
Input Output

getAnalytics

subsequences.getAnalytics Emails sent, unique opens and unique replies for each of a campaign’s subsequences Risk: read
Input Output: object[]

getSendingStatus

subsequences.getSendingStatus Explain why a subsequence is not sending, or sending slower than expected Risk: read
Input Output

getStepAnalytics

subsequences.getStepAnalytics Sent, opens, replies and clicks per step and A/B variant of one subsequence Risk: read
Input Output: object[]

list

subsequences.list List subsequences, by parent campaign or name Risk: read
Input Output

pause

subsequences.pause Pause a subsequence: it stops sending until resumed Risk: write
Input Output: object

resume

subsequences.resume Resume a paused subsequence. This SENDS REAL EMAIL to the leads that meet its conditions Risk: write
Input Output: object

update

subsequences.update Change a subsequence’s name, conditions, schedule, steps or daily limit Risk: write
Input
Output: object

Webhook Events

get

webhookEvents.get Get one webhook delivery with its payload and response Risk: read
Input Output

getSummary

webhookEvents.getSummary Totals and success rate of webhook deliveries, optionally in a date range Risk: read
Input Output

getSummaryByDate

webhookEvents.getSummaryByDate Webhook delivery totals and success rate per day Risk: read
Input Output

list

webhookEvents.list List webhook deliveries with their payload, status code and retries; filter by success, date or search Risk: read
Input Output

Webhooks

create

webhooks.create Subscribe a URL to an event (reply_received, email_bounced, lead_interested…) or all_events, for one campaign or all. Attaches the plugin’s webhook secret so Corsair can verify deliveries. Webhooks need Instantly’s Hypergrowth plan or higher Risk: write
Input
Output: object

delete

webhooks.delete Delete a webhook subscription; Instantly stops sending its events Risk: destructive
Input Output: object

get

webhooks.get Get one webhook subscription (header values redacted) Risk: read
Input Output

list

webhooks.list List webhook subscriptions with their URL, event type, campaign and status (header values redacted) Risk: read
Input Output

listEventTypes

webhooks.listEventTypes List the event types a webhook can subscribe to, including the workspace’s custom labels Risk: read
Input: empty object Output

resume

webhooks.resume Turn a webhook back on after Instantly disabled it for failed deliveries Risk: write
Input Output: object

test

webhooks.test Send a test payload to the webhook’s URL Risk: write
Input Output: object

update

webhooks.update Change a webhook’s URL, event type, campaign or headers. Passing headers replaces them all, including the x-corsair-webhook-secret Corsair verifies deliveries with Risk: write
Input
Output: object

Workspace

cancelRemoval

workspace.cancelRemoval Cancel a scheduled workspace deletion Risk: write
Input: empty object Output: object

changeOwner

workspace.changeOwner Make another user the owner of the workspace. The current owner loses ownership, so this cannot be undone from this API key Risk: destructive · Irreversible
Input Output: object

deleteWhitelabelDomain

workspace.deleteWhitelabelDomain Remove the agency (white-label) domain Risk: destructive
Input: empty object Output: object

get

workspace.get Get the workspace this API key belongs to: ID, name and plan Risk: read
Input: empty object Output

getWhitelabelDomain

workspace.getWhitelabelDomain Get the agency (white-label) domain and its verification state Risk: read
Input: empty object Output

scheduleRemoval

workspace.scheduleRemoval Schedule the WHOLE WORKSPACE for deletion in 24 hours. workspace.cancelRemoval stops it before then Risk: destructive
Input: empty object Output: object

setWhitelabelDomain

workspace.setWhitelabelDomain Set the agency (white-label) domain clients see Risk: write
Input Output: object

update

workspace.update Rename the workspace or change its logo Risk: write
Input Output: object

Workspace Group Members

create

workspaceGroupMembers.create Invite another workspace into this admin workspace’s group; it joins once its owner accepts Risk: write
Input Output: object

delete

workspaceGroupMembers.delete Remove a workspace from this admin workspace’s group Risk: destructive
Input Output: object

get

workspaceGroupMembers.get Get one workspace group member Risk: read
Input Output

getAdmin

workspaceGroupMembers.getAdmin Get the admin workspace this workspace belongs to Risk: read
Input: empty object Output

list

workspaceGroupMembers.list List the workspaces in this admin workspace’s group Risk: read
Input Output

Workspace Members

create

workspaceMembers.create Add a user to the workspace by email, with a role Risk: write
Input Output: object

delete

workspaceMembers.delete Remove a member from the workspace Risk: destructive
Input Output: object

get

workspaceMembers.get Get one workspace member by ID Risk: read
Input Output

list

workspaceMembers.list List the workspace’s members Risk: read
Input Output

update

workspaceMembers.update Change a member’s nickname or role Risk: write
Input Output: object