How to warm-up accounts via Snov.io API

This guide shows how to warm up sender accounts in Snov.io using the Email Warm-up API.

Use the Email Warm-up API to automate sender warm-ups at scale. Create and manage warm-up campaigns, monitor deliverability progress, and keep sender accounts continuously warmed up as part of your outreach workflow through API requests.

note
The Snov.io API is available on all Sales Suite plans.
note

What you can do with the Email Warm-up API:

1) Connect accounts and start warm-ups in bulk through API requests

2) Choose a sending strategy based on your outreach stage — progressive to prepare accounts or steady to maintain reputation

3) Warm-up on Gmail, Microsoft, or other SMTP providers

4) Control sending limits and settings at each warm-up stage

5) Pull statistics to track account progress

Before you start

You'll need two things to use the Email Warm-up API: a connected email account and API credentials for authentication.

Email account

At least one sender email account must be connected to your workspace — either in the app or via the Add email account API method.

Authentication

All Snov.io API requests require an access token. To generate it:

The access token is valid for 1 hour (3600 seconds).

Here are the API methods broken down by workflow stage:

Create warm-up campaign

Warm up a sender account before using it in outreach. This method starts a new warm-up campaign with the settings you specify.

Required input:

The required parameters set up your warm-up basics — which account to warm up and how many emails it should send per day.

  • email_account_id — the email account you want to warm up
  • per_day — how many warm-up emails to send each day. You can set this anywhere from 1 to 1000 emails per day, depending on your plan. See warm-up limits here.

Optional input:

The optional parameters let you fine-tune your warm-up strategy, email content, and which providers you're warming up against.

You can also improve performance with advanced options like a premium sender pool (business domains only), custom tracking domains, and dynamic proxy.

  • strategy — how fast to ramp up sending: progressive (default) gradually increases your daily volume, while steady keeps it at a fixed amount throughout
  • from — the starting daily volume when using the progressive strategy. Choose between 1 and 5, and make sure it's no higher than your per_day goal
  • increase — how much to grow the daily volume each day when using the progressive strategy. Choose between 1 and 5
  • email_content — what content to send during warm-up: autogenerated (default) lets Snov.io generate it with AI, or specific lets you provide your own template
  • subject — your custom email subject line (1–200 characters). Needed if you set email_content to specific
  • body — your custom email body (1–10000 characters). Needed if you set email_content to specific
  • reply_rate — what percentage of incoming warm-up emails get a reply. Choose between 10 and 45. Defaults to 30
  • campaign_deadline — the date your warm-up should stop (YYYY-MM-DD). Leave this out if you don't want a deadline
  • providers — which email providers to warm up against. Choose from gmail, microsoft, or other
  • send_to_paid_domain — whether to also send warm-up emails to paid domains. Defaults to false
  • enable_ctd — turn on a custom tracking domain for this warm-up. Defaults to false
  • enable_proxy — turn on dynamic proxy for this warm-up. Defaults to false
  • schedule_id — the sending schedule you want to attach to this warm-up
  • template_name — the name of a saved email template you'd like to use

Get list of warm-up campaigns

Get an overview of all warm-up campaigns across your sender accounts, with the option to filter by status or paginate through results.

Required input:

none — this returns all your warm-ups if you don't specify any optional parameters

Optional input:

The optional parameters let you filter by campaign status and control pagination — narrowing results down to active, paused, completed, or failed campaigns, and choosing how many results to show per page.

  • page — which page of results to show. Starts at 1 (the default)
  • per_page — how many results to show per page. Choose from 20, 50, or 100. Defaults to 20
  • status — narrow results down to a specific status: active, paused, completed, or error. Leave this out to get all warm-up campaigns

Get warm-up campaign info

Review the current configuration and status of a warm-up campaign.

This method returns the full campaign details — including strategy settings, daily limits, current deliverability stats, and the connected email account — so you can monitor progress and verify settings before making changes.

Required input:

id — the warm-up campaign you want to look up. You can get this from the Get list of warm-up campaigns method response

Update warm-up campaign

Adjust warm-up strategy, daily limits, status, or content settings without restarting the campaign.

This method partially updates an existing warm-up campaign — only the fields you pass are changed; all other settings remain as they were.

Required input:

id — the warm-up campaign you want to update. You can get this from the Get list of warm-up campaigns method response

Optional input:

make_endless: true — remove the campaign's deadline so the warm-up keeps running indefinitely. This overrides any deadline you'd set previously

Every other optional parameter works the same way as in the Create warm-up campaign method, so you can adjust any part of your warm-up configuration.

See Create warm-up campaign for the full list of parameters.

Get warm-up statistics

Monitor inbox rate progress and identify email providers where warm-up is underperforming.

This method returns daily and per-provider deliverability statistics for a warm-up campaign.

You can view stats over a default time periods or specify a custom date range — useful for tracking progress at different stages or comparing performance across time periods.

Required input:

id — the warm-up campaign you want statistics for. You can get this from the Get list of warm-up campaigns method response

  • period — a preset time window: two_weeks or month. Required if you don't provide date_from / date_to
  • date_from — the start date of your custom range (YYYY-MM-DD). Required if you don't provide period
  • date_to — the end date of your custom range (YYYY-MM-DD). Must be on or after date_from and on or after the campaign's start date. Required if you don't provide period

Delete warm-up campaign

Remove a warm-up campaign you no longer need. This action cannot be undone.

This method permanently deletes a warm-up campaign and its statistics — they will no longer be accessible through other warm-up API methods. Use this when you've completed warm-up or no longer need to track a campaign.

Required input:

id — the warm-up campaign you want to delete. You can get this from the Get list of warm-up campaigns method response

Thanks for your feedback!

Was this helpful?

No

Sorry about that 😢

How can we improve it?