How to automate multichannel outreach via APIs

This guide explains how to set up campaign sequences and control the full outreach workflow via the Snov.io API.

The Campaigns API is one of several API categories available to automate your work in Snov.io.

Use it to build and run multichannel outreach campaigns directly from your code, without manually setting everything up in your Snov.io account.

note

What you can do with the Campaigns API:

1) Run campaigns automatically. Create, edit, and launch campaigns through API requests.

2) Get real-time webhooks. Track replies, accepted connection requests, InMail responses, autoreplies, and other prospect actions as they happen.

3) Sync activity data to your tools. Send campaign and recipient activity data straight to your CRM, dashboards, or analytics platforms.

Before you start using the Campaigns API

Configure necessary settings before creating a campaign via the API. Complete most setup tasks via API methods, and adjust the remaining settings directly in your Snov.io account.

Prepare basic account setup

Prepare your prospect list

Build your prospect list through the API: source prospects, verify email addresses, and organize contacts into a recipient list. Assign a recipient_list_id during campaign creation. Continue adding new leads to the same list via the API after the campaign launches to automatically enroll them in the sequence.

Find new prospects

If you need to source leads, use the Email Finder API to find prospects and company contacts.

Verify existing emails

Verify email addresses from your CRM, event registrations, or third-party databases before outreach using the Email Verifier API. Reduce bounce rates and improve deliverability.

Organize prospects into a list

Create a list for your prospects and add them using the prospect list API methods. Use the list_id when creating campaigns.

Campaigns API methods

Here are the API methods broken down by workflow stage:

learn
The Campaigns API workflow is best used in this order: prepare sender accounts and recipient lists, create a campaign, add sequence content, launch outreach, then monitor performance through webhooks and analytics APIs.

Check sending setup

These methods help retrieve your existing sending configuration that has already been added to your account. You'll need the IDs for each of the below settings when using the API method to create a campaign.

Get your sender email accounts

Get the sender account ID and confirm daily limits before assigning the account to a campaign.

Returns all connected email accounts with their sender names, email addresses, daily limits, and provider info.

Check sender account SMTP/IMAP status

Verify the account connection is active and has no errors before using it in a campaign.

Required input:

email — the email address of the sender account to check

Get your do-not-contact lists

Retrieve the do-not-contact lists created in your account.

Get the do-not-contact list ID you'll be assigning to a campaign to automatically exclude specific contacts from receiving the sequence

Get your campaign schedules

Get the schedule ID you'll be using for a campaign.

Returns all schedules created in your account, including timezone, active days, and sending windows.

Manage sender email accounts

These methods let you connect, configure, and warm up email accounts.

Add a new email account

Connects an email account using SMTP and IMAP settings, so you can assign it as a sender in your campaigns.

Required input:

The account's SMTP credentials and server settings.

sender_name, email_from, password, smtp.host, smtp.port, smtp.encryption

Optional input

  • IMAP settings: Track replies to emails sent from this sender account
  • The interval between emails: If not specified, the account will use the default delay of 600 seconds between emails
  • Daily sending limit: If not specified, the account will use the default SMTP limit - 50 emails/per day
tip
Note: Gmail sign-in and Microsoft OAuth connections can only be set up in the app, under Email Accounts — they're not available via this API method.

Update an email account

Updates the settings of an existing sender account — for example, daily sending limits or display name — without reconnecting it. Only the fields you include in the request will be updated; everything else stays as is.

Required input:

account_id — the ID of the sender account to update

Start warm-up

Warm up accounts to improve sender reputation before outreach. This method starts a new warm-up campaign for a specified email account.

Required input:

sender_account_id — ID of the email account to warm up

per_day — Daily sending goal, the number of emails sent daily in warm-up. For the initial warm-up, we recommend setting this limit to 40 emails per day. Depending on your plan, this limit can be up to 1000 emails

strategy — Choose the warm-up strategy: progressive to ramp up daily sending volume for new or inactive accounts (from 2 to 40 emails recommended), or steady to maintain sender reputation with a fixed daily volume

email_content — You can warm up your own email template to improve its deliverability, or use AI-generated content

Create & manage campaigns

These methods let you set up campaigns with their full configuration: sequence steps (email + LinkedIn), schedule, tracking, sender accounts, recipient list, and sending settings.

Create a new campaign

Create a campaign and get the campaign ID you'll use in all subsequent API calls.

Creates a new campaign draft with the core settings required for launch.

Required input:

Campaign name, sending schedule, and at least one sender account.

name, schedule_id, sender_account_ids

tip
Adding duplicate prospects won't create a duplicate recipient in the same campaign. To avoid duplicates across your whole account, use the sending_settings.skip_recipients parameter in the Create campaign method.

Get campaign info

Check a campaign's current settings and status before making updates or launching.

Retrieves full details about a specific campaign — status, sender accounts, sending settings, recipients, and sequence steps.

Required input:

campaign_id — the campaign ID in the request URL

Update a campaign

Update campaign settings before launch or while the campaign is paused. Only the settings you include in the request body will be changed.

Required input:

campaign_id — the campaign ID in the request URL, plus any fields you want to update

Change campaign statuses

Control the campaign lifecycle — start outreach, pause it, or close the campaign when done. This method updates the campaign to a new status: active, paused, resumed, complete, or archived.

Required input:

campaign_id — the campaign ID in the request URL; action — the target status to switch to

Supported statuses: Launch, Pause, Resume, Complete, Archive

Delete campaign

Permanently removes the campaign from your account.

Required input:

campaign_id — the campaign ID in the request URL

tip
Only campaigns with the status New (draft), Completed, or Archived can be deleted.

Add & update email content

These methods let you manage the content (subject line and body) for each email step in a campaign sequence.

Create email step content

Add the subject line and email body.

Adds a content block to the specified email step in the sequence.

Required input:

campaign_id, step_id — campaign ID and step ID in the URL

subject, body — the email subject line and body content

Get email step content

Review current email content before making updates.

Returns a specific content block for an email step.

Required input:

campaign_id, step_id, content_id — campaign ID, step ID, and content block ID in the URL

Update email step content

Edit the subject line or body of an email step without replacing the entire content block

Required input:

campaign_id, step_id, content_id — campaign ID, step ID, and content block ID in the URL; plus any content fields to update

Delete email step content

Removes a content block from an email step.

Required input:

campaign_id, step_id, content_id — campaign ID, step ID, and content block ID in the URL

Manage recipients

These methods let you control your prospects' status within a campaign.

Change a recipient's status

Manually stop or adjust outreach to a specific prospect — for example, if they replied through a different channel or need to be excluded mid-sequence. This method updates the status of a specific recipient in a campaign.

Required input:

campaign_id — the campaign ID in the URL; email, status — the prospect's email and the new status to apply

Check recipient status

Verify a recipient's current outreach status before making status changes or adding them to a campaign. This method checks whether the specified email addresses are included as recipients in a particular campaign.

Required input:

campaign_id, recipient_id — the campaign ID and recipient ID in the URL

Next steps in API

These guides cover the remaining steps in the campaign workflow — setting up real-time event notifications and pulling performance data.

Set up webhooks

Subscribe to campaign events and receive real-time notifications at your endpoint URL. For the full list of supported events, methods, and payload details, see the Webhooks guide.

Get campaign analytics and reports

Retrieve engagement data for individual recipients and aggregated campaign performance metrics. For the full list of reporting methods, parameters, and response examples, see the Campaign analytics API guide.

Thanks for your feedback!

Was this helpful?

No

Sorry about that 😢

How can we improve it?