This guide explains how to set up campaign sequences and control the full outreach workflow via the Snov.io API.
- Check sending setup
- Manage sender email accounts
- Create & manage campaigns
- Add & update email content
- Manage recipients
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.
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
Prepare basic account setup
- Connect at least one sender email account. Warm up your sender accounts using Email Warm-up in the app or the Email Warm-up API before launching campaigns.
- Create at least one sending schedule in Campaign schedules
- Create or import at least one do-not-contact list in Do-not-contact lists, or add it through the API method
Prepare your prospect list
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:
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
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
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
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
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.
Sorry about that 😢
How can we improve it?