Pipory
Node reference

Instantly

Instantly node reference - all 106 operations, the credential it needs, and a worked example.

Instantly API v2 (Email Marketing). 106 operations: leads (create, search, update, bulk add, move, merge, interest status, subsequences); campaigns (create, activate, pause, duplicate, share, export) and campaign analytics; subsequences; lead lists, lead labels and custom tags; unibox emails (search, reply, forward, mark read); sending accounts (pause, resume, warmup, vitals, analytics); block list; email verification; webhooks and delivered webhook events; background jobs.

Credential: Instantly API key - see Credentials.

Scopes

Each operation below lists the scope it needs. Scopes are ticked on the API v2 key when you create it in Instantly, under Settings → Integrations → API. Instantly keys are workspace-level and genuinely scoped: the create-key call takes a scopes array of <resource>:<action> strings, and every value below also accepts its family wildcard (leads:all) and the globals (all:read / all:all). Three things catch people out. The resource names are not internally consistent — block_list_entries rather than block_lists, lead-labels with a hyphen while its neighbours use underscores, email_verifications plural, background-jobs hyphenated — so they are reproduced here exactly as Instantly's own enum spells them. A refusal arrives as 401, not 403: Instantly returns 403 on exactly one endpoint in its whole API, so an under-scoped key looks identical to a revoked one, and an API v1 key (deprecated 2026-01-19) looks the same again. And roughly a dozen operations — the analytics reads, the warmup toggles, tag assignment, interest-status writes, three of the webhook reads — have doc pages that publish NO scope at all; those rows say so plainly rather than guessing, and name the family scope to widen to. If a run fails with a permission error, the node names the missing scope in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (106)

Leads

OperationWhat it doesScope
addLeadAdd lead to campaignleads:create
listLeadsList / search leadsleads:read
getLeadGet leadleads:read
updateLeadUpdate leadleads:update
deleteLeadDelete leadleads:delete
addLeadsBulkAdd leads in bulkleads:create
deleteLeadsBulkDelete leads in bulkleads:delete
assignLeadsBulkAssign leads to users in bulk(no scope documented by Instantly for this endpoint; leads:update is the family scope to widen to, and all:all always works)
moveLeadsMove leads to a campaign or listleads:update
mergeLeadsMerge two leadsleads:update
updateLeadInterestStatusUpdate lead interest status(no scope documented by Instantly for this endpoint; leads:update is the family scope to widen to, and all:all always works)
moveLeadToSubsequenceMove lead to a subsequenceleads:update
removeLeadFromSubsequenceRemove lead from a subsequenceleads:update

Campaigns

OperationWhat it doesScope
listCampaignsList campaignscampaigns:read
createCampaignCreate campaigncampaigns:create
getCampaignGet campaigncampaigns:read
updateCampaignUpdate campaigncampaigns:update
deleteCampaignDelete campaigncampaigns:delete
activateCampaignActivate / resume campaigncampaigns:update
pauseCampaignPause campaigncampaigns:update
duplicateCampaignDuplicate campaigncampaigns:create
shareCampaignShare campaign(no scope documented by Instantly for this endpoint; campaigns:update is the family scope to widen to, and all:all always works)
addCampaignVariablesAdd campaign variablescampaigns:update
getCampaignSendingStatusGet campaign sending statuscampaigns:read
exportCampaignExport campaign to JSONcampaigns:read
createCampaignFromExportCreate campaign from a shared onecampaigns:create
searchCampaignsByLeadFind campaigns a lead is incampaigns:read
countLaunchedCampaignsCount launched campaignscampaigns:read

Campaign analytics

OperationWhat it doesScope
getCampaignAnalyticsCampaign analytics(no scope documented by Instantly for this endpoint; campaigns:read is the family scope to widen to, and all:read always works)
getCampaignAnalyticsOverviewCampaign analytics overview(no scope documented by Instantly for this endpoint; campaigns:read is the family scope to widen to, and all:read always works)
getCampaignDailyAnalyticsCampaign analytics by day(no scope documented by Instantly for this endpoint; campaigns:read is the family scope to widen to, and all:read always works)
getCampaignStepsAnalyticsCampaign analytics by sequence step(no scope documented by Instantly for this endpoint; campaigns:read is the family scope to widen to, and all:read always works)

Subsequences

OperationWhat it doesScope
createSubsequenceCreate subsequencesubsequences:create
listSubsequencesList subsequencessubsequences:read
getSubsequenceGet subsequencesubsequences:read
updateSubsequenceUpdate subsequencesubsequences:update
deleteSubsequenceDelete subsequencesubsequences:delete
duplicateSubsequenceDuplicate subsequencesubsequences:create
pauseSubsequencePause subsequencesubsequences:update
resumeSubsequenceResume subsequencesubsequences:update
getSubsequenceSendingStatusGet subsequence sending statussubsequences:read

Lead lists

OperationWhat it doesScope
createLeadListCreate lead listlead_lists:create
listLeadListsList lead listslead_lists:read
getLeadListGet lead listlead_lists:read
updateLeadListUpdate lead listlead_lists:update
deleteLeadListDelete lead listlead_lists:delete
getLeadListVerificationStatsGet lead list verification stats(no scope documented by Instantly for this endpoint; lead_lists:read is the family scope to widen to, and all:read always works)

Lead labels

OperationWhat it doesScope
createLeadLabelCreate lead labellead-labels:create
listLeadLabelsList lead labelslead-labels:read
getLeadLabelGet lead labellead-labels:read
updateLeadLabelUpdate lead labellead-labels:update
deleteLeadLabelDelete lead labellead-labels:delete
testAiReplyLabelTest AI reply-label predictionlead-labels:read

Custom tags

OperationWhat it doesScope
createCustomTagCreate tagcustom_tags:create
listCustomTagsList tagscustom_tags:read
getCustomTagGet tagcustom_tags:read
updateCustomTagUpdate tagcustom_tags:update
deleteCustomTagDelete tagcustom_tags:delete
toggleCustomTagResourceAssign / unassign tags to resources(no scope documented by Instantly for this endpoint; custom_tags:update is the family scope to widen to, and all:all always works)
listCustomTagMappingsList tag assignmentscustom_tag_mappings:read

Unibox emails

OperationWhat it doesScope
listEmailsList / search emailsemails:read
getEmailGet emailemails:read
updateEmailUpdate email (read flag, reminder)emails:update
deleteEmailDelete emailemails:delete
replyToEmailReply to emailemails:create
forwardEmailForward emailemails:create
sendTestEmailSend test emailemails:create
markThreadAsReadMark thread as reademails:update
getUnreadCountCount unread emailsemails:read

Sending accounts

OperationWhat it doesScope
listAccountsList sending accountsaccounts:read
getAccountGet sending accountaccounts:read
updateAccountUpdate sending accountaccounts:update
pauseAccountPause sending accountaccounts:update
resumeAccountResume sending accountaccounts:update
pauseAccountsPause several sending accountsaccounts:update
markAccountFixedMark account as fixedaccounts:update
enableAccountWarmupEnable warmup(no scope documented by Instantly for this endpoint; accounts:update is the family scope to widen to, and all:all always works)
disableAccountWarmupDisable warmup(no scope documented by Instantly for this endpoint; accounts:update is the family scope to widen to, and all:all always works)
testAccountVitalsTest account vitalsaccounts:read
getAccountWarmupAnalyticsWarmup analyticsaccounts:read
getAccountDailyAnalyticsAccount analytics by day(no scope documented by Instantly for this endpoint; accounts:read is the family scope to widen to, and all:read always works)
getCustomTrackingDomainStatusCustom tracking domain statusaccounts:read
listAccountCampaignsList campaigns a mailbox sends foraccount_campaign_mappings:read

Block list

OperationWhat it doesScope
createBlockListEntryAdd to block listblock_list_entries:create
listBlockListEntriesList block listblock_list_entries:read
getBlockListEntryGet block list entryblock_list_entries:read
updateBlockListEntryUpdate block list entryblock_list_entries:update
deleteBlockListEntryDelete block list entryblock_list_entries:delete
bulkCreateBlockListEntriesAdd to block list in bulkblock_list_entries:create
bulkDeleteBlockListEntriesDelete block list entries in bulkblock_list_entries:delete

Email verification

OperationWhat it doesScope
verifyEmailVerify an email addressemail_verifications:create
getEmailVerificationCheck verification statusemail_verifications:read

Webhooks

OperationWhat it doesScope
createWebhookCreate webhookwebhooks:create
listWebhooksList webhooks(no scope documented by Instantly for this endpoint; webhooks:read is the family scope to widen to, and all:read always works)
getWebhookGet webhookwebhooks:read
updateWebhookUpdate webhookwebhooks:update
deleteWebhookDelete webhookwebhooks:delete
testWebhookTest webhook(no scope documented by Instantly for this endpoint; webhooks:update is the family scope to widen to, and all:all always works)
resumeWebhookResume webhookwebhooks:update
listWebhookEventTypesList webhook event types(no scope documented by Instantly for this endpoint; webhooks:read is the family scope to widen to, and all:read always works)

Webhook events

OperationWhat it doesScope
listWebhookEventsList delivered webhook eventswebhook_events:read
getWebhookEventGet webhook eventwebhook_events:read
getWebhookEventsSummaryWebhook event summary(no scope documented by Instantly for this endpoint; webhook_events:read is the family scope to widen to, and all:read always works)
getWebhookEventsSummaryByDateWebhook event summary by day(no scope documented by Instantly for this endpoint; webhook_events:read is the family scope to widen to, and all:read always works)

Background jobs

OperationWhat it doesScope
listBackgroundJobsList background jobsbackground-jobs:read
getBackgroundJobGet background jobbackground-jobs:read

Example

Mark a lead interested so the campaign stops emailing them

This is the operation a 2-operation node could not reach, and it is the whole point of connecting Instantly to anything: when a reply comes in and a human decides it is a real lead, the campaign must stop sending. Note the endpoint is a POST to a fixed path with the email in the body — not a PATCH on the lead — which is one of the roughly 35 paths an earlier inventory had wrong.

Set Operation to updateLeadInterestStatus, then fill in:

FieldValueNotes
email{{ myTrigger.email }}Instantly identifies the lead by email on this endpoint, not by id
interestStatus1Instantly's interest scale; 1 is Interested
campaignId{{ vars.instantlyCampaignId }}Which campaign's copy of the lead to update

Sets {{lead.status}}. A 401 here is ambiguous by design on Instantly's side — an under-scoped key, a wrong key, a revoked key and a v1 key all answer 401 — so the node names the scope the operation needs in the error.