Snov.io API: методи для пошуку, верифікації та розсилок

Користуйтеся інструментами Snov.io за допомогою нашого простого REST API. Інтегруйте Snov.io API до своєї платформи для синхронізації лідів, пошуку і перевірки їхніх контактів, запуску розсилок та ін. Пропускна здатність API обмежена 60 запитами на хвилину.

Якщо у вас безплатний тариф, ви можете надіслати запит на тестовий доступ, забронювавши персональне демо з нашою командою. Щоб розпочати, будь ласка, чітко вкажіть вашу мету, щоб ми могли краще зрозуміти ваші потреби.

Сценарії використання Snov.io API

  1. Збагачуйте свої списки контактів, щоб надати розширені дані вашій sales-команді
    Знаходьте перевірені email-адреси, навіть якщо у вас є лише ім'я та домен компанії — ідеально для розширення списків контактів або збагачення наявних даних.
  2. Автоматично додавайте нових підписників до кампаній
    Під'єднайте форми реєстрації через Snov.io API та миттєво додавайте нові контакти до ваших кампаній.
  3. Підтримуйте базу клієнтів чистою
    Підключіть верифікацію email-адрес до вашої CRM або інструментів для аутрічу, щоб миттєво перевіряти адреси нових контактів та зберігати дані наявних клієнтів актуальними.
  4. Використовуйте посилання на профіль LinkedIn для автоматичного заповнення даних лідів
    Перетворіть просте посилання на профіль LinkedIn на розширений, готовий до використання у CRM профіль. Попрощайтеся з ручним введенням даних — привітайтеся з якісними потенційними клієнтами.
  5. Діліться результатами кампанії в реальному часі
    Отримуйте дані з ваших холодних кампаній у дешборди в режимі реального часу. Надавайте зацікавленим колегам необхідну аналітику без зайвого клопоту.
  6. Підтримуйте списки контактів-винятків
    Автоматично додавайте контакти до списків контактів-винятків, щоб уникнути випадкового аутрічу. Ідеально підходить для того, щоб ваша команда з продажів працювала узгоджено, поважала відмови та дотримувалася правил конфіденційності даних.

Інтегруйте ці методи — і багато іншого — у ваш робочий процес. З нашими гнучкими методами API, варіанти використання практично безмежні.

Автентифікація

Для автентифікації майбутніх запитів вам необхідно згенерувати токен доступу. Відправляючи запит, укажіть токен доступу в полі для авторизації.

Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4

Ось приклад генерування токену.

Запит
POSThttps://api.snov.io/v1/oauth/access_token
Вхідні параметри
grant_type
Завжди
client_credentials
client_id
Ваш персональний id, який можна знайти в налаштуваннях акаунта https://app.snov.io/account/api
client_secret
Ваш секретний ключ, який можна знайти в налаштуваннях акаунта https://app.snov.io/account/api
Приклади коду
<?php
function getAccessToken()
{
    $params = [
        'grant_type'    => 'client_credentials',
        'client_id'     => 'c57a0459f6t141659ea75cccb393c5111',
        'client_secret' => '77cbf92b71553e85ce3bfd505214f40b'
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/oauth/access_token',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res['access_token'];

}
?>
def get_access_token():
params = {
    'grant_type':'client_credentials',
    'client_id':'c57a0459f6t141659ea75cccb393c111',
    'client_secret': '77cbf92b71553e85ce3bfd505214f40b'
}

res = requests.post('https://api.snov.io/v1/oauth/access_token', data=params)
resText = res.text.encode('ascii','ignore')

return json.loads(resText)['access_token']
Приклад відповіді
{
"access_token":"3yUyQZdks0Ej7T2fXzjUWzwlTcO4dWisKkeMpESz",
"token_type":"Bearer",
"expires_in":3600
}
Параметри відповіді
access_token
Ваш новий токен доступу.
token_type
Завжди Bearer
expires_in
Строк дії токену (в секундах).

Методи API

POSTПошук за доменом

1 кредит за кожен унікальний запит / 1 кредит за кожен профіль потенційного клієнта з email-адресою

Введіть домен, і Snov.io поверне інформацію про компанію, email-адреси та профілі лідів.

Вартість в кредитах
Запити на інформацію про компанію, email-адреси та профілі лідів

1 кредит за кожен запит POST. Ми не знімаємо плату, якщо ви не отримаєте результати.

Email-адреси з профілю контакта

1 кредит за кожен профіль потенційного клієнта з email-адресою.

Domain search schema
Інформація про компанію (запит результатів)
1 кредит за кожен унікальний запит.
POSThttps://api.snov.io/v2/domain-search/start
Вхідні параметри
domain
Домен, для якого ви хочете отримати інформацію про компанію. Наприклад, "snov.io".
Приклади коду
<?php
function companyInfoSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
    ];
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def company_info_search():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'domain': 'snov.io',
}

res = requests.post('https://api.snov.io/v2/domain-search/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "task_hash": "6f15de14db954c761f8e7507547b3bd7"
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/result/6f15de14db954c761f8e7507547b3bd7"
  }
}
Параметри відповіді
domain
Домен, для якого ви отримуєте інформацію про компанію.
task_hash
Унікальний ID задачі з пошуку, яку ви почали. Він автоматично додається до URL-адреси вашого наступного запиту, щоб отримати результати.
result
URL-адреса запиту для отримання інформації про компанію.
Інформація про компанію (отримання результатів)
URL-посилання, яке було отримано з вашого попереднього запиту.
GEThttps://api.snov.io/v2/domain-search/result/{task_hash}
Приклади коду
<?php
function companyInfoResult()
{
    $token = getAccessToken();

    $task_hash = 'b10e4c47693dbf87cc8de16edcc8ae22';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/result/$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def company_info_result():
token = get_access_token()
task_hash = '86586db9ac64ae5471eb18fc71b0dd5e'
headers = {'authorization': f'Bearer {token}'}

res = requests.get(f'https://api.snov.io/v2/domain-search/result/{task_hash}', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "company_name": "Snov.io",
    "city": "New York",
    "founded": "2017",
    "website": "snov.io",
    "hq_phone": "13477050819",
    "industry": "Computer Software",
    "size": "51-200",
    "related_domains": [
      "snov.me",
      "snov.com",
      "snov.nl",
      "snov.com.ua",
      "snov.cl"
    ]
  },
  "meta": {
    "domain": "snov.io",
    "task_hash": "6f15de14db954c761f8e7507547b3bd7",
    "prospects_count": 196,
    "emails_count": 108,
    "generic_contacts_count": 9
  },
  "links": {
    "prospects": "https://api.snov.io/v2/domain-search/prospects/start?domain=snov.io",
    "domain_emails": "https://api.snov.io/v2/domain-search/domain-emails/start?domain=snov.io",
    "generic_contacts": "https://api.snov.io/v2/domain-search/generic-contacts/start?domain=snov.io"
  },
  "status": "completed"
}
Параметри відповіді
company_name
Назва компанії, пов’язаної з доменом.
city
Місто, в якому розташований головний офіс компанії.
founded
Рік заснування компанії.
website
Сайт компанії.
hq_phone
Телефон головного офісу компанії.
industry
Галузь компанії.
size
Кількість працівників компанії.
related_domains
Домени з тим самим SLD (доменом другого рівня), що й домен, для якого ви запитуєте дані.
domain
Домен, для якого API знайшов інформацію про компанію.
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
prospects_count
Кількість профілів контактів, отриманих за вашим запитом.
emails_count
Кількість email-адрес, отриманих за вашим запитом.
generic_contacts_count
Кількість загальних email-адрес, отриманих за вашим запитом.
prospects
URL-адреса для запиту списку з повними профілями потенційних клієнтів.
domain_emails
URL-адреса для запиту списку з email-адресами з домену.
generic_contacts
URL-адреса для запиту списку з загальними email-адресами компанії.
status
Статус запиту. Може бути completed або in progress.
Профілі потенційних клієнтів (запит результатів)
1 кредит за кожен унікальний запит.
POSThttps://api.snov.io/v2/domain-search/prospects/start
Вхідні параметри
domain
Домен, за яким ви хочете знайти профілі потенційних клієнтів. Наприклад, "snov.io".
positions[]
Використовуйте цей параметр, щоб фільтрувати ліди за посадою, наприклад, "Software Developer". Для фільтрації за кількома посадами введіть масив необхідних посад, розділених комою.

Ви можете фільтрувати за 10 посадами за запит.
page
Номер сторінки, яка містить профілі потенційних клієнтів. На кожній сторінці показано до 20 профілів.

Якщо сторінка не вказана, за замовчуванням показується перша сторінка.
Приклади коду
<?php
function prospectsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain'       => 'snov.io',
        'page'         => 1,
        'positions'    => ['Web developer','QA Engineer']
    ];

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def prospects_search():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'domain': 'snov.io',
  'page': 1,
  'positions[]': ['Web developer', 'QA Engineer']
}

res = requests.post('https://api.snov.io/v2/domain-search/prospects/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "tab": "prospects",
    "task_hash": "3384369c16aad810f58609a40ad65089",
    "page": 1,
    "positions": [
      "Web developer",
      "QA Engineer"
    ]
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/prospects/result/3384369c16aad810f58609a40ad65089"
  }
}
Параметри відповіді
domain
Домен, для якого ви отримуєте профілі контактів.
tab
Показує тип результатів, які ви запитуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали. Він автоматично додається до URL-адреси вашого наступного запиту, щоб отримати результати.
page
Номер сторінки, яка містить профілі потенційних клієнтів. На кожній сторінці показано до 20 профілів.
positions
Посади, які використовуються для фільтрації результатів.
result
URL-адреса запиту для отримання профілів контактів.
Профілі потенційних клієнтів (отримання результатів)
URL-посилання, яке було отримано з вашого попереднього запиту.
GEThttps://api.snov.io/v2/domain-search/prospects/result/{task_hash}
Приклади коду
<?php
function prospectsResult()
{
    $token = getAccessToken();

    $task_hash = '3384369c16aad810f58609a40ad65089';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/prospects/result/$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def prospects_result():
token = get_access_token()
task_hash = '3384369c16aad810f58609a40ad65089'
headers = {'authorization': f'Bearer {token}'}

res = requests.get(f'https://api.snov.io/v2/domain-search/prospects/result/{task_hash}', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [
    {
      "first_name": "John",
      "last_name": "Doe",
      "position": "Web developer",
      "source_page": "https://www.linkedin.com/in/john-doe/",
      "search_emails_start": "https://api.snov.io/v2/domain-search/prospects/search-emails/start/41627edbfff8ba9c0819a1aa51d232baf3fa1763e5813dc86e027ccbbefd7a16b0522391086776b8764c94d02bab1257df392"
    }
  ],
  "meta": {
    "domain": "snov.io",
    "tab": "prospects",
    "task_hash": "3384369c16aad810f58609a40ad65089",
    "page": 1,
    "positions": [
      "Web developer",
      "QA Engineer"
    ],
    "total_count": 18
  },
  "links": {
    "next": ""
  },
  "status": "completed"
}
Параметри відповіді
first_name
Ім'я контакта.
last_name
Прізвище контакта.
position
Посада контакта.
source_page
Сторінка, на якій були знайдені персональні контакти.
search_emails_start
URL-адреса вашого наступного запиту на пошук email-адреси ліда.
domain
Домен, для якого ви отримуєте профілі контактів.
tab
Показує тип результатів, які ви отримуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
page
Номер сторінки, яка містить профілі потенційних клієнтів. На кожній сторінці показано до 20 профілів.
positions
Посади, які використовуються для фільтрації результатів.
total_count
Загальна кількість знайдених профілів контактів.
next
URL-адреса для запиту на отримання результатів із наступної сторінки. Кожна сторінка має до 20 лідів.
status
Статус запиту. Може бути completed або in progress.
Email-адреси потенційного клієнта (запит результатів)
URL-адреса, яку було отримано з вашого попереднього запиту. З вас буде стягнуто 1 кредит за кожного потенційного клієнта з email-адресою.
POSThttps://api.snov.io/v2/domain-search/prospects/search-emails/start/{prospect_hash}
Приклади коду
<?php
function searchProspectEmailsStart()
{
    $token = getAccessToken();

    $headers = [
        'Authorization: Bearer ' . $token,
    ];
    $task = '41627edbfff8ba9c0819a1aa51d232baf3fa1763e5813dc86e027ccbbefd7a16b0522391086776b8764c94d02bab1257df392';

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/prospects/search-emails/start/$task',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def search_prospect_emails_start():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}

res = requests.post(f'https://api.snov.io/v2/domain-search/prospects/search-emails/start/'
  f'a811d72df2e52bd447621c4a1326e540102f3b70ba39a81bd597020ed0b9f812ee8de7e0f4ecad312716d03576fdf0af6d8277e1', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [],
  "meta": {
    "task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/prospects/search-emails/result/5e846a1d80d95f66cfb30250a7c1881f"
  }
}
Параметри відповіді
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
result
URL-адреса вашого наступного запиту на отримання email-адреси ліда.
Email-адреси потенційного клієнта (отримання результатів)
URL-посилання, яке було отримано з вашого попереднього запиту.
GEThttps://api.snov.io/v2/domain-search/prospects/search-emails/result/{task_hash}
Приклади коду
<?php
function searchProspectEmailsResult()
{
    $token = getAccessToken();

    $task_hash = '5e846a1d80d95f66cfb30250a7c1881f';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/prospects/search-emails/result/$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def search_prospect_emails_result():
token = get_access_token()
task_hash = '7f1df5bd8bca6f66e38dad0ffb30ba4c'
headers = {'authorization': f'Bearer {token}'}

res = requests.get(f'https://api.snov.io/v2/domain-search/prospects/search-emails/result/{task_hash}', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "searching_date": "2025-01-01 11:11:11",
    "emails": [
      {
        "email": "example@snov.io",
        "smtp_status": "valid"
      }
    ]
  },
  "meta": {
    "task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
  },
  "links": [],
  "status": "completed"
}
Параметри відповіді
searching_date
Дата пошуку email-адреси.
emails
Email-адреси контакта.
smtp_status
Може повернути valid або unknown (unverifiable). Детальніше про статуси email-адрес.
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
status
Статус запиту. Може бути completed або in progress.
Email-адреси з домену (запит результатів)
1 кредит за кожен унікальний запит.
POSThttps://api.snov.io/v2/domain-search/domain-emails/start
Вхідні параметри
domain
Домен, для якого ви хочете отримати email-адреси. Наприклад, "snov.io".
Приклади коду
<?php
function domainEmailsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
    ];
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/domain-emails/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def domain_emails_search():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'domain': 'snov.io'
}

res = requests.post('https://api.snov.io/v2/domain-search/domain-emails/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "tab": "emails",
    "task_hash": "36fce9ac2667a827f6c5ab954e288bed",
    "next": ""
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/domain-emails/result/36fce9ac2667a827f6c5ab954e288bed"
  }
}
Параметри відповіді
domain
Домен, для якого ви отримуєте email-адреси.
tab
Показує тип результатів, які ви запитуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали. Він автоматично додається до URL-адреси вашого наступного запиту, щоб отримати результати.
next
ID для запиту наступної сторінки, якщо вона є. Якщо більше сторінок немає, він буде порожнім.
result
URL-адреса запиту для отримання email-адрес із домену.
Email-адреси з домену (отримання результатів)
URL-посилання, яке було отримано з вашого попереднього запиту.
GEThttps://api.snov.io/v2/domain-search/domain-emails/result/{task_hash}
Приклади коду
<?php
function domainEmailsResult()
{
    $token = getAccessToken();

    $task_hash = '36fce9ac2667a827f6c5ab954e288bed';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/domain-emails/result/$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def domain_emails_result():
token = get_access_token()
task_hash = '36fce9ac2667a827f6c5ab954e288bed'
headers = {'authorization': f'Bearer {token}'}

res = requests.get(f'https://api.snov.io/v2/domain-search/domain-emails/result/{task_hash}', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [
    {
      "email": "admin@snov.io"
    },
    {
      "email": "help@snov.io"
    }
  ],
  "meta": {
    "domain": "snov.io",
    "tab": "emails",
    "task_hash": "36fce9ac2667a827f6c5ab954e288bed",
    "next": "4ae6ca51c056c584db03c618dfe80dedb82ec37ab4667fa189386c82288a7422e8f4ab1010d84a13f2728d8f1b12b2ff139e3cb81108dc48",
    "total_count": 108
  },
  "links": {
    "next": "https://api.snov.io/v2/domain-search/domain-emails/start?domain=snov.io&next=4ae6ca51c056c584db03c618dfe80dedb82ec37ab4667fa189386c82288a7422e8f4ab1010d84a13f2728d8f1b12b2ff139e3cb81108dc48"
  },
  "status": "completed"
}
Параметри відповіді
email
Email-адреса домену.

Пам'ятайте, що ці адреси неверифіковані. Щоб перевірити їх, скористайтеся методом Верифікація адрес.
domain
Домен, для якого ви отримуєте email-адреси.
tab
Показує тип результатів, які ви отримуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
next
ID додається до URL-адреси запиту для доступу до наступної сторінки адрес, якщо вона існує.
total_count
Загальна кількість знайдених адрес із домену.
next
URL-адреса на запит для отримання результатів із наступної сторінки, якщо вона існує. Кожна сторінка містить до 50 email-адрес.
status
Статус запиту. Може бути completed або in progress.
Загальні контакти (запит результатів)
1 кредит за кожен унікальний запит.
POSThttps://api.snov.io/v2/domain-search/generic-contacts/start
Вхідні параметри
domain
Домен, для якого ви хочете отримати загальні email-адреси. Наприклад, "snov.io".
Приклади коду
<?php
function genericContactsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
    ];
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/generic-contacts/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def generic_contacts_search():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'domain': 'snov.io'
}

res = requests.post('https://api.snov.io/v2/domain-search/generic-contacts/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "tab": "service",
    "task_hash": "0e36e43b9b91a9b20d14b82c1ee141f2",
    "next": ""
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/generic-contacts/result/0e36e43b9b91a9b20d14b82c1ee141f2"
  }
}
Параметри відповіді
domain
Домен, для якого ви отримуєте загальні email-адреси.
tab
Показує тип результатів, які ви запитуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали. Він автоматично додається до URL-адреси вашого наступного запиту, щоб отримати результати.
next
ID для запиту наступної сторінки, якщо вона є. Якщо більше сторінок немає, він буде порожнім.
result
URL-адреса запиту для отримання загальних email-адрес із домену.
Загальні контакти (отримання результатів)
URL-посилання, яке було отримано з вашого попереднього запиту.
GEThttps://api.snov.io/v2/domain-search/generic-contacts/result/{task_hash}
Приклади коду
<?php
function genericContactsResult()
{
    $token = getAccessToken();

    $task_hash = '0e36e43b9b91a9b20d14b82c1ee141f2';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/generic-contacts/result/$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def generic_contacts_result():
token = get_access_token()
task_hash = '0e36e43b9b91a9b20d14b82c1ee141f2'
headers = {'authorization': f'Bearer {token}'}

res = requests.get(f'https://api.snov.io/v2/domain-search/generic-contacts/result/{task_hash}', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": [
    {
      "email": "orders@snov.io"
    },
    {
      "email": "sales@snov.io"
    }
  ],
  "meta": {
    "domain": "snov.io",
    "tab": "service",
    "task_hash": "0e36e43b9b91a9b20d14b82c1ee141f2",
    "next": "",
    "total_count": 9
  },
  "links": {
    "next": ""
  },
  "status": "completed"
}
Параметри відповіді
email
Загальні email-адреси контакта.

Пам'ятайте, що ці адреси неверифіковані. Щоб перевірити їх, скористайтеся методом Верифікація адрес.
domain
Домен, для якого ви отримуєте загальні email-адреси.
tab
Показує тип результатів, які ви отримуєте.

prospects означає, що ви шукаєте профілі потенційних клієнтів.

emails показує email-адреси з домену.

service показує, що ви отримуєте загальні адреси.
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
next
ID додається до URL-адреси запиту для доступу до наступної сторінки адрес, якщо вона існує.
total_count
Загальна кількість загальних email-адрес, знайдених за доменом.
next
URL-адреса на запит для отримання результатів із наступної сторінки, якщо вона існує. Кожна сторінка містить до 50 email-адрес.
status
Статус запиту. Може бути completed або in progress.

POSTПеревірити кількість доступних email-адрес

Безплатно

Цей метод API дозволяє дізнатися скільки email-адрес з певного домену є в нашій базі даних. Ця послуга безплатна і кредити за неї не списуються.

Запит
POSThttps://api.snov.io/v1/get-domain-emails-count
Вхідні параметри
domain
Ім'я домену, кількість емейлів на якому вам необхідно дізнатися.
Приклади коду
<?php
function getEmailCount()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'domain'       => 'octagon.com',
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-domain-emails-count',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;

}
?>
def get_email_count():
token = get_access_token()
params = {'access_token':token,
        'domain':'octagon.com'

}

res = requests.post('https://api.snov.io/v1/get-domain-emails-count', data=params)

return json.loads(res.text)
Приклад відповіді
{
"success":true,
"domain":"octagon.com",
"webmail":false,
"result":1369
}
Параметри відповіді
domain
Ім'я домену, кількість емейлів на якому вам необхідно дізнатися.
webmail
Буде
true
, якщо вибраний вами домен — сайт електронної пошти.
result
Загальна кількість email-адрес, які були знайдені для цього домену. Ми не можемо надати результати для сайтів електронної пошти, тому для них результат завжди буде
0
.

POSTЗнайти email-адреси за іменем і доменом

1 кредит за кожну email-адресу з валідним або невідомим статусом.

Введіть ім'я контакта та домен компанії і Snov.io поверне його верифіковану email-адресу.

Надання імені та домену
POSThttps://api.snov.io/v2/emails-by-domain-by-name/start
Вхідні параметри

Найпростіший спосіб надіслати цей запит — це через необроблений JSON. Ось приклад, якщо ви віддаєте перевагу використанню параметрів.

rows
Масив об'єктів, що містять дані контактів (ім'я, прізвище та домен).
Кожен запит може містити до 10 об'єктів.
first_name
Ім'я контакта.
last_name
Прізвище контакта.
domain
Домен компанії, в якій працює контакт.
webhook_url
Введіть URL вебхука, щоб миттєво отримувати результати, замість використання hash task.
Приклади коду
<?php
function emailsByDomainByNameSearch()
{
    $token = getAccessToken();

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $params = [
        'rows' => [
              [
               'first_name' => 'John',
               'last_name' => 'Doe',
               'domain' => 'yourdomain.com',
              ],
              [
               'first_name' => 'John',
               'last_name' => 'Doe',
               'domain' => 'yourdomain.com',
              ]
         ],
        'webhook_url' => 'https://hooks.yourdomain.com',
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/emails-by-domain-by-name/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def emails_by_domain_by_name_search():
token = get_access_token()
headers = {
    'authorization': f'Bearer {token}',
    'Content-Type': 'application/json'
}

payload = json.dumps({
    'rows': [
        {
            'first_name': 'John',
            'last_name': 'Doe',
            'domain': 'yourdomain.com'
        },
        {
            'first_name': 'Jane',
            'last_name': 'Doe',
            'domain': 'yourdomain.com'
        },
    ],
    'webhook_url': 'https://hooks.yourdomain.com'
})

res = requests.post('https://api.snov.io/v2/emails-by-domain-by-name/start', data=payload, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "task_hash": "005ffad65aad581943cf65a45112ca7a"
  },
  "meta": {
    "rows": [
      {
        "first_name": "John",
        "last_name": "Doe",
        "domain": "yourdomain.com"
      },
      {
        "first_name": "Jane",
        "last_name": "Doe",
        "domain": "yourdomain.com"
      }
    ]
  }
}
Параметри відповіді
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
first_name
Ім'я контакта.
last_name
Прізвище контакта.
domain
Домен компанії, в якій працює контакт.
Отримання email-адреси
GEThttps://api.snov.io/v2/emails-by-domain-by-name/result
Вхідні параметри
task_hash
Унікальний ID запиту, отриманий з попереднього запиту.
Приклади коду
<?php
function emailsByDomainByNameResult()
{
    $token = getAccessToken();

    $task_hash = '475d03ac6f98c124349b0f2efb506702';
    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/emails-by-domain-by-name/result?task_hash=$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def emails_by_domain_by_name_result():
token = get_access_token()
task_hash = '0d0c862099b22bdf300b8c8e67754e49'
headers = {'authorization': f'Bearer {token}'}

params = {'task_hash': task_hash}

res = requests.get(f'https://api.snov.io/v2/emails-by-domain-by-name/result', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "status": "completed",
  "data": [
    {
      "people": "John Doe",
      "result": [
        {
          "email": "john.doe@yourdomain.com",
          "smtp_status": "valid",
          "is_valid_format": true,
          "is_disposable": false,
          "is_webmail": false,
          "is_gibberish": false
        }
      ]
    },
    {
      "people": "Jane Doe",
      "result": [
        {
          "email": "jane.doe@yourdomain.com",
          "smtp_status": "unknown",
          "is_valid_format": true,
          "is_disposable": false,
          "is_webmail": false,
          "is_gibberish": false,
          "unknown_status_reason": "catchall"
        }
      ]
    }
  ],
  "meta": {
    "rows": [
      {
        "domain": "yourdomain.com",
        "last_name": "Doe",
        "first_name": "John"
      },
      {
        "domain": "yourdomain.com",
        "last_name": "Doe",
        "first_name": "Jane"
      }
    ],
    "task_hash": "af50fb238757ad092ad6e57e130b0dea"
  }
}
Параметри відповіді
status
Статус запиту. Може бути completed або in_progress.
Ви можете отримати статус not_enough_credits, якщо на акаунті, який ви використовуєте для пошуку недостатньо кредитів.
people
Повне ім'я контакта.
email
Email-адреса контакта.
smtp_status
Може повернути valid або unknown (тобто адресу неможливо верифікувати).
Щоб переглянути причину статусу unknown, перевірте параметр unknown_status_reason.
is_valid_format
Показує, чи формат email-адреси валідний. Може бути false або true.
is_disposable
Вказує, чи email-адреса тимчасова або одноразова, повертаючи false або true.
is_webmail
Якщо true, то email-адреса, яку ви шукаєте, є вебпоштою.
is_gibberish
Показує, чи містить надана email-адреса набір випадкових символів або символів у випадковому порядку. Буде false або true.
unknown_status_reason
Якщо для перевіреної email-адреси встановлено невідомий smtp_status, ви можете знайти детальнішу причину тут.
Banned: Високий ризик доставлення – неможливо верифікувати цю email-адресу зі 100 % точністю.
Catchall: Ризик для репутації відправника – це catch-all адреса.
Connection_error: Ризик потенційного баунсу – технічні помилки на стороні отримувача.
Greylist: Ризик доставлення – сервер адреси використовує фільтри грейлістингу.
domain
Домен компанії, в якій працює контакт.
first_name
Ім'я контакта.
last_name
Прізвище контакта.
task_hash
Унікальний ID для цієї задачі з пошуку.

POSTЗнайти домен за назвою компанії

1 кредит за кожен знайдений домен

Введіть назви компаній, і Snov.io надасть їхні домени.

Надання назв компаній
POSThttps://api.snov.io/v2/company-domain-by-name/start
Вхідні параметри
names[]
Масив назв компаній, для яких ви хочете отримати домени.
Щоб отримати домени для кількох компаній, додайте кожну як окремий параметр. Наприклад:
names[] | Snov.io
names[] | Sendpulse
Ви можете вказати до 10 назв компаній за раз.
webhook_url
Введіть URL вебхука, щоб миттєво отримувати результати, замість використання hash task.
Приклади коду
<?php
function companyDomainByNameStart()
{
    $token = getAccessToken();

    $params = [
        'names'    => ['Snov.io','SendPulse'],
        'webhook_url'         => 'https://hooks.yourdomain.com',
    ];

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/company-domain-by-name/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def company_domain_by_name_start():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'webhook_url': 'https://hooks.yourdomain.com',
  'names[]': ['Snov.io', 'Sendpulse']
}

res = requests.post('https://api.snov.io/v2/company-domain-by-name/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "task_hash": "959c0f60facb8629bba746e091a26f7b"
  },
  "meta": {
    "names": [
      "Snov.io",
      "Sendpulse"
    ]
  }
}
Параметри відповіді
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
names
Масив назв компаній, які ви надали.
Отримання доменів компанії
GEThttps://api.snov.io/v2/company-domain-by-name/result?task_hash={hash_from_1}
Вхідні параметри
task_hash
Унікальний ID запиту, отриманий з попереднього запиту.
Приклади коду
<?php
function companyDomainByNameResult()
{
    $token = getAccessToken();

    $task_hash = '48c156a785cfc1f3b0edab2cc28b3774';

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/company-domain-by-name/result?task_hash=$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def company_domain_by_name_result():
token = get_access_token()
task_hash = '959c0f60facb8629bba746e091a26f7b'
headers = {'authorization': f'Bearer {token}'}
params = {
  'task_hash': task_hash
}

res = requests.get(f'https://api.snov.io/v2/company-domain-by-name/result', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "status": "completed",
  "data": [
    {
      "name": "Snov.io",
      "result": {
        "domain": "snov.io"
      }
    },
    {
      "name": "Sendpulse",
      "result": {
        "domain": "sendpulse.com"
      }
    }
  ],
  "meta": {
    "names": [
      "Snov.io",
      "Sendpulse"
    ],
    "task_hash": "959c0f60facb8629bba746e091a26f7b"
  }
}
Параметри відповіді
status
Статус запиту. Може бути completed або in_progress.
name
Назва компанії, для якої ви запросили домен.
domain
Домен компанії.
names
Масив назв компаній, які ви надали.
task_hash
Унікальний ID для цієї задачі з пошуку.

POSTОтримати інформацію з профілю LinkedIn за посиланнями

1 кредит за кожен профіль контакта з наданою інформацією

Введіть посилання учасників LinkedIn, і Snov.io надасть повну інформацію з їхніх профілів.

Надання посилань LinkedIn
POSThttps://api.snov.io/v2/li-profiles-by-urls/start
Вхідні параметри
urls[]
Масив посилань на профілі LinkedIn, для яких ви хочете отримати повну інформацію з профілів.
Щоб отримати інформацію з профілю для кількох учасників LinkedIn за раз, додайте кожне посилання в окремий параметр.
Ви можете вказати до 10 посилань LinkedIn за раз.
webhook_url
Введіть URL вебхука, щоб миттєво отримувати результати, замість використання hash task.
Приклади коду
<?php
function linkedInProfilesByUrlsStart()
{
    $token = getAccessToken();

    $params = [
        'urls'    => ['https://www.linkedin.com/in/oleksii-kratko-6a0544187/','https://www.linkedin.com/in/atahualpamaia/'],
        'webhook_url'         => 'https://hooks.yourdomain.com',
    ];

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/li-profiles-by-urls/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def linkedin_profiles_by_urls_start():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'urls[]': ['https://www.linkedin.com/in/atahualpamaia/', 'https://www.linkedin.com/in/oleksii-kratko-6a0544187/'],
  'webhook_url': 'https://hooks.yourdomain.com',
}

res = requests.post('https://api.snov.io/v2/li-profiles-by-urls/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "task_hash": "ef005a4f6d82e7e88384de7c72ee198d"
  },
  "meta": {
    "urls": [
      "https://www.linkedin.com/in/john-doe-32a416248/",
      "https://www.linkedin.com/in/john-doe-04bb56b1/",
      "https://www.linkedin.com/in/john-jungwoo-do/"
    ]
  }
}
Параметри відповіді
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
urls
Посилання на профілі, для яких ви запитуєте інформацію.
Отримання інформації про профіль
GEThttps://api.snov.io/v2/li-profiles-by-urls/result
Вхідні параметри
task_hash
Унікальний ID запиту, отриманий з попереднього запиту.
Приклади коду
<?php
function linkedInProfilesByUrlsResult()
{
    $token = getAccessToken();

    $task_hash = 'ef005a4f6d82e7e88384de7c72ee198d';

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/li-profiles-by-urls/result?task_hash=$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def linkedin_profiles_by_urls_result():
token = get_access_token()
task_hash = '879788bd889b0b9aa447278ce184e2ad'
headers = {'authorization': f'Bearer {token}'}
params = {
  'task_hash': task_hash
}

res = requests.get(f'https://api.snov.io/v2/li-profiles-by-urls/result', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "status": "completed",
  "data": [
    {
      "url": "https://www.linkedin.com/in/john-doe-32a416248/",
      "result": {
        "name": "John Doe",
        "first_name": "John",
        "last_name": "Doe",
        "industry": "Internet",
        "location": "Chicago, Illinois, United States",
        "country": "United States",
        "positions": [
          {
            "name": "Stealth Startup",
            "title": "CEO",
            "linkedin_url": "https://www.linkedin.com/company/18583501",
            "url": "https://www.linkedin.com/in/ruhbirsingh/",
            "industry": "Computer Software",
            "country": "India",
            "location": "Gurugram, Haryana, India"
          },
          {
            "name": "TikTok",
            "title": "Influencer",
            "linkedin_url": "https://www.linkedin.com/company/33246798",
            "url": "https://www.tiktok.com/about?lang=en",
            "industry": "Entertainment",
            "country": "United States",
            "location": "Los Angeles, California, United States"
          }
        ]
      }
    },
    {
      "url": "https://www.linkedin.com/in/john-doe-04bb56b1/",
      "result": []
    },
    {
      "url": "https://www.linkedin.com/in/john-jungwoo-do/",
      "result": {
        "name": "John Do",
        "first_name": "John",
        "last_name": "Do",
        "location": "Vancouver, British Columbia, Canada",
        "country": "Canada",
        "skills": [
          "communication",
          "java"
        ],
        "positions": [
          {
            "name": "UBC Electrical and Computer Engineering",
            "title": "Undergraduate Research Assistant",
            "linkedin_url": "https://www.linkedin.com/company/15134449",
            "url": "http://www.ece.ubc.ca",
            "industry": "Higher Education",
            "country": "Canada",
            "location": "Vancouver, British Columbia, Canada"
          },
          {
            "name": "The University of British Columbia",
            "title": "Undergraduate Teaching Assistant",
            "linkedin_url": "https://www.linkedin.com/company/4373",
            "url": "http://www.ubc.ca",
            "industry": "Higher Education",
            "country": "Canada",
            "location": "Vancouver, British Columbia, Canada",
            "specializations": [
              "Aboriginal Engagement",
              "Alumni Engagement",
              "Community Engagement",
              "Intercultural Understanding",
              "International Engagement",
              "Outstanding Work Environment",
              "Research Excellence",
              "Student Learning",
              "sustainability"
            ]
          }
        ]
      }
    },
    {
      "url": "https://www.linkedin.com/in/john-doe-474006162/",
      "result": []
    }
  ],
  "meta": {
    "urls": [
      "https://www.linkedin.com/in/john-doe-32a416248/",
      "https://www.linkedin.com/in/john-doe-04bb56b1/",
      "https://www.linkedin.com/in/john-jungwoo-do/",
      "https://www.linkedin.com/in/john-doe-474006162/"
    ],
    "task_hash": "8a60c72133d0ea94767e4a978355c630"
  }
}
Параметри відповіді
status
Статус запиту. Може бути completed або in_progress.
url
Посилання на профіль LinkedIn.
name
Повне ім'я контакта.
first_name
Ім'я контакта.
last_name
Прізвище контакта.
industry
Сфера роботи контакта.
location
Локація контакта.
country
Країна, де знаходиться контакт, за даними з його профілю у LinkedIn.
skills
Навички контакта.
positions
Масив посад, які зараз займає контакт.
name
Назва компанії, в якій працює контакт.
title
Посада контакта.
linkedin_url
Посилання на сторінку компанії в LinkedIn.
url
Сайт компанії.
industry
Галузь компанії.
country
Країна, в якій розташований головний офіс компанії.
location
Локація компанії.
specializations
Галузь або фокус компанії.
urls
Масив посилань на профілі LinkedIn, які ви надали.
task_hash
Унікальний ID для цієї задачі з пошуку.

POSTДоповнити профіль інформацією з email-адреси

1 кредит за запит

Зазначте адресу електронної пошти, і Snov.io поверне всю пов'язану з власником емейлу інформацію, яка міститься у нашій базі даних.

Якщо нам не вдасться знайти інформацію про власника адреси у нашій базі даних, оплата за запит не буде знята.

Запит
POSThttps://api.snov.io/v1/get-profile-by-email
Вхідні параметри
email
Адреса електронної пошти особи, про яку ви хочете знайти додаткову інформацію.
Приклади коду
<?php
function getProfileByEmail()
{
    $token = getAccessToken();

    $params = [
        'access_token'    => $token,
        'email'           => 'gavin.vanrooyen@octagon.com'
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-profile-by-email',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    
    return $res;

}
?>
def get_profile_by_email():
token = get_access_token()
params = {'access_token':token,
        'email':'gavin.vanrooyen@octagon.com'
}

res = requests.post('https://api.snov.io/v1/get-profile-by-email', data=params)

return json.loads(res.text)
Приклад відповіді
{
"success": true,
"id": 301592,
"source": "linkedIn",
"name": "Lizi Hamer",
"firstName": "Lizi",
"lastName": "Hamer",
"logo": "https://app.snov.io/img/peoples/010fcf23c70dfa68d880545ec89a9215.jpg",
"industry": null,
"country": "Singapore",
"locality": "Singapore",
"social": [
    {
        "link": "https://www.linkedin.com/in/lizihamer/",
        "type": "linkedIn"
    },
    {
        "link": "https://twitter.com/LiziHamer",
        "type": "twitter"
    }
],
"currentJobs": [
    {
        "companyName": "Octagon",
        "position": "Regional Creative Director",
        "socialLink": "https://www.linkedin.com/company/165282",
        "site": "www.octagon.com",
        "locality": "Greater New York City Area",
        "state": "Connecticut",
        "city": "Stamford",
        "street": "290 Harbor Dr",
        "street2": "2nd Floor",
        "postal": "06902",
        "founded": "1983",
        "startDate": "2016-01-31",
        "endDate": null,
        "size": "1-10",
        "industry": "Marketing and Advertising",
        "companyType": "Public Company",
        "country": "United States"
    },
    {
        "companyName": "SisuGirls",
        "position": "Co Founder",
        "socialLink": "https://www.linkedin.com/company/3841118",
        "site": "http://www.sisugirls.org",
        "locality": null,
        "state": "SG",
        "city": "Singapore",
        "street": "33-03 Hong Leong Building",
        "street2": null,
        "postal": null,
        "founded": "2014",
        "startDate": "2015-07-31",
        "endDate": null,
        "size": "1-10",
        "industry": "Health, Wellness and Fitness",
        "companyType": null,
        "country": "Singapore"
    }
],
"previousJobs": [
    {
        "companyName": "Fusion Co-innovation Labs",
        "position": "Creative Entrepreneur",
        "socialLink": null,
        "site": null,
        "locality": null,
        "state": null,
        "city": null,
        "street": null,
        "street2": null,
        "postal": null,
        "founded": null,
        "startDate": "2013-05-31",
        "endDate": "2013-10-31",
        "size": null,
        "industry": null,
        "companyType": null,
        "country": null
    },
    {
        "companyName": "Russell Commission",
        "position": "Youth Advisory Board Member",
        "socialLink": null,
        "site": null,
        "locality": null,
        "state": null,
        "city": null,
        "street": null,
        "street2": null,
        "postal": null,
        "founded": null,
        "startDate": "2004-06-30",
        "endDate": "2006-06-30",
        "size": null,
        "industry": null,
        "companyType": null,
        "country": null
    }
],
"lastUpdateDate": "2018-02-07 10:12:28"
}
Параметри відповіді
id
Унікальний ідентифікатор профілю.
source
Джерело отриманих персональних даних.
name
Повне ім'я власника email-адреси.
firstName
Ім'я власника email-адреси.
lastName
Прізвище власника email-адреси.
logo
Аватар профілю.
industry
Галузь, зазначена в джерелі даних.
country
Країна, зазначена в джерелі даних.
locality
Місцезнаходження, зазначене в джерелі даних.
social
Посилання на профілі у соцмережах.
currentJobs
Масив, який містить інформацію про поточну посаду особи.
previousJobs
Масив, який містить інформацію про попередні посади особи.
lastUpdateDate
Дата останнього оновлення профілю в базі даних.

POSTВерифікація email-адрес

Введіть email-адреси, і Snov.io виконає повну перевірку. Ви можете верифікувати до 10 адрес за раз.

Надання email-адрес

POSThttps://api.snov.io/v2/email-verification/start
Вхідні параметри
emails[]
Email-адреси, які ви хочете перевірити.
Щоб перевірити кілька адрес одночасно, додайте кожну як окремий параметр. Наприклад:
emails[] | help@snov.io
emails[] | partnerships@snov.io
Ви можете перевірити до 10 email-адрес за раз.
webhook_url
Введіть URL вебхука, щоб миттєво отримувати результати, замість використання hash task.
Приклади коду
<?php
function emailVerificationStart()
{
    $token = getAccessToken();

    $params = [
        'emails'    => ['gavin.vanrooyen@octagon.com','lizi.hamer@octagon.com','admin@snov.io','test@snov.io','ivalid_format_snov.io'],
        'webhook_url'         => 'https://hooks.yourdomain.com',
    ];

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/email-verification/start',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def email_verification_start():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'emails[]': ['gavin.vanrooyen@octagon.com', 'lizi.hamer@octagon.com', 'admin@snov.io', 'test@snov.io', 'ivalid_format_snov.io'],
  'webhook_url': 'https://hooks.yourdomain.com',
}
res = requests.post('https://api.snov.io/v2/email-verification/start', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "data": {
    "task_hash": "0110437df6811068197577a538849a4b"
  },
  "meta": {
    "emails": [
      "gavin.vanrooyen@octagon.com",
      "lizi.hamer@octagon.com",
      "admin@snov.io",
      "test@snov.io",
      "ivalid_format_snov.io"
    ]
  }
}
Параметри відповіді
task_hash
Унікальний ID задачі з пошуку, яку ви почали.
emails
Масив email-адрес, які ви надали для перевірки.
Отримання результатів верифікації
GEThttps://api.snov.io/v2/email-verification/result
Вхідні параметри
task_hash
Унікальний ID запиту, отриманий з попереднього запиту.
Приклади коду
<?php
function emailVerificationResult()
{
    $token = getAccessToken();

    $task_hash = '0110437df6811068197577a538849a4b';

    $headers = [
        'Authorization: Bearer ' . $token,
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/email-verification/result?task_hash=$task_hash',
        CURLOPT_HTTPHEADER     => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $response = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $response;
}
?>
def email_verification_result():
token = get_access_token()
task_hash = 'b55b28d5419a1c3ec310f21916e4e271'
headers = {'authorization': f'Bearer {token}'}
params = {
  'task_hash': task_hash
}

res = requests.get(f'https://api.snov.io/v2/email-verification/result', params=params, headers=headers)

return json.loads(res.text)
Приклад відповіді
{
  "status": "completed",
  "data": [
    {
      "email": "gavin.vanrooyen@octagon.com",
      "result": {
        "is_webmail": false,
        "smtp_status": "unknown",
        "is_gibberish": false,
        "is_disposable": false,
        "is_valid_format": true,
        "unknown_status_reason": "catchall"
      }
    },
    {
      "email": "admin@snov.io",
      "result": {
        "is_webmail": false,
        "smtp_status": "valid",
        "is_gibberish": false,
        "is_disposable": false,
        "is_valid_format": true
      }
    },
    {
      "email": "ivalid_format_snov.io",
      "result": {
        "is_webmail": false,
        "smtp_status": "not_valid",
        "is_gibberish": false,
        "is_disposable": false,
        "is_valid_format": false
      }
    },
    {
      "email": "lizi.hamer@octagon.com",
      "result": {
        "is_webmail": false,
        "smtp_status": "unknown",
        "is_gibberish": false,
        "is_disposable": false,
        "is_valid_format": true,
        "unknown_status_reason": "catchall"
      }
    },
    {
      "email": "test@snov.io",
      "result": {
        "smtp_status": "unknown",
        "is_valid_format": true,
        "is_disposable": false,
        "is_webmail": false,
        "is_gibberish": true,
        "unknown_status_reason": "banned"
      }
    }
  ],
  "meta": {
    "emails": [
      "gavin.vanrooyen@octagon.com",
      "lizi.hamer@octagon.com",
      "admin@snov.io",
      "test@snov.io",
      "ivalid_format_snov.io"
    ],
    "task_hash": "0110437df6811068197577a538849a4b"
  }
}
Параметри відповіді
status
Статус запиту. Може бути completed або in_progress.
email
Email-адреса, яку ви верифікуєте.
smtp_status
Може повернути valid, not_valid або unknown (тобто адресу неможливо верифікувати).
Щоб переглянути причину статусу unknown, перевірте параметр unknown_status_reason.
is_valid_format
Показує, чи формат email-адреси валідний. Може бути false або true.
is_disposable
Вказує, чи email-адреса тимчасова або одноразова, повертаючи false або true.
is_webmail
Якщо true, то email-адреса, яку ви шукаєте, є вебпоштою.
is_gibberish
Показує, чи містить надана email-адреса набір випадкових символів або символів у випадковому порядку. Буде false або true.
unknown_status_reason
Якщо для перевіреної email-адреси встановлено невідомий smtp_status, ви можете знайти детальнішу причину тут.
Banned: Високий ризик доставлення – неможливо верифікувати цю email-адресу зі 100 % точністю.
Catchall: Ризик для репутації відправника – це catch-all адреса.
Connection_error: Ризик потенційного баунсу – технічні помилки на стороні отримувача.
Greylist: Ризик доставлення – сервер адреси використовує фільтри грейлістингу.
Hidden_by_owner: Власник email-адреси або компанія, що володіє доменом, запросила видалити його із результатів Snov.io.
emails
Масив email-адрес, які ви верифікуєте.
task_hash
Унікальний ID запиту для цієї задачі верифікації.

POSTДодати новий email-акаунт

Цей метод підключає новий SMTP/IMAP email-акаунт до вашого робочого простору snov.io, щоб його можна було використовувати як відправника в кампаніях. Акаунт створюється навіть якщо перевірка SMTP/IMAP-з'єднання ще не завершилася — статус з'єднання повертається асинхронно в полях smtp.status / imap.status і його можна опитати згодом. Підтримуються лише SMTP/IMAP-акаунти (тип провайдера other); потоки OAuth для Gmail і Microsoft не підтримуються.

Запит
POSThttps://api.snov.io/v2/sender-accounts/emails
Вхідні параметри
sender_name
*обов'язковий
Відображуване ім'я відправника, максимум 100 символів.
email_from
*обов'язковий
Email-адреса відправника.
password
*обов'язковий
Пароль або пароль застосунку для SMTP/IMAP-акаунта. Зберігається в зашифрованому вигляді.
smtp
*обов'язковий
Об'єкт із налаштуваннями SMTP.
smtp.host
*обов'язковий
SMTP-хост, наприклад smtp.gmail.com.
smtp.port
*обов'язковий
SMTP-порт. Дозволені значення: 25, 465, 587.
smtp.encryption
*обов'язковий
Тип шифрування. Дозволені значення: ssl, tls, none. Має відповідати порту: 465ssl, 587tls, 25none.
imap
Об'єкт із налаштуваннями IMAP. Необов'язковий, але якщо вказано, всі вкладені поля обов'язкові.
imap.host
IMAP-хост, наприклад imap.gmail.com. Обов'язковий, коли присутній imap.
imap.port
IMAP-порт. Дозволені значення: 143, 993. Обов'язковий, коли присутній imap.
imap.encryption
Тип шифрування. Дозволені значення: ssl, tls, none. Має відповідати порту: 993ssl або tls, 143none. Обов'язковий, коли присутній imap.
reply_to
Адреса для отримання відповідей.
limitation
Денний ліміт відправки. Ціле число, мін. 1, макс. 1200. За замовчуванням: 50. Не може перевищувати максимальну кількість листів, яку акаунт може надіслати протягом 24 годин з урахуванням налаштованої затримки.
delay_type
Тип затримки між листами. Дозволені значення: fixed, random. За замовчуванням: random.
delay_fixed
Фіксована затримка в секундах (використовується, коли delay_type=fixed). Ціле число, мін. 5, макс. 3600. За замовчуванням: 600.
delay_from
Мінімальна затримка в секундах (використовується, коли delay_type=random). Ціле число, мін. 5, макс. 3600. За замовчуванням: 600.
delay_to
Максимальна затримка в секундах (використовується, коли delay_type=random). Ціле число, мін. 5, макс. 3600, має бути більшою за delay_from. За замовчуванням: 900.
signature
HTML-підпис, що додається до вихідних листів.
bcc_email
BCC email-адреса.
tags
Масив рядків. Наявні теги зіставляються за назвою, нові створюються та прикріплюються до акаунта.
timezoneId
Цілочисловий ID часового поясу акаунта. Мін. 1, макс. 458.
Приклади коду
<?php
function createEmailAccount()
{
    $token = getAccessToken();
    $params = json_encode([
        'sender_name' => 'John Smith',
        'email_from'  => 'john@example.com',
        'password'    => 'app_password_here',
        'smtp' => [
            'host'       => 'smtp.gmail.com',
            'port'       => 465,
            'encryption' => 'ssl'
        ],
        'imap' => [
            'host'       => 'imap.gmail.com',
            'port'       => 993,
            'encryption' => 'ssl'
        ],
        'limitation'  => 50,
        'delay_type'  => 'random',
        'delay_from'  => 600,
        'delay_to'    => 900,
        'reply_to'    => 'replies@example.com',
        'bcc_email'   => 'bcc@example.com',
        'tags'        => ['Canada campaign 2025']
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/sender-accounts/emails',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ]
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def create_email_account():
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }
    params = {
        'sender_name': 'John Smith',
        'email_from': 'john@example.com',
        'password': 'app_password_here',
        'smtp': {
            'host': 'smtp.gmail.com',
            'port': 465,
            'encryption': 'ssl'
        },
        'imap': {
            'host': 'imap.gmail.com',
            'port': 993,
            'encryption': 'ssl'
        },
        'limitation': 50,
        'delay_type': 'random',
        'delay_from': 600,
        'delay_to': 900,
        'reply_to': 'replies@example.com',
        'bcc_email': 'bcc@example.com',
        'tags': ['Canada campaign 2025']
    }
    res = requests.post(
        'https://api.snov.io/v2/sender-accounts/emails',
        headers=headers,
        json=params
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 869852,
        "sender_name": "John Smith",
        "email_from": "john@example.com",
        "smtp": {
            "host": "smtp.gmail.com",
            "port": 465,
            "encryption": "ssl",
            "status": "pending"
        },
        "imap": {
            "host": "imap.gmail.com",
            "port": 993,
            "encryption": "ssl",
            "status": "pending"
        },
        "limitation": 50,
        "delay_type": "random",
        "delay_from": 600,
        "delay_to": 900,
        "reply_to": "replies@example.com",
        "bcc_email": "bcc@example.com",
        "tags": ["Canada campaign 2025"],
        "created_at": "2026-03-20T10:00:00+00:00"
    }
}
Параметри відповіді
data.id
ID створеного акаунта відправника.
data.sender_name
Відображуване ім'я відправника.
data.email_from
Email-адреса відправника.
data.smtp
Налаштування SMTP: host, port, encryption, а також поле status із результатом перевірки з'єднання (pending, connected, error).
data.imap
Налаштування IMAP (присутні лише якщо IMAP було налаштовано): host, port, encryption, status.
data.limitation
Денний ліміт відправки.
data.delay_type
Тип затримки: fixed або random.
data.delay_from
Мінімальна затримка в секундах (для delay_type=random).
data.delay_to
Максимальна затримка в секундах (для delay_type=random).
data.delay_fixed
Фіксована затримка в секундах (для delay_type=fixed).
data.reply_to
Адреса для отримання відповідей.
data.signature
HTML-підпис (присутній лише якщо його було вказано).
data.bcc_email
BCC email-адреса.
data.tags
Масив тегів, прикріплених до акаунта.
data.timezoneId
ID часового поясу (присутній лише якщо заданий у запиті).
data.created_at
Часова мітка створення акаунта.

PATCHОновити email-акаунт

Цей метод оновлює наявний SMTP/IMAP-акаунт відправника. Усі поля необов'язкові, але має бути вказане принаймні одне коректне поле — змінюються лише передані поля, решта залишається без змін. Коли включено будь-яке SMTP- або IMAP-поле, запускається нова асинхронна перевірка з'єднання, а отриманий статус повертається в smtp.status / imap.status. Якщо передано tags, новий масив повністю замінює поточний список тегів акаунта (заміна, а не злиття).

Запит
PATCHhttps://api.snov.io/v2/sender-accounts/emails/{id}
Вхідні параметри
id
*обов'язковий (path)
ID акаунта відправника, який потрібно оновити.
sender_name
Нове відображуване ім'я відправника, максимум 100 символів.
email_from
Нова email-адреса відправника.
password
Новий пароль або пароль застосунку для SMTP/IMAP-акаунта. Зберігається в зашифрованому вигляді.
smtp
Об'єкт із новими налаштуваннями SMTP (host, port, encryption). Коли присутній smtp, усі три вкладені поля обов'язкові й мають відповідати правилам пар порт/шифрування (465ssl, 587tls, 25none).
smtp.host
SMTP-хост. Максимум 100 символів; формат: ^[a-zA-Z0-9][a-zA-Z0-9-.]*. Обов'язковий, коли присутній smtp.
smtp.port
Дозволені значення: 25, 465, 587. Обов'язковий, коли присутній smtp.
smtp.encryption
Має відповідати порту: 465 → ssl, 587 → tls, 25 → none. Обов'язковий, коли присутній smtp.
imap
Об'єкт із новими налаштуваннями IMAP (host, port, encryption). Коли присутній imap, усі три вкладені поля обов'язкові (993ssl або tls, 143none)
imap.host
IMAP-хост. Максимум 100 символів. Обов'язковий, коли присутній imap.
imap.port
Дозволені значення: 143, 993. Обов'язковий, коли присутній imap.
imap.encryption
Має відповідати порту: 993 → ssl або tls; 143 → none. Обов'язковий, коли присутній imap.
reply_to
Нова адреса для отримання відповідей. Передайте null, щоб очистити.
limitation
Новий денний ліміт відправки. Ціле число, мін. 1, макс. 1200. Не може перевищувати максимальну кількість листів, яку акаунт може надіслати протягом 24 годин з урахуванням налаштованої затримки.
delay_type
Новий тип затримки. Дозволені значення: fixed, random.
delay_fixed
Фіксована затримка в секундах (використовується, коли delay_type=fixed). Ціле число, мін. 5, макс. 3600.
delay_from
Мінімальна затримка в секундах (використовується, коли delay_type=random). Ціле число, мін. 5, макс. 3600.
delay_to
Максимальна затримка в секундах (використовується, коли delay_type=random). Ціле число, мін. 5, макс. 3600, має бути більшою за delay_from.
signature
Новий HTML-підпис. Передайте null, щоб очистити.
bcc_email
Нова BCC email-адреса. Передайте null, щоб очистити.
tags
Новий масив тегів. Повністю замінює поточний список тегів. Передайте null, щоб очистити всі теги.
timezoneId
Цілочисловий ID часового поясу акаунта. Мін. 1, макс. 458.
Приклади коду
<?php
function updateEmailAccount($accountId)
{
    $token = getAccessToken();
    $params = json_encode([
        'sender_name' => 'John Smith Updated',
        'limitation'  => 100,
        'delay_type'  => 'fixed',
        'delay_fixed' => 600,
        'tags'        => ['Canada campaign 2025', 'Q2']
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/sender-accounts/emails/' . $accountId,
        CURLOPT_CUSTOMREQUEST  => 'PATCH',
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ]
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def update_email_account(account_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }
    params = {
        'sender_name': 'John Smith Updated',
        'limitation': 100,
        'delay_type': 'fixed',
        'delay_fixed': 600,
        'tags': ['Canada campaign 2025', 'Q2']
    }
    res = requests.patch(
        f'https://api.snov.io/v2/sender-accounts/emails/{account_id}',
        headers=headers,
        json=params
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 869852,
        "sender_name": "John Smith Updated",
        "email_from": "john@example.com",
        "smtp": {
            "host": "smtp.gmail.com",
            "port": 465,
            "encryption": "ssl",
            "status": "pending"
        },
        "imap": {
            "host": "imap.gmail.com",
            "port": 993,
            "encryption": "ssl",
            "status": "pending"
        },
        "limitation": 100,
        "delay_type": "fixed",
        "delay_fixed": 600,
        "reply_to": "replies@example.com",
        "bcc_email": "bcc@example.com",
        "tags": ["Canada campaign 2025", "Q2"],
        "updated_at": "2026-04-22T11:04:37+00:00"
    }
}
Параметри відповіді
data.id
ID акаунта відправника.
data.sender_name
Відображуване ім'я відправника.
data.email_from
Email-адреса відправника.
data.smtp
Налаштування SMTP: host, port, encryption, а також поле status із результатом перевірки з'єднання (pending, valid, invalid).
data.imap
Налаштування IMAP (присутні лише якщо IMAP налаштовано): host, port, encryption, status.
data.limitation
Денний ліміт відправки.
data.delay_type
Тип затримки: fixed або random.
data.delay_from
Мінімальна затримка в секундах (для delay_type=random).
data.delay_to
Максимальна затримка в секундах (для delay_type=random).
data.delay_fixed
Фіксована затримка в секундах (для delay_type=fixed).
data.reply_to
Адреса для отримання відповідей.
data.signature
HTML-підпис (присутній лише якщо його було вказано).
data.bcc_email
BCC email-адреса.
data.tags
Масив тегів, прикріплених до акаунта.
data.timezoneId
ID часового поясу (присутній лише якщо заданий).
data.updated_at
Часова мітка останнього оновлення.

GETПеревірити SMTP/IMAP-статус відправника

Цей метод перевіряє статус SMTP- та (за бажанням) IMAP-з'єднання підключеного email-акаунта відправника. Використовуйте його, щоб переконатися, що акаунт відправника наразі коректний і працездатний, а також щоб отримати будь-які помилки з'єднання.

Запит
GEThttps://api.snov.io/v2/sender-accounts/check-sender-status
Вхідні параметри
sender_account_id
*обов'язковий
ID email-акаунта відправника для перевірки. Ціле число, мінімальне значення: 1.
Приклади коду
<?php
function checkSenderStatus($senderAccountId)
{
    $token = getAccessToken();
    $query = http_build_query([
        'sender_account_id' => $senderAccountId
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/sender-accounts/check-sender-status?' . $query,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ]
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def check_sender_status(sender_account_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }
    params = {
        'sender_account_id': sender_account_id
    }
    res = requests.get(
        'https://api.snov.io/v2/sender-accounts/check-sender-status',
        headers=headers,
        params=params
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "smtp": {
            "status": "valid"
        },
        "imap": {
            "status": "valid"
        }
    }
}
Приклад відповіді з помилками SMTP і без налаштованого IMAP:
{
    "data": {
        "smtp": {
            "status": "invalid",
            "errors": [
                "Connection refused"
            ]
        },
        "imap": null
    }
}
Параметри відповіді
data
Об'єкт із деталями статусу з'єднання для акаунта відправника.
smtp
Об'єкт, що описує статус SMTP-з'єднання: status (pending, valid, invalid) та errors (масив повідомлень про помилки, присутній, коли status дорівнює invalid).
imap
Об'єкт, що описує статус IMAP-з'єднання з тією самою структурою, що й smtp. Повертає null, коли IMAP не було налаштовано під час створення акаунта.

GETОтримати список усіх email-акаунтів

Безплатно

Метод показує список усіх підключених email-акаунтів.

Запит
GEThttps://api.snov.io/v2/sender-accounts/emails
Вхідні параметри
Цей метод не має вхідних параметрів.
Приклади коду
<?php
function getSenderEmails()
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/sender-accounts/emails',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_sender_emails():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get('https://api.snov.io/v2/sender-accounts/emails', headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 11980,
            "sender_name": "Den Johnson",
            "email_from": "den.johnson@snov.io",
            "valid": true,
            "suspended": false,
            "limitation": 50,
            "provider": "hostinger",
            "tags": [
                "Den's account"
            ],
            "imap": {
                "username": "den.johnson@snov.io",
                "valid": true
            }
        },
        {
            "id": 12355,
            "sender_name": "Anna",
            "email_from": "anna@snov.io",
            "valid": false,
            "suspended": false,
            "limitation": 50,
            "provider": "godaddy",
            "tags": [
                "Work"
            ],
            "imap": {
                "username": "anna@snov.io",
                "valid": false
            }
        }
    ]
}
Параметри відповіді
id
Унікальний ID email-акаунта.
sender_name
Ім'я відправника (поле «Від кого») — це ім'я, яке бачить отримувач у своїх вхідних. Воно вказує, хто саме надіслав лист.
email_from
Повна email-адреса.
valid
Показує true, якщо акаунт відправника дійсний. Повертає false, якщо акаунт недійсний.
suspended
Показує true, якщо надсилання з акаунта призупинено. Повертає false, якщо акаунт працює нормально.
limitation
Денні ліміти надсилання акаунту.
provider
Провайдер email-акаунту.
tags
Теги, призначені акаунту.
imap
Масив даних IMAP для акаунту.
username
Email-адреса, вибрана для отримання відповідей замість основного email-акаунту.
valid
Показує true, якщо IMAP увімкнено. Повертає false, якщо IMAP вимкнено.

POSTСтворити кампанію прогріву

Цей метод створює та запускає нову кампанію прогріву для вказаного поштового акаунта. Прогрів поступово покращує репутацію надсилання акаунта шляхом обміну короткими листами з відібраною мережею отримувачів. Оберіть стратегію progressive, щоб поступово збільшувати щоденний обсяг надсилання з невеликої початкової точки, або стратегію steady, щоб надсилати фіксовану кількість листів прогріву на день; вкажіть власні subject та body або дозвольте snov.io генерувати їх автоматично.

Запит
POSThttps://api.snov.io/v2/warm-up
Вхідні параметри
email_account_id
*обов'язковий
Integer. ID поштового акаунта для прогріву.
strategy
Стратегія надсилання. Допустимі значення: progressive, steady. За замовчуванням: progressive.
per_day
*обов'язковий
Integer. Щоденна мета надсилання. Діапазон 11000 залежно від тарифного плану.
from
Integer. Початковий щоденний обсяг (лише для стратегії progressive). Діапазон 15, має бути ≤ per_day. Обов'язково, якщо strategy=progressive.
increase
Integer. Щоденне збільшення обсягу (лише для стратегії progressive). Діапазон 15. Обов'язково, якщо strategy=progressive.
email_content
Тип вмісту листа. Допустимі значення: autogenerated (генерується ШІ), specific (власний). За замовчуванням: autogenerated.
subject
String. Тема листа, 1–200 символів. Обов'язково, якщо email_content=specific.
body
String. Тіло листа, 1–10000 символів. Обов'язково, якщо email_content=specific.
reply_rate
Integer. Відсоток вхідних листів прогріву, на які буде надіслано відповідь. Діапазон 1045. За замовчуванням: 30.
campaign_deadline
String (YYYY-MM-DD). Дата завершення прогріву. Пропустіть, якщо кінцевий термін не потрібен.
providers
Масив рядків. Цільові провайдери отримувачів. Допустимі значення: gmail, microsoft, aliyun, hostinger, private email, zoho, titan, godaddy, other.
send_to_paid_domain
Boolean. Чи надсилати на платні домени. За замовчуванням: false.
enable_ctd
Boolean. Увімкнути власний домен відстеження. За замовчуванням: false.
enable_proxy
Boolean. Увімкнути динамічний проксі. За замовчуванням: false.
schedule_id
Integer. ID розкладу надсилання, який буде прикріплено до прогріву.
template_name
String. Назва збереженого шаблону листа для використання.
Приклади коду
<?php
function createWarmUp()
{
    $token = getAccessToken();
    $params = json_encode([
        'email_account_id'    => 123,
        'strategy'            => 'progressive',
        'per_day'             => 50,
        'from'                => 2,
        'increase'            => 2,
        'reply_rate'          => 30,
        'campaign_deadline'   => '2026-12-31',
        'send_to_paid_domain' => false,
        'enable_proxy'        => false
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def create_warm_up():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    params = {
        'email_account_id': 123,
        'strategy': 'progressive',
        'per_day': 50,
        'from': 2,
        'increase': 2,
        'reply_rate': 30,
        'campaign_deadline': '2026-12-31',
        'send_to_paid_domain': False,
        'enable_proxy': False
    }

    res = requests.post(
        'https://api.snov.io/v2/warm-up',
        headers=headers,
        json=params
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 123
    },
    "success": true
}
Параметри відповіді
success
Boolean. true, якщо кампанію прогріву створено.
data.id
ID створеної кампанії прогріву.

GETОтримати список кампаній прогріву

Цей метод повертає сторінковий список усіх кампаній прогріву в акаунті, за бажанням відфільтрованих за статусом. Кожен елемент має таку саму структуру, як і відповідь методу «Отримати інформацію про кампанію прогріву».

Запит
GEThttps://api.snov.io/v2/warm-up
Вхідні параметри
page
Integer. Номер сторінки. За замовчуванням: 1. Мінімум: 1.
per_page
Integer. Кількість результатів на сторінці. Допустимі значення: 20, 50, 100. За замовчуванням: 20.
status
Фільтр за статусом. Допустимі значення: active, paused, completed, error. Пропустіть, щоб повернути всі.
Приклади коду
<?php
function getWarmUpList()
{
    $token = getAccessToken();
    $params = http_build_query([
        'page'     => 1,
        'per_page' => 20,
        'status'   => 'active'
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up?' . $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_warm_up_list():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    params = {
        'page': 1,
        'per_page': 20,
        'status': 'active'
    }

    res = requests.get(
        'https://api.snov.io/v2/warm-up',
        headers=headers,
        params=params
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 1,
            "status": "active",
            "reply_rate": 30,
            "send_to_paid_domain": false,
            "start_date": "2026-03-26",
            "campaign_deadline": "2026-12-21",
            "strategy": "progressive",
            "per_day": 2,
            "from": 2,
            "increase": 2,
            "subject": null,
            "body": null,
            "template_name": null,
            "enable_ctd": false,
            "schedule": null,
            "email_account": {
                "id": 732745,
                "email_from": "john@example.com",
                "type": "microsoft",
                "delay": 30,
                "limit": 15,
                "per_day": 50,
                "schedule_required": false,
                "provider": "gmail",
                "custom_tracking_domain": null
            },
            "enable_proxy": false,
            "sent_today": 2,
            "daily_limit": 2,
            "total_saved_from_spam": 5,
            "deliverability": 88,
            "warm_up_error": null
        }
    ],
    "success": true,
    "meta": {
        "total_items": 1,
        "page": 1,
        "per_page": 20,
        "total_pages": 1
    }
}
Параметри відповіді
success
Boolean. true, якщо запит виконано успішно.
data
Масив об'єктів кампаній прогріву. Кожен елемент має таку саму структуру, як і відповідь методу «Отримати інформацію про кампанію прогріву» (див. поля data.* там).
meta.total_items
Загальна кількість елементів на всіх сторінках.
meta.page
Поточний номер сторінки.
meta.per_page
Кількість елементів на сторінці.
meta.total_pages
Загальна кількість сторінок.

GETОтримати інформацію про кампанію прогріву

Цей метод повертає повну інформацію про окрему кампанію прогріву за її ID — включаючи налаштування стратегії, денні ліміти, поточну статистику доставки та підключений поштовий акаунт.

Запит
GEThttps://api.snov.io/v2/warm-up/{id}
Вхідні параметри
id
*обов'язковий(path)
Integer. ID кампанії прогріву.
Приклади коду
<?php
function getWarmUpById($warmUpId)
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up/' . $warmUpId,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_warm_up_by_id(warm_up_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get(
        f'https://api.snov.io/v2/warm-up/{warm_up_id}',
        headers=headers
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 123,
        "status": "active",
        "reply_rate": 30,
        "send_to_paid_domain": false,
        "start_date": "2026-03-26",
        "campaign_deadline": "2026-12-21",
        "strategy": "progressive",
        "per_day": 2,
        "from": 2,
        "increase": 2,
        "subject": null,
        "body": null,
        "template_name": null,
        "enable_ctd": false,
        "schedule": null,
        "email_account": {
            "id": 732745,
            "email_from": "john@example.com",
            "type": "google",
            "delay": 30,
            "limit": 15,
            "per_day": 50,
            "schedule_required": false,
            "provider": "gmail",
            "custom_tracking_domain": null
        },
        "enable_proxy": false,
        "sent_today": 2,
        "daily_limit": 2,
        "total_saved_from_spam": 106,
        "deliverability": 88,
        "warm_up_error": null
    },
    "success": true
}
Параметри відповіді
success
Boolean. true, якщо запит виконано успішно.
data.id
ID кампанії прогріву.
data.status
Статус кампанії: active, pending, paused, completed, error.
data.reply_rate
Відсоток отриманих листів, на які буде надіслано відповідь (10–45).
data.send_to_paid_domain
Чи надсилає кампанія листи на платні домени.
data.start_date
Дата початку кампанії (YYYY-MM-DD).
data.campaign_deadline
Дата завершення кампанії (YYYY-MM-DD). null, якщо кінцевий термін не встановлено.
data.strategy
Стратегія надсилання: progressive або steady.
data.per_day
Щоденна мета надсилання.
data.from
Початковий щоденний обсяг (лише для стратегії progressive).
data.increase
Щоденне збільшення обсягу (лише для стратегії progressive).
data.subject
Тема листа (лише якщо email_content=specific).
data.body
Тіло листа (лише якщо email_content=specific).
data.template_name
Назва шаблону.
data.enable_ctd
Чи увімкнено власний домен відстеження.
data.schedule
Розклад надсилання, прикріплений до кампанії, або null.
data.enable_proxy
Чи увімкнено динамічний проксі.
data.sent_today
Кількість листів прогріву, надісланих сьогодні.
data.daily_limit
Наразі застосований щоденний ліміт надсилання.
data.total_saved_from_spam
Загальна кількість листів, врятованих зі спаму з початку кампанії.
data.deliverability
Відсоток доставки до папки «Вхідні» (%).
data.warm_up_error
Опис помилки, якщо прогрів перейшов у стан error, інакше null.
data.email_account
Дані підключеного поштового акаунта.
data.email_account.id
ID поштового акаунта.
data.email_account.email_from
Email-адреса акаунта.
data.email_account.type
Тип акаунта (наприклад, google, microsoft).
data.email_account.delay
Затримка між листами (у секундах).
data.email_account.limit
Загальний ліміт листів для акаунта.
data.email_account.per_day
Щоденний ліміт для акаунта.
data.email_account.schedule_required
Чи потрібен розклад для цього акаунта.
data.email_account.provider
Провайдер email: gmail, microsoft, hostinger, zoho, titan, godaddy, other тощо.
data.email_account.custom_tracking_domain
Власний домен відстеження або null.

PATCHОновити кампанію прогріву

Цей метод частково оновлює існуючу кампанію прогріву. Змінюються лише передані поля; всі інші налаштування залишаються без змін. Використовуйте цей метод для зміни налаштувань кампанії на льоту, перемикання статусу (active, paused, completed, deleted) або видалення кінцевого терміну шляхом передачі make_endless: true.

Запит
PATCHhttps://api.snov.io/v2/warm-up/{id}
Вхідні параметри
id
*обов'язковий(path)
Integer. ID кампанії прогріву для оновлення.
status
Змінити статус кампанії вручну. Допустимі значення: active, paused, completed, deleted.
strategy
Нова стратегія надсилання: progressive або steady.
per_day
Нова щоденна мета надсилання. Діапазон 11000 залежно від тарифного плану.
from
Новий початковий щоденний обсяг. Діапазон 110. Обов'язково, якщо strategy=progressive.
increase
Нове щоденне збільшення обсягу. Діапазон 15. Обов'язково, якщо strategy=progressive.
email_content
Тип вмісту листа: autogenerated або specific.
subject
Нова тема листа, 1–200 символів. Обов'язково, якщо email_content=specific.
body
Нове тіло листа, 1–10000 символів. Обов'язково, якщо email_content=specific.
reply_rate
Новий відсоток відповідей. Діапазон 1045.
campaign_deadline
Нова дата завершення кампанії (YYYY-MM-DD).
make_endless
Boolean. Передайте true, щоб видалити поточний campaign_deadline і зробити кампанію безстроковою.
providers
Нові цільові провайдери отримувачів (ті самі допустимі значення, що й при створенні кампанії прогріву).
send_to_paid_domain
Boolean.
enable_ctd
Boolean. Увімкнути або вимкнути власний домен відстеження.
enable_proxy
Boolean. Увімкнути або вимкнути динамічний проксі.
schedule_id
ID нового розкладу надсилання.
template_name
Нова назва шаблону.
Приклади коду
<?php
function updateWarmUp($warmUpId)
{
    $token = getAccessToken();
    $params = json_encode([
        'reply_rate'        => 10,
        'campaign_deadline' => '2027-06-30',
        'enable_proxy'      => true
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up/' . $warmUpId,
        CURLOPT_CUSTOMREQUEST  => 'PATCH',
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def update_warm_up(warm_up_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    params = {
        'reply_rate': 10,
        'campaign_deadline': '2027-06-30',
        'enable_proxy': True
    }

    res = requests.patch(
        f'https://api.snov.io/v2/warm-up/{warm_up_id}',
        headers=headers,
        json=params
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 123
    },
    "success": true
}
Параметри відповіді
success
Boolean. true, якщо кампанію прогріву оновлено.
data.id
ID оновленої кампанії прогріву.

DELETEВидалити кампанію прогріву

Цей метод видаляє кампанію прогріву за її ID. Після видалення кампанія та її статистика більше не будуть доступні через інші методи API прогріву.

Запит
DELETEhttps://api.snov.io/v2/warm-up/{id}
Вхідні параметри
id
*обов'язковий(path)
Integer. ID кампанії прогріву для видалення.
Приклади коду
<?php
function deleteWarmUp($warmUpId)
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up/' . $warmUpId,
        CURLOPT_CUSTOMREQUEST  => 'DELETE',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def delete_warm_up(warm_up_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.delete(
        f'https://api.snov.io/v2/warm-up/{warm_up_id}',
        headers=headers
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 123
    },
    "success": true
}
Параметри відповіді
success
Boolean. true, якщо кампанію прогріву видалено.
data.id
ID видаленої кампанії прогріву.

GETОтримати статистику прогріву

Цей метод повертає щоденну статистику доставки та статистику за провайдерами для кампанії прогріву — або за попередньо встановленим вікном (two_weeks / month), або за користувацьким діапазоном дат. Корисно для відстеження прогресу доставки до папки «Вхідні» та виявлення провайдерів, у яких прогрів відбувається незадовільно.

Запит
GEThttps://api.snov.io/v2/warm-up/statistics/{id}
Вхідні параметри
id
*обов'язковий(path)
Integer. ID кампанії прогріву.
period
Попередньо встановлений період. Допустимі значення: two_weeks, month. Обов'язково, якщо date_from / date_to не вказані.
date_from
String (YYYY-MM-DD). Початок користувацького діапазону дат. Обов'язково, якщо period не вказано.
date_to
String (YYYY-MM-DD). Кінець користувацького діапазону дат. Має бути ≥ date_from і ≥ дати початку кампанії. Обов'язково, якщо period не вказано.
Приклади коду
<?php
function getWarmUpStatistics($warmUpId)
{
    $token = getAccessToken();
    $params = http_build_query([
        'period' => 'two_weeks'
    ]);
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/warm-up/statistics/' . $warmUpId . '?' . $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json'
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_warm_up_statistics(warm_up_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    params = {
        'period': 'two_weeks'
    }

    res = requests.get(
        f'https://api.snov.io/v2/warm-up/statistics/{warm_up_id}',
        headers=headers,
        params=params
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "daily_statistics": {
            "2026-05-30": {
                "emails_sent": 2,
                "replies": 0,
                "bounces": 0,
                "spam_emails": 0,
                "inbox_emails": 2,
                "categories_emails": 0,
                "scheduled": 0
            },
            "2026-05-31": {
                "emails_sent": 2,
                "replies": 0,
                "bounces": 0,
                "spam_emails": 0,
                "inbox_emails": 2,
                "categories_emails": 0,
                "scheduled": 0
            }
        },
        "provider_statistics": {
            "google": {
                "id": 1,
                "count": 6,
                "spam": 2,
                "percent": 75,
                "categories": 0
            },
            "outlook": {
                "id": 2,
                "count": 2,
                "spam": 0,
                "percent": 100
            },
            "hostinger": {
                "id": 4,
                "count": 2,
                "spam": 0,
                "percent": 100
            },
            "other": {
                "id": 9,
                "count": 4,
                "spam": 0,
                "percent": 100
            }
        },
        "deliverability": {
            "inbox": {
                "count": 14,
                "percent": 88
            },
            "spam": {
                "count": 2,
                "percent": 13
            },
            "categories": {
                "count": 0,
                "percent": 0
            }
        },
        "is_calculated": false
    },
    "success": true
}
Параметри відповіді
success
Boolean. true, якщо запит виконано успішно.
data.daily_statistics
Об'єкт з ключами за датою (YYYY-MM-DD). Кожен запис містить поля щоденної статистики нижче.
data.daily_statistics.{date}.emails_sent
Кількість листів прогріву, надісланих цього дня.
data.daily_statistics.{date}.replies
Кількість отриманих відповідей цього дня.
data.daily_statistics.{date}.bounces
Кількість листів, що отримали відмову доставки цього дня.
data.daily_statistics.{date}.spam_emails
Кількість листів, що потрапили до спаму цього дня.
data.daily_statistics.{date}.inbox_emails
Кількість листів, що потрапили до папки «Вхідні» цього дня.
data.daily_statistics.{date}.categories_emails
Кількість листів, що потрапили до вкладок категорій Gmail цього дня.
data.daily_statistics.{date}.scheduled
Кількість листів, запланованих для надсилання цього дня.
data.provider_statistics
Об'єкт з ключами за назвою провайдера (google, outlook, hostinger тощо). Кожен запис містить поля статистики за провайдером нижче.
data.provider_statistics.{provider}.id
Внутрішній ID провайдера.
data.provider_statistics.{provider}.count
Кількість листів, надісланих через цього провайдера.
data.provider_statistics.{provider}.spam
Кількість листів, що потрапили до спаму в цього провайдера.
data.provider_statistics.{provider}.percent
Відсоток доставки до папки «Вхідні» (%) для цього провайдера.
data.provider_statistics.{provider}.categories
Кількість листів, що потрапили до вкладок категорій Gmail. Може бути відсутнім для провайдерів без підтримки категорій.
data.deliverability.inbox.count
Загальна кількість листів, доставлених до папки «Вхідні».
data.deliverability.inbox.percent
Відсоток доставки до папки «Вхідні» (%).
data.deliverability.spam.count
Загальна кількість листів, доставлених до спаму.
data.deliverability.spam.percent
Відсоток спаму (%).
data.deliverability.categories.count
Загальна кількість листів, доставлених до вкладок категорій Gmail.
data.deliverability.categories.percent
Відсоток категорій (%).
data.is_calculated
Boolean. false, якщо статистика ще обробляється; true, якщо розрахунок завершено.

Керування кампаніями

Ці методи дозволяють створювати, налаштовувати та контролювати повний життєвий цикл кампанії — від початкового налаштування до запуску, призупинення, завершення та видалення.

GETПереглянути усі розсилки

Безплатно

Цей метод показує список усіх кампаній користувача. Якщо користувач є учасником команди та має дозвіл на перегляд записів команди, метод також поверне всі кампанії, створені в цій команді.

Запит
GEThttps://api.snov.io/v1/get-user-campaigns
Вхідні параметри
Для цього методу відсутні вхідні параметри
Приклади коду
<?php
function userCampaigns()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-user-campaigns?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()

headers = {'Authorization': token}

url = 'https://api.snov.io/v1/get-user-campaigns'

response = requests.request('GET', url, headers=headers)

return json.loads(res.text)
Приклад відповіді
[
    {
        "id": 237945,
        "campaign": "New Campaign",
        "list_id": 8512947,
        "status": "Paused",
        "created_at": 1639469976,
        "updated_at": 1639470026,
        "started_at": 1639470021,
        "hash": "e272be8f9a6894f5b5894fe2ef77095e"
    },
    {
        "id": 237956,
        "campaign": "Test campaign",
        "list_id": 7654321,
        "status": "Draft",
        "created_at": 1638808262,
        "updated_at": 1638808262,
        "started_at": null,
        "hash": "f97fce248b77e9a1ae770b21c7bd783d"
    }
]
Параметри відповіді
id
Унікальний id розсилки користувача.
campaign
Назва розсилки.
list_id
Унікальний id списку отримувачів розсилки.
status
Статус розсилки.
created_at
Дата та час створення розсилки в форматі Unix Timestamp.
updated_at
Дата та час останнього редагування розсилки в форматі Unix Timestamp.
started_at
Дата та час запуску розсилки в форматі Unix Timestamp.

POSTСтворити кампанію

Цей метод створює нову аутрич-кампанію у вашому робочому просторі snov.io. Кампанія створюється зі статусом new і може бути збережена в будь-якому частково налаштованому стані — обов'язковими є лише поля, необхідні для запуску кампанії, решту можна заповнити пізніше. Підтримуються послідовності лише з email, лише з LinkedIn та змішані багатоканальні послідовності, включаючи A/B-варіанти, тригери (відкриття, кліки, відповіді, calendly, рівень з'єднання, надсилання LinkedIn in-mail тощо), затримки та блоки цілей. Цей метод створює кампанію без вмісту в блоках повідомлень. Ви додаєте вміст пізніше, викликаючи метод Create Email Step Content.

Запит
POSThttps://api.snov.io/v2/campaigns/create
Вхідні параметри
title
*обов'язковий
String. Назва кампанії. Максимум 255 символів.
priority
*обов'язковий
String enum. Пріоритет надсилання кампанії: low, medium, high.
email_accounts
*Обов'язково для email-кампаній
Array of integers. ID акаунтів email-відправників.
linkedin_accounts
Array of integers. ID акаунтів LinkedIn.
tracking
*Обов'язково для email-кампаній
Object. Налаштування відстеження email.
tracking.open
Boolean. Відстежувати відкриття email.
tracking.link_click
Boolean. Відстежувати кліки по посиланнях в email.
sending_settings
*Обов'язково для email-кампаній
Object. Контролює спосіб надсилання листів та яких отримувачів пропускати.
sending_settings.sending_priority
String enum. Які листи йдуть першими: first_email або follow_up.
sending_settings.daily_sending_all
Integer або null. Максимальна кількість листів на день по всіх отримувачах.
sending_settings.daily_sending_new_recipients
Integer або null. Максимальна кількість нових отримувачів на день.
sending_settings.skip_unverifiable
Boolean. Пропускати отримувачів, чий email не може бути верифікований.
sending_settings.skip_unverified
Boolean. Пропускати отримувачів з неверифікованими email.
sending_settings.skip_who_replied
Зупиняти подальші листи для проспектів, які відповіли.
sending_settings.skip_company_domain_who_replied
Boolean. Пропускати отримувачів з домену компанії, де хтось відповів.
sending_settings.skip_recipients_without_variables_data
Boolean. Пропускати отримувачів без значень кастомних змінних.
sending_settings.skip_other_recipients_email_addresses
Boolean. Якщо контакт має кілька email-адрес, надсилати лише на першу, якщо значення true.
sending_settings.skip_recipients_added_to_my_another_campaign
Boolean. Пропускати отримувачів, вже доданих до іншої кампанії цього користувача.
sending_settings.skip_recipients_added_to_team_another_campaign
Boolean. Пропускати отримувачів, вже доданих до іншої кампанії будь-якого члена команди.
sending_settings.one_click_unsubscribe
Boolean. Увімкнути заголовок one-click unsubscribe в листах.
recipients
*обов'язковий
Object. Визначає, хто отримує кампанію.
recipients.list_id
*обов'язковий
Integer. ID списку проспектів для надсилання.
recipients.black_list_id
Integer. ID списку «Не надсилати». Дивіться Переглянути всі контакти-винятки.
schedule_id
Integer. ID розкладу надсилання. Дивіться Переглянути всі розклади.
start_campaign_at
String (YYYY-MM-DD HH:MM:SS) або null. Дата і час автоматичного старту кампанії, наприклад 2027-03-25 09:00:00.
complete_campaign_at
String (YYYY-MM-DD HH:MM:SS) або null. Дата і час автоматичної зупинки кампанії.
timezone
String. Часовий пояс кампанії. Список підтримуваних часових поясів дивіться в таблиці Часові пояси нижче.
complete_campaign_after_last_step
*обов'язковий
Boolean. Зупинити кампанію, коли всі отримувачі пройдуть останній крок послідовності.
archive_in_months
*обов'язковий
Integer. Автоматичне архівування кампанії через вказану кількість місяців. Допустимі значення: 1, 2, 3, 6.
provider_matching
*Обов'язково для email-кампаній
Boolean. Відповідність провайдера email отримувача провайдеру акаунту відправника. Може бути true лише при наявності мінімум двох підключених email-акаунтів.
deals
Object або null. Налаштування створення CRM-угод за подіями кампанії.
deals.event
*Обов'язково при наявності deals
Array of strings. Події, що створюють угоду: open, click, reply.
deals.pipeline_id
*Обов'язково при наявності deals
Integer. ID CRM-пайплайну для створення угоди.
deals.stage_id
*Обов'язково при наявності deals
Integer. ID етапу пайплайну для розміщення угоди.
deals.potential_value
Integer. Очікувана вартість угоди.
deals.currency
String. Код валюти для значення угоди. Список підтримуваних валют дивіться в таблиці Валюти нижче.
sequence
*обов'язковий
Object. Автоматизований потік кроків, які виконує кампанія.
sequence.entry
*обов'язковий
String. _ref першого кроку для виконання.
sequence.steps
*обов'язковий
Array of objects. Упорядкований список усіх кроків послідовності.
sequence.steps._ref
*обов'язковий
String. Унікальний ідентифікатор цього кроку, що використовується для зв'язку кроків через next / yes / no.
sequence.steps.type
*обов'язковий
String enum. Тип кроку: email, delay, trigger, goal, linkedin.
sequence.steps.next
String або null. _ref кроку, до якого перейти після цього (лінійні блоки: email, linkedin, delay).
sequence.steps.yes
String. _ref кроку, до якого перейти, якщо умова тригера виконана (лише для trigger).
sequence.steps.no
String. _ref кроку, до якого перейти, якщо умова тригера не виконана (лише для trigger).
sequence.steps.waiting_type
*Обов'язково для delay / trigger
String enum. Одиниця часу для очікування: minutes, hours, days.
sequence.steps.waiting_val
*Обов'язково для delay / trigger
Integer. Кількість одиниць часу для очікування. Обмеження: minutes ≤ 43200, hours ≤ 720, days ≤ 30.
sequence.steps.action
*Обов'язково для linkedin / trigger
String enum. Дія для виконання або подія для відстеження. Дивіться підтримувані значення нижче.
sequence.steps.goal_name
*Обов'язково для goal
String. Мітка для цього цільового кроку, наприклад Replied, Connected. Блок goal має бути останнім кроком у гілці — він не може мати next і не може бути першим кроком послідовності.
sequence.steps.content_slots
*Обов'язково для email
Integer (мін. 1, макс. 15). Кількість A/B-варіантів контенту для цього email-кроку.
sequence.steps.subject
String або null. Тема email (лише для email); підтримує {{variables}}. Обов'язково для кроку linkedin з action=in_mail.
sequence.steps.body
*Обов'язково для invite / message / in_mail
String (HTML). Тіло повідомлення для LinkedIn-дій, що надсилають текст. Не може бути порожнім.
sequence.steps.value
*Обов'язково для endorse_skills
Integer (15) для endorse_skills. Масив з 1–2 унікальних цілих чисел з [1, 2, 3] для check_connection_level.
Підтримувані значення для sequence.steps.action
Тип крокуЗначення actionОпис
linkedin
visit
Відвідати профіль проспекта в LinkedIn.
linkedin
like
Лайкнути публікацію в профілі проспекта.
linkedin
follow
Підписатися на проспекта в LinkedIn.
linkedin
invite
Надіслати запит на з'єднання (потрібен body).
linkedin
message
Надіслати особисте повідомлення в LinkedIn (потрібен body).
linkedin
in_mail
Надіслати LinkedIn InMail (потрібні body та subject).
linkedin
connected_on_linkedin
Перевірити, чи прийняв проспект запит на підключення у LinkedIn.
linkedin
check_connection_level
Перевірити рівень з'єднання з проспектом.
linkedin
endorse_skills
Підтримати навички в профілі проспекта (потрібен value 1–5).
trigger
open
Очікувати, чи відкриє проспект email.
trigger
click
Очікувати, чи клікне проспект посилання в email.
trigger
calendly
Очікувати, чи запише проспект зустріч через Calendly.
trigger
connected_on_linkedin
Системний тригер. Обов'язковий після кроку connected_on_linkedin у LinkedIn. Поле next кроку connected_on_linkedin має вказувати на цей тригер.
trigger
check_connection_level
Розгалуження залежно від рівня з'єднання проспекта в LinkedIn.
trigger
linkedin_in_mail_sent
Системний тригер. Обов'язковий після кроку in_mail у LinkedIn. Поле next кроку in_mail має вказувати на цей тригер.
Часові пояси
idzonezone_time
1Pacific/Midway-11:00
2US/Samoa-11:00
3US/Hawaii-10:00
4US/Alaska-09:00
5America/Los Angeles-08:00
6America/Tijuana-08:00
7PST8PDT-08:00
8America/Chihuahua-07:00
9America/Mazatlan-07:00
10Canada/Mountain-07:00
11US/Arizona-07:00
12US/Mountain-07:00
13Canada/Saskatchewan-06:00
14America/Mexico City-06:00
15America/Monterrey-06:00
16US/Central-06:00
17America/Bogota-05:00
18America/Lima-05:00
19America/Chicago-06:00
20America/Toronto-05:00
21America/New York-05:00
22Canada/Eastern-05:00
23US/East-Indiana-05:00
24US/Eastern-05:00
25America/La Paz-04:00
26America/Santiago-03:00
27Canada/Atlantic-04:00
28America/Buenos Aires-03:00
29America/Sao Paulo-03:00
30America/Montevideo-03:00
31Canada/Newfoundland-03:30
32Atlantic/South Georgia-02:00
33Atlantic/Cape Verde-01:00
34Atlantic/Azores-01:00
35Africa/Monrovia+00:00
36UTC+00:00
37Africa/Casablanca+00:00
38Europe/Dublin+00:00
39Europe/Lisbon+00:00
40Europe/London+00:00
41Europe/Amsterdam+01:00
42Europe/Belgrade+01:00
43Europe/Berlin+01:00
44Europe/Bratislava+01:00
45Europe/Brussels+01:00
46Europe/Budapest+01:00
47Europe/Copenhagen+01:00
48Europe/Ljubljana+01:00
49Europe/Madrid+01:00
50Europe/Paris+01:00
51Europe/Prague+01:00
52Europe/Rome+01:00
53Europe/Sarajevo+01:00
54Europe/Skopje+01:00
55Europe/Stockholm+01:00
56Europe/Vienna+01:00
57Europe/Warsaw+01:00
58Europe/Zagreb+01:00
59Africa/Cairo+02:00
60Africa/Harare+02:00
61Asia/Jerusalem+02:00
62Europe/Athens+02:00
63Europe/Bucharest+02:00
64Europe/Helsinki+02:00
65Europe/Istanbul+03:00
66Europe/Kyiv+02:00
67Europe/Riga+02:00
68Europe/Sofia+02:00
69Europe/Tallinn+02:00
70Europe/Vilnius+02:00
71Africa/Nairobi+03:00
72Asia/Baghdad+03:00
73Asia/Kuwait+03:00
74Asia/Riyadh+03:00
75Europe/Minsk+03:00
76Europe/Moscow+03:00
77Europe/Volgograd+03:00
78Asia/Baku+04:00
79Asia/Dubai+04:00
80Asia/Muscat+04:00
81Asia/Tbilisi+04:00
82Asia/Yerevan+04:00
83Asia/Kabul+04:30
84Asia/Karachi+05:00
85Asia/Tashkent+05:00
86Asia/Calcutta+05:30
87Asia/Kolkata+05:30
88Asia/Kathmandu+05:45
89Asia/Almaty+06:00
90Asia/Dhaka+06:00
91Asia/Urumqi+06:00
92Asia/Rangoon+06:30
93Asia/Bangkok+07:00
94Asia/Jakarta+07:00
95Asia/Novosibirsk+07:00
96Asia/Krasnoyarsk+07:00
97Asia/Shanghai+08:00
98Asia/Hong Kong+08:00
99Asia/Chongqing+08:00
100Asia/Kuala Lumpur+08:00
101Asia/Taipei+08:00
102Asia/Ulan Bator+08:00
103Australia/Perth+08:00
104Hongkong+08:00
105Singapore+08:00
106Asia/Irkutsk+08:00
107Asia/Seoul+09:00
108Asia/Tokyo+09:00
109Asia/Yakutsk+09:00
110Australia/Adelaide+10:30
111Australia/Darwin+09:30
112Australia/Brisbane+10:00
113Australia/Canberra+11:00
114Australia/Hobart+11:00
115Australia/Melbourne+11:00
116Australia/Sydney+11:00
117Pacific/Guam+10:00
118Pacific/Port Moresby+10:00
119Asia/Vladivostok+10:00
120Asia/Magadan+11:00
121Asia/Kamchatka+12:00
122Pacific/Auckland+13:00
123Pacific/Fiji+12:00
124Pacific/Wallis+12:00
125Pacific/Tongatapu+13:00
126Pacific/Kiritimati+14:00
127Africa/Abidjan+00:00
128Africa/Accra+00:00
129Africa/Addis Ababa+03:00
130Africa/Algiers+01:00
131Africa/Asmara+03:00
132Africa/Bamako+00:00
133Africa/Bangui+01:00
134Africa/Banjul+00:00
135Africa/Bissau+00:00
136Africa/Blantyre+02:00
137Africa/Brazzaville+01:00
138Africa/Bujumbura+02:00
139Africa/Ceuta+02:00
140Africa/Conakry+00:00
141Africa/Dakar+00:00
142Africa/Dar es Salaam+03:00
143Africa/Djibouti+03:00
144Africa/Douala+01:00
145Africa/El Aaiun+01:00
146Africa/Freetown+00:00
147Africa/Gaborone+02:00
148Africa/Johannesburg+02:00
149Africa/Juba+03:00
150Africa/Kampala+03:00
151Africa/Khartoum+02:00
152Africa/Kigali+02:00
153Africa/Kinshasa+01:00
154Africa/Lagos+01:00
155Africa/Libreville+01:00
156Africa/Lome+00:00
157Africa/Luanda+01:00
158Africa/Lubumbashi+02:00
159Africa/Lusaka+02:00
160Africa/Malabo+01:00
161Africa/Maputo+02:00
162Africa/Maseru+02:00
163Africa/Mbabane+02:00
164Africa/Mogadishu+03:00
165Africa/Ndjamena+01:00
166Africa/Niamey+01:00
167Africa/Nouakchott+00:00
168Africa/Ouagadougou+00:00
169Africa/Porto-Novo+01:00
170Africa/Sao Tome+00:00
171Africa/Tripoli+02:00
172Africa/Tunis+01:00
173Africa/Windhoek+02:00
174America/Adak-09:00
175America/Anchorage-08:00
176America/Anguilla-04:00
177America/Antigua-04:00
178America/Araguaina-03:00
179America/Argentina/Buenos Aires-03:00
180America/Argentina/Catamarca-03:00
181America/Argentina/Cordoba-03:00
182America/Argentina/Jujuy-03:00
183America/Argentina/La Rioja-03:00
184America/Argentina/Mendoza-03:00
185America/Argentina/Rio Gallegos-03:00
186America/Argentina/Salta-03:00
187America/Argentina/San Juan-03:00
188America/Argentina/San Luis-03:00
189America/Argentina/Tucuman-03:00
190America/Argentina/Ushuaia-03:00
191America/Aruba-04:00
192America/Asuncion-04:00
193America/Atikokan-05:00
194America/Bahia-03:00
195America/Bahia Banderas-05:00
196America/Barbados-04:00
197America/Belem-03:00
198America/Belize-06:00
199America/Blanc-Sablon-04:00
200America/Boa Vista-04:00
201America/Boise-06:00
202America/Cambridge Bay-06:00
203America/Campo Grande-04:00
204America/Cancun-05:00
205America/Caracas-04:00
206America/Cayenne-03:00
207America/Cayman-05:00
208America/Costa Rica-06:00
209America/Creston-07:00
210America/Cuiaba-04:00
211America/Curacao-04:00
212America/Danmarkshavn+00:00
213America/Dawson-07:00
214America/Dawson Creek-07:00
215America/Denver-06:00
216America/Detroit-04:00
217America/Dominica-04:00
218America/Edmonton-06:00
219America/Eirunepe-05:00
220America/El Salvador-06:00
221America/Fort Nelson-07:00
222America/Fortaleza-03:00
223America/Glace Bay-03:00
224America/Godthab-02:00
225America/Goose Bay-03:00
226America/Grand Turk-04:00
227America/Grenada-04:00
228America/Guadeloupe-04:00
229America/Guatemala-06:00
230America/Guayaquil-05:00
231America/Guyana-04:00
232America/Halifax-03:00
233America/Havana-04:00
234America/Hermosillo-07:00
235America/Indiana/Indianapolis-04:00
236America/Indiana/Knox-05:00
237America/Indiana/Marengo-04:00
238America/Indiana/Petersburg-04:00
239America/Indiana/Tell City-05:00
240America/Indiana/Vevay-04:00
241America/Indiana/Vincennes-04:00
242America/Indiana/Winamac-04:00
243America/Inuvik-06:00
244America/Iqaluit-04:00
245America/Jamaica-05:00
246America/Juneau-08:00
247America/Kentucky/Louisville-04:00
248America/Kentucky/Monticello-04:00
249America/Kralendijk-04:00
252America/Lower Princes-04:00
253America/Maceio-03:00
254America/Managua-06:00
255America/Manaus-04:00
256America/Marigot-04:00
257America/Martinique-04:00
258America/Matamoros-05:00
259America/Menominee-05:00
260America/Merida-05:00
261America/Metlakatla-08:00
263America/Miquelon-02:00
264America/Moncton-03:00
265America/Montserrat-04:00
266America/Nassau-04:00
268America/Nipigon-04:00
269America/Nome-08:00
270America/Noronha-02:00
271America/North Dakota/Beulah-05:00
272America/North Dakota/Center-05:00
273America/North Dakota/New Salem-05:00
274America/Ojinaga-06:00
275America/Panama-05:00
276America/Pangnirtung-04:00
277America/Paramaribo-03:00
278America/Phoenix-07:00
279America/Port-au-Prince-04:00
280America/Port of Spain-04:00
281America/Porto Velho-04:00
282America/Puerto Rico-04:00
283America/Punta Arenas-03:00
284America/Rainy River-05:00
285America/Rankin Inlet-05:00
286America/Recife-03:00
287America/Regina-06:00
288America/Resolute-05:00
289America/Rio Branco-05:00
290America/Santarem-03:00
291America/Santo Domingo-04:00
293America/Scoresbysund+00:00
294America/Sitka-08:00
295America/St Barthelemy-04:00
296America/St Johns-02:30
297America/St Kitts-04:00
298America/St Lucia-04:00
299America/St Thomas-04:00
300America/St Vincent-04:00
301America/Swift Current-06:00
302America/Tegucigalpa-06:00
303America/Thule-03:00
304America/Thunder Bay-04:00
305America/Tortola-04:00
306America/Vancouver-07:00
307America/Whitehorse-07:00
308America/Winnipeg-05:00
309America/Yakutat-08:00
310America/Yellowknife-06:00
311Antarctica/Casey+08:00
312Antarctica/Davis+07:00
313Antarctica/DumontDUrville+10:00
314Antarctica/Macquarie+11:00
315Antarctica/Mawson+05:00
316Antarctica/McMurdo+12:00
317Antarctica/Palmer-03:00
318Antarctica/Rothera-03:00
319Antarctica/Syowa+03:00
320Antarctica/Troll+02:00
321Antarctica/Vostok+06:00
322Arctic/Longyearbyen+02:00
323Asia/Aden+03:00
324Asia/Amman+03:00
325Asia/Anadyr+12:00
326Asia/Aqtau+05:00
327Asia/Aqtobe+05:00
328Asia/Ashgabat+05:00
329Asia/Atyrau+05:00
330Asia/Bahrain+03:00
331Asia/Barnaul+07:00
332Asia/Beirut+03:00
333Asia/Bishkek+06:00
334Asia/Brunei+08:00
335Asia/Chita+09:00
336Asia/Choibalsan+08:00
337Asia/Colombo+05:30
338Asia/Damascus+03:00
339Asia/Dili+09:00
340Asia/Dushanbe+05:00
341Asia/Famagusta+03:00
342Asia/Gaza+03:00
343Asia/Hebron+03:00
344Asia/Ho Chi Minh+07:00
346Asia/Hovd+07:00
347Asia/Jayapura+09:00
348Asia/Khandyga+09:00
350Asia/Kuching+08:00
351Asia/Macau+08:00
352Asia/Makassar+08:00
353Asia/Manila+08:00
354Asia/Nicosia+03:00
355Asia/Novokuznetsk+07:00
356Asia/Omsk+06:00
357Asia/Oral+05:00
358Asia/Phnom Penh+07:00
359Asia/Pontianak+07:00
360Asia/Pyongyang+09:00
361Asia/Qatar+03:00
362Asia/Qostanay+06:00
363Asia/Qyzylorda+05:00
364Asia/Sakhalin+11:00
365Asia/Samarkand+05:00
366Asia/Singapore+08:00
367Asia/Srednekolymsk+11:00
368Asia/Tehran+04:30
369Asia/Thimphu+06:00
370Asia/Tomsk+07:00
371Asia/Ulaanbaatar+08:00
372Asia/Ust-Nera+10:00
373Asia/Vientiane+07:00
374Asia/Yangon+06:30
375Asia/Yekaterinburg+05:00
376Atlantic/Bermuda-03:00
377Atlantic/Canary+01:00
379Atlantic/Faroe+01:00
380Atlantic/Madeira+01:00
381Atlantic/Reykjavik+00:00
383Atlantic/St Helena+00:00
384Atlantic/Stanley-03:00
385Australia/Broken Hill+09:30
386Australia/Currie+10:00
387Australia/Eucla+08:45
388Australia/Lindeman+10:00
389Australia/Lord Howe+10:30
390Europe/Andorra+02:00
391Europe/Astrakhan+04:00
392Europe/Busingen+02:00
393Europe/Chisinau+03:00
394Europe/Gibraltar+02:00
395Europe/Guernsey+01:00
396Europe/Isle of Man+01:00
397Europe/Jersey+01:00
398Europe/Kaliningrad+02:00
399Europe/Kirov+03:00
400Europe/Luxembourg+02:00
401Europe/Malta+02:00
402Europe/Mariehamn+03:00
403Europe/Monaco+02:00
404Europe/Oslo+02:00
405Europe/Podgorica+02:00
406Europe/Samara+04:00
407Europe/San Marino+02:00
408Europe/Saratov+04:00
409Europe/Simferopol+03:00
410Europe/Tirane+02:00
411Europe/Ulyanovsk+04:00
412Europe/Uzhgorod+03:00
413Europe/Vaduz+02:00
414Europe/Vatican+02:00
415Europe/Zaporozhye+03:00
416Europe/Zurich+02:00
417Indian/Antananarivo+03:00
418Indian/Chagos+06:00
419Indian/Christmas+07:00
420Indian/Cocos+06:30
421Indian/Comoro+03:00
422Indian/Kerguelen+05:00
423Indian/Mahe+04:00
424Indian/Maldives+05:00
425Indian/Mauritius+04:00
426Indian/Mayotte+03:00
427Indian/Reunion+04:00
428Pacific/Apia+13:00
429Pacific/Bougainville+11:00
430Pacific/Chatham+12:45
431Pacific/Chuuk+10:00
432Pacific/Easter-06:00
433Pacific/Efate+11:00
434Pacific/Enderbury+13:00
435Pacific/Fakaofo+13:00
436Pacific/Funafuti+12:00
437Pacific/Galapagos-06:00
438Pacific/Gambier-09:00
439Pacific/Guadalcanal+11:00
440Pacific/Honolulu-10:00
441Pacific/Kosrae+11:00
442Pacific/Kwajalein+12:00
443Pacific/Majuro+12:00
444Pacific/Marquesas-09:30
445Pacific/Nauru+12:00
446Pacific/Niue-11:00
447Pacific/Norfolk+11:00
448Pacific/Noumea+11:00
449Pacific/Pago Pago-11:00
450Pacific/Palau+09:00
451Pacific/Pitcairn-08:00
452Pacific/Pohnpei+11:00
454Pacific/Rarotonga-10:00
455Pacific/Saipan+10:00
456Pacific/Tahiti-10:00
457Pacific/Tarawa+12:00
458Pacific/Wake+12:00
Валюти
idnamecodesymbol
1US DollarUSD$
2Canadian DollarCADCA$
3EuroEUR
4United Arab Emirates DirhamAEDAED
5Afghan AfghaniAFNAf
6Albanian LekALLALL
7Armenian DramAMDAMD
8Argentine PesoARSAR$
9Australian DollarAUDAU$
10Azerbaijani ManatAZNman.
11Bosnia-Herzegovina Convertible MarkBAMKM
12Bangladeshi TakaBDTTk
13Bulgarian LevBGNBGN
14Bahraini DinarBHDBD
15Burundian FrancBIFFBu
16Brunei DollarBNDBN$
17Bolivian BolivianoBOBBs
18Brazilian RealBRLR$
19Botswanan PulaBWPBWP
20Belarusian RubleBYNBr
21Belize DollarBZDBZ$
22Congolese FrancCDFCDF
23Swiss FrancCHFCHF
24Chilean PesoCLPCL$
25Chinese YuanCNYCN¥
26Colombian PesoCOPCO$
27Costa Rican ColónCRC
28Cape Verdean EscudoCVECV$
29Czech Republic KorunaCZK
30Djiboutian FrancDJFFdj
31Danish KroneDKKDkr
32Dominican PesoDOPRD$
33Algerian DinarDZDDA
34Estonian KroonEEKEkr
35Egyptian PoundEGPEGP
36Eritrean NakfaERNNfk
37Ethiopian BirrETBBr
38British Pound SterlingGBP£
39Georgian LariGELGEL
40Ghanaian CediGHSGH₵
41Guinean FrancGNFFG
42Guatemalan QuetzalGTQGTQ
43Hong Kong DollarHKDHK$
44Honduran LempiraHNLHNL
45Croatian KunaHRKkn
46Hungarian ForintHUFFt
47Indonesian RupiahIDRRp
48Israeli New SheqelILS
49Indian RupeeINRRs
50Iraqi DinarIQDIQD
51Iranian RialIRRIRR
52Icelandic KrónaISKIkr
53Jamaican DollarJMDJ$
54Jordanian DinarJODJD
55Japanese YenJPY¥
56Kenyan ShillingKESKsh
57Cambodian RielKHRKHR
58Comorian FrancKMFCF
59South Korean WonKRW
60Kuwaiti DinarKWDKD
61Kazakhstani TengeKZTKZT
62Lebanese PoundLBPLB£
63Sri Lankan RupeeLKRSLRs
64Lithuanian LitasLTLLt
65Latvian LatsLVLLs
66Libyan DinarLYDLD
67Moroccan DirhamMADMAD
68Moldovan LeuMDLMDL
69Malagasy AriaryMGAMGA
70Macedonian DenarMKDMKD
71Myanma KyatMMKMMK
72Macanese PatacaMOPMOP$
73Mauritian RupeeMURMURs
74Mexican PesoMXNMX$
75Malaysian RinggitMYRRM
76Mozambican MeticalMZNMTn
77Namibian DollarNADN$
78Nigerian NairaNGN
79Nicaraguan CórdobaNIOC$
80Norwegian KroneNOKNkr
81Nepalese RupeeNPRNPRs
82New Zealand DollarNZDNZ$
83Omani RialOMROMR
84Panamanian BalboaPABB/.
85Peruvian Nuevo SolPENS/.
86Philippine PesoPHP
87Pakistani RupeePKRPKRs
88Polish ZlotyPLN
89Paraguayan GuaraniPYG
90Qatari RialQARQR
91Romanian LeuRONRON
92Serbian DinarRSDdin.
93Russian RubleRUBRUB
94Rwandan FrancRWFRWF
95Saudi RiyalSARSR
96Sudanese PoundSDGSDG
97Swedish KronaSEKSkr
98Singapore DollarSGDS$
99Somali ShillingSOSSsh
100Syrian PoundSYPSY£
101Thai BahtTHB฿
102Tunisian DinarTNDDT
103Tongan PaʻangaTOPT$
104Turkish LiraTRYTL
105Trinidad and Tobago DollarTTDTT$
106New Taiwan DollarTWDNT$
107Tanzanian ShillingTZSTSh
108Ukrainian HryvniaUAH
109Ugandan ShillingUGXUSh
110Uruguayan PesoUYU$U
111Uzbekistan SomUZSUZS
112Venezuelan BolívarVEFBs.F.
113Vietnamese DongVND
114CFA Franc BEACXAFFCFA
115CFA Franc BCEAOXOFCFA
116Yemeni RialYERYR
117South African RandZARR
118Zambian KwachaZMKZK
119Zimbabwean DollarZWLZWL$
Приклади коду
<?php
function createCampaign() {
    $token = getAccessToken();

    $requestParameters = [
        'title'             => 'My top campaign',
        'email_accounts'    => [649079],
        'linkedin_accounts' => [],
        'priority'          => 'high',
        'tracking' => [
            'open'       => true,
            'link_click' => true
        ],
        'sending_settings' => [
            'sending_priority'                               => 'first_email',
            'daily_sending_all'                              => 10,
            'daily_sending_new_recipients'                   => 5,
            'skip_unverifiable'                              => true,
            'skip_unverified'                                => false,
            'skip_who_replied'                               => true,
            'skip_company_domain_who_replied'                => false,
            'skip_recipients_without_variables_data'         => true,
            'skip_other_recipients_email_addresses'          => true,
            'skip_recipients_added_to_my_another_campaign'   => false,
            'skip_recipients_added_to_team_another_campaign' => false,
            'one_click_unsubscribe'                          => true,
            'delay_type'                                     => 'random',
            'delay_from'                                     => 600,
            'delay_to'                                       => 900
        ],
        'recipients' => [
            'list_id'       => 32,
            'black_list_id' => 8
        ],
        'schedule_id'                       => 4,
        'start_campaign_at'                 => '2027-03-25 09:00:00',
        'complete_campaign_at'              => '2027-03-28 06:00:00',
        'timezone'                          => 'America/New_York',
        'complete_campaign_after_last_step' => false,
        'archive_in_months'                 => 3,
        'provider_matching'                 => false,
        'sequence' => [
            'entry' => '1773996379996',
            'steps' => [
                [
                    '_ref'          => '1773996379996',
                    'type'          => 'email',
                    'content_slots' => 3,
                    'next'          => '1774364404811'
                ],
                [
                    '_ref'      => '1774364404811',
                    'type'      => 'goal',
                    'goal_name' => 'end'
                ]
            ]
        ]
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/campaigns/create',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => json_encode($requestParameters),
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
import json
import requests

def create_campaign():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    request_parameters = {
        'title': 'My top campaign',
        'email_accounts': [649079],
        'linkedin_accounts': [],
        'priority': 'high',
        'tracking': {
            'open': True,
            'link_click': True
        },
        'sending_settings': {
            'sending_priority': 'first_email',
            'daily_sending_all': 10,
            'daily_sending_new_recipients': 5,
            'skip_unverifiable': True,
            'skip_unverified': False,
            'skip_who_replied': True,
            'skip_company_domain_who_replied': False,
            'skip_recipients_without_variables_data': True,
            'skip_other_recipients_email_addresses': True,
            'skip_recipients_added_to_my_another_campaign': False,
            'skip_recipients_added_to_team_another_campaign': False,
            'one_click_unsubscribe': True,
            'delay_type': 'random',
            'delay_from': 600,
            'delay_to': 900
        },
        'recipients': {
            'list_id': 32,
            'black_list_id': 8
        },
        'schedule_id': 4,
        'start_campaign_at': '2027-03-25 09:00:00',
        'complete_campaign_at': '2027-03-28 06:00:00',
        'timezone': 'America/New_York',
        'complete_campaign_after_last_step': False,
        'archive_in_months': 3,
        'provider_matching': False,
        'sequence': {
            'entry': '1773996379996',
            'steps': [
                {
                    '_ref': '1773996379996',
                    'type': 'email',
                    'content_slots': 3,
                    'next': '1774364404811'
                },
                {
                    '_ref': '1774364404811',
                    'type': 'goal',
                    'goal_name': 'end'
                }
            ]
        }
    }

    res = requests.post(
        'https://api.snov.io/v2/campaigns/create',
        json=request_parameters,
        headers=headers
    )

    return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "id": 37505,
        "status": "new",
        "title": "My top campaign",
        "email_accounts": [649079],
        "linkedin_accounts": [],
        "priority": "high",
        "tracking": {
            "open": true,
            "link_click": true
        },
        "sending_settings": {
            "sending_priority": "first_email",
            "daily_sending_all": 10,
            "daily_sending_new_recipients": 5,
            "skip_unverifiable": true,
            "skip_unverified": false,
            "skip_who_replied": true,
            "skip_company_domain_who_replied": false,
            "skip_recipients_without_variables_data": true,
            "skip_other_recipients_email_addresses": true,
            "skip_recipients_added_to_my_another_campaign": false,
            "skip_recipients_added_to_team_another_campaign": false,
            "one_click_unsubscribe": true,
            "delay_type": "random",
            "delay_from": 600,
            "delay_to": 900
        },
        "recipients": {
            "list_id": 32,
            "black_list_id": 8
        },
        "schedule_id": 4,
        "start_campaign_at": "2027-03-25 09:00:00",
        "complete_campaign_at": "2027-03-28 06:00:00",
        "timezone": "America/New_York",
        "complete_campaign_after_last_step": false,
        "archive_in_months": 3,
        "provider_matching": false,
        "sequence": {
            "entry": "1773996379996",
            "steps": [
                {
                    "_ref": "1773996379996",
                    "type": "email",
                    "content_slots": 3,
                    "content": [
                        { "id": 17739963799960, "plain_text": false, "usage": "active" },
                        { "id": 17739963799961, "plain_text": false, "usage": "active" },
                        { "id": 17739963799962, "plain_text": false, "usage": "active" }
                    ],
                    "next": "1774364404811"
                },
                {
                    "_ref": "1774364404811",
                    "type": "goal",
                    "goal_name": "end"
                }
            ]
        }
    }
}
Параметри відповіді
success
Boolean. true, якщо кампанію створено.
data.id
ID створеної кампанії.
data.status
Статус кампанії. Нові кампанії повертаються зі статусом new.
data.title
Назва кампанії.
data.email_accounts
Масив ID акаунтів email-відправників, прикріплених до кампанії.
data.linkedin_accounts
Масив ID акаунтів LinkedIn, прикріплених до кампанії.
data.priority
Пріоритет кампанії (low, medium, high).
data.tracking
Налаштування відстеження email (open, link_click).
data.sending_settings
Налаштування надсилання, повернені сервером точно так, як були прийняті, включаючи конфігурацію затримки.
data.recipients
Списки отримувачів (list_id, black_list_id).
data.schedule_id
ID розкладу надсилання, прикріпленого до кампанії, або null.
data.start_campaign_at
Дата і час початку надсилання кампанії.
data.complete_campaign_at
Дата і час зупинки надсилання кампанії.
data.timezone
Ідентифікатор часового поясу кампанії.
data.complete_campaign_after_last_step
Чи завершується кампанія автоматично після доставки останнього кроку.
data.archive_in_months
Період автоархівування в місяцях.
data.provider_matching
Чи увімкнено відповідність провайдера email.
data.sequence
Схема кампанії, повернена у тій самій структурі. Кожен крок email доповнюється масивом content, що описує згенеровані слоти контенту (id, plain_text, usage).
data.deals
Налаштування створення угод, присутні лише якщо deals було передано в запиті.

GETІнформація про кампанію

Цей метод дозволяє отримати інформацію про конкретну кампанію: підключені акаунти відправників, налаштування відправки, інформацію про список отримувачів та деталі кроків послідовності.

Запит
GEThttps://api.snov.io/v2/campaigns/{campaign_id}
Вхідні параметри
campaign_id
*обов'язковий
Унікальний ідентифікатор кампанії, для якої ви хочете переглянути інформацію.
Приклади коду
<?php
function getCampaign(int $campaignId)
{
    $token = getAccessToken();

    $url = 'https://api.snov.io/v2/campaigns/' . $campaignId;

    $options = [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;
}
?>
import requests, json

def get_campaign(campaign_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    url = 'https://api.snov.io/v2/campaigns/' + str(campaign_id)

    res = requests.get(url, headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "id": 37505,
        "status": "new",
        "title": "My top campaign",
        "email_accounts": [649079],
        "linkedin_accounts": [],
        "priority": "high",
        "tracking": {
            "open": true,
            "link_click": true
        },
        "sending_settings": {
            "sending_priority": "first_email",
            "daily_sending_all": 10,
            "daily_sending_new_recipients": 5,
            "skip_unverifiable": true,
            "skip_unverified": false,
            "skip_who_replied": true,
            "skip_company_domain_who_replied": false,
            "skip_recipients_without_variables_data": true,
            "skip_other_recipients_email_addresses": true,
            "skip_recipients_added_to_my_another_campaign": false,
            "skip_recipients_added_to_team_another_campaign": false,
            "one_click_unsubscribe": true
        },
        "recipients": {
            "list_id": 32,
            "black_list_id": 8
        },
        "schedule_id": 4,
        "start_campaign_at": "2027-03-25 09:00:00",
        "complete_campaign_at": "2027-03-28 06:00:00",
        "timezone": "America/New_York",
        "complete_campaign_after_last_step": false,
        "archive_in_months": 3,
        "provider_matching": false,
        "sequence": {
            "entry": "1773996379996",
            "steps": [
                {
                    "_ref": "1773996379996",
                    "type": "email",
                    "content_slots": 3,
                    "content": [
                        { "id": 17739963799960, "plain_text": false, "usage": "active" },
                        { "id": 17739963799961, "plain_text": false, "usage": "active" },
                        { "id": 17739963799962, "plain_text": false, "usage": "active" }
                    ],
                    "next": "1774364404811"
                },
                {
                    "_ref": "1774364404811",
                    "type": "goal",
                    "goal_name": "end"
                }
            ]
        }
    }
}
Параметри відповіді
success
Boolean. true, якщо інформацію про кампанію успішно отримано.
data.id
ID кампанії.
data.status
Статус кампанії. Новостворені кампанії повертаються зі статусом new.
data.title
Назва кампанії.
data.email_accounts
Масив ID акаунтів електронної пошти відправника, прикріплених до кампанії.
data.linkedin_accounts
Масив ID акаунтів LinkedIn, прикріплених до кампанії.
data.priority
Пріоритет кампанії (low, medium, high).
data.tracking
Налаштування відстеження електронних листів (open, link_click).
data.sending_settings
Налаштування відправки, повернуті в точності так, як були прийняті сервером, включаючи конфігурацію затримки.
data.recipients
Списки отримувачів (list_id, black_list_id).
data.schedule_id
ID розкладу відправки, прикріпленого до кампанії, або null.
data.start_campaign_at
Дата і час початку відправки кампанії.
data.complete_campaign_at
Дата і час завершення відправки кампанії.
data.timezone
Ідентифікатор часового поясу, в якому працює кампанія.
data.complete_campaign_after_last_step
Чи завершується кампанія автоматично після доставки останнього кроку.
data.archive_in_months
Період автоматичного архівування в місяцях.
data.provider_matching
Чи увімкнено відповідність провайдерів електронної пошти.
data.sequence
Блок-схема кампанії, повернута з тією ж структурою. Кожен крок email доповнено масивом content з описом згенерованих слотів контенту (id, plain_text, usage).
data.deals
Налаштування створення угод, присутні лише якщо deals було передано в запиті.

PATCHОновити кампанію

Цей метод частково оновлює існуючу outreach-кампанію у вашому workspace snov.io. Змінюються лише поля, включені до тіла запиту; пропущені поля залишаються без змін. Вкладені об'єкти (tracking, sending_settings, recipients, deals) також об'єднуються — надсилання {"tracking": {"open": false}} не очищує link_click. Тіло запиту має таку ж структуру, що й Create campaign, тому можна надіслати будь-яке підмножину з title, priority, email_accounts, linkedin_accounts, tracking, sending_settings, recipients, schedule_id, start_campaign_at, complete_campaign_at, timezone, complete_campaign_after_last_step, archive_in_months, provider_matching, sequence та deals.

Основні налаштування (позначені (core) нижче) доступні для запису лише поки кампанія перебуває у стані new (чернетка) — вони блокуються після переходу кампанії до стану paused, active, scheduled, completed або archived.

Якщо надається sequence, масив повністю замінює наявну блок-схему. Кроки, чий _ref збігається з існуючим числовим ID кроку, оновлюються на місці; кроки з нечисловим _ref створюються як нові; будь-які існуючі кроки, відсутні в масиві, видаляються.

Запит
PATCHhttps://api.snov.io/v2/campaigns/{campaign_id}
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії для оновлення.
title
Рядок. Відображувана назва кампанії. Максимум 255 символів.
priority
Рядковий enum. Пріоритет надсилання: low, medium, high.
email_accounts
Масив цілих чисел. ID облікових записів відправника email. Не можна додати email-акаунти, якщо активна кампанія не містить email-кроків.
linkedin_accounts
Масив цілих чисел. ID облікових записів LinkedIn. Не можна додати LinkedIn-акаунти, якщо активна кампанія не містить LinkedIn-кроків.
provider_matching
Булевий. Зіставляти провайдера email одержувача з провайдером акаунту відправника. Завжди false для кампаній лише з LinkedIn.
complete_campaign_after_last_step
Булевий. Зупинити кампанію після того, як усі одержувачі пройдуть останній крок послідовності.
archive_in_months
Ціле число. Автоматично архівувати після вказаної кількості місяців. Допустимі значення: 1, 2, 3, 6.
schedule_id
Ціле число або null. ID розкладу надсилання. Неіснуючий ID повертає 404/422.
start_campaign_at
Рядок (YYYY-MM-DD HH:MM:SS) або null. Дата та час автоматичного запуску кампанії. Не можна додати, якщо поле було відсутнє при створенні; null не змінює наявне значення.
complete_campaign_at
Рядок (YYYY-MM-DD HH:MM:SS) або null. Дата та час автоматичного завершення кампанії. Має бути пізніше за start_campaign_at. null не змінює наявне значення.
timezone
Рядок або null. Часовий пояс для полів дати; приймає ідентифікатори часових поясів IANA у форматі Region/City, наприклад America/New_York. Набирає чинності лише якщо в кампанії присутнє поле start_campaign_at.
recipients
(core)
Об'єкт. Налаштування одержувачів. Заблоковано в запущених кампаніях, доступно в чернетці.
recipients.list_id
(core)
Ціле число. ID списку проспектів.
recipients.black_list_id
(core)
Ціле число або null. ID чорного списку для виключення.
tracking
Об'єкт. Налаштування відстеження email. Ігнорується для кампаній лише з LinkedIn.
tracking.open
Булевий. Відстежувати відкриття листів.
tracking.link_click
Булевий. Відстежувати кліки по посиланнях в листах.
sending_settings
Об'єкт. Керує способом надсилання листів та пропуском одержувачів.
sending_settings.sending_priority
Рядковий enum. Які листи йдуть першими: first_email або follow_up.
sending_settings.daily_sending_all
Ціле число або null. Максимальна кількість листів на день для всіх одержувачів. null знімає ліміт.
sending_settings.daily_sending_new_recipients
Ціле число або null. Максимальна кількість нових одержувачів на день. null знімає ліміт.
sending_settings.skip_who_replied
Булевий. Припинити follow-up для проспектів, які відповіли.
sending_settings.skip_company_domain_who_replied
Булевий. Пропускати одержувачів з домену компанії, де хтось відповів.
sending_settings.skip_unverifiable
(core)
Булевий. Пропускати одержувачів, email яких неможливо перевірити. Заблоковано в запущених кампаніях.
sending_settings.skip_unverified
(core)
Булевий. Пропускати одержувачів з неперевіреними email. Заблоковано в запущених кампаніях.
sending_settings.skip_other_recipients_email_addresses
(core)
Булевий. Якщо проспект має кілька email-адрес, надсилати лише на першу при значенні true. Заблоковано в запущених кампаніях.
sending_settings.skip_recipients_added_to_my_another_campaign
(core)
Булевий. Пропускати одержувачів, які вже беруть участь в іншій кампанії цього користувача. Заблоковано в запущених кампаніях.
sending_settings.skip_recipients_added_to_team_another_campaign
(core)
Булевий. Пропускати одержувачів, які беруть участь в кампанії будь-якого члена команди. Заблоковано в запущених кампаніях.
sending_settings.skip_recipients_without_variables_data
Булевий. Пропускати одержувачів, у яких відсутні значення змінних.
sending_settings.one_click_unsubscribe
Булевий. Увімкнути заголовок відписки одним кліком у листах.
deals
Об'єкт або null. Налаштування створення deal в CRM. Передайте null, щоб видалити конфігурацію deals.
deals.event
*Обов'язково для deals
Масив рядків. Події, що створюють deal: open, click, reply.
deals.pipeline_id
*Обов'язково для deals
Ціле число. ID pipeline в CRM.
deals.stage_id
*Обов'язково для deals
Ціле число. ID етапу pipeline.
deals.potential_value
Ціле число. Прогнозована цінність deal. Має бути позитивним.
deals.currency
Рядок. Код валюти для значення deal, наприклад USD, EUR.
sequence
Об'єкт. Повна заміна послідовності кампанії — при наданні замінює всю блок-схему.
sequence.entry
*Обов'язково для sequence
Рядок. _ref першого кроку для виконання.
sequence.steps
*Обов'язково для sequence
Масив об'єктів кроків. Повний список кроків.
sequence.steps._ref
*обов'язковий
Рядок. Ідентифікатор кроку. Числовий _ref оновлює існуючий крок; нечисловий _ref створює новий крок.
sequence.steps.type
*обов'язковий
Рядковий enum. Тип кроку: email, delay, trigger, goal, linkedin. Не можна змінити для існуючих кроків (числовий _ref).
sequence.steps.next
Рядок або null. _ref кроку, до якого перейти після цього (лінійні блоки: email, linkedin, delay).
sequence.steps.yes
Рядок. _ref кроку, до якого перейти при виконанні умови тригера (лише trigger).
sequence.steps.no
Рядок. _ref кроку, до якого перейти при невиконанні умови тригера (лише trigger).
sequence.steps.waiting_type
*Обов'язково для delay / trigger
Рядковий enum. Одиниця часу: minutes, hours, days.
sequence.steps.waiting_val
*Обов'язково для delay / trigger
Ціле число. Кількість одиниць часу для очікування. Мін 1 для кроків delay та trigger. Обмеження за одиницями: minutes ≤ 43200, hours ≤ 720, days ≤ 30.
sequence.steps.action
*Обов'язково для linkedin / trigger
Рядковий enum. Дія для виконання або подія для відстеження. Дивіться підтримувані значення нижче.
sequence.steps.goal_name
*Обов'язково для goal
Рядок. Мітка для цього кроку мети, наприклад Replied, Connected. Блок goal має бути останнім кроком у своїй гілці — він не може мати next і не може бути першим кроком послідовності.
sequence.steps.content_slots
*Обов'язково для email
Ціле число (мін 1, макс 15). Кількість варіантів A/B-контенту.
sequence.steps.content
*Обов'язково для email при оновленні існуючих кроків
Масив об'єктів. Метадані контенту скопійовані з відповіді GET; кожен елемент: {"id": <int>, "plain_text": <bool>, "usage": "active"}.
sequence.steps.subject
Рядок або null. Тема листа або InMail; підтримує {{variables}}. Необов'язково для email; обов'язково для кроку linkedin з action=in_mail.
sequence.steps.body
*Обов'язково для invite / message / in_mail
Рядок (HTML). Тіло повідомлення для LinkedIn-дій, що надсилають текст.
sequence.steps.value
*Обов'язково для endorse_skills / check_connection_level
Ціле число (15) для endorse_skills; масив цілих чисел (допустимі рівні зв'язку) для тригера check_connection_level.
Підтримувані значення для sequence.steps.action
linkedinvisitВідвідати профіль LinkedIn проспекта.
linkedinlikeПоставити вподобання публікації в профілі проспекта.
linkedinfollowПідписатися на проспекта в LinkedIn.
linkedininviteНадіслати запит на зв'язок (потребує body).
linkedinmessageНадіслати пряме повідомлення LinkedIn (потребує body).
linkedinin_mailНадіслати InMail LinkedIn (потребує body та subject; має слідувати за тригером linkedin_in_mail_sent).
linkedinconnected_on_linkedinПеревіряє, чи прийняв проспект запит на підключення в LinkedIn.
linkedincheck_connection_levelПеревірити ступінь зв'язку проспекта.
linkedinendorse_skillsПідтвердити навички в профілі проспекта (потребує value 1–5).
triggeropenЧекати, чи відкриє проспект email.
triggerclickЧекати, чи натисне проспект на посилання в email.
triggercalendlyЧекати, чи запишеться проспект через Calendly (має йти після email-кроку; макс 30 днів).
triggerconnected_on_linkedinСистемний тригер. Обов'язковий після кроку LinkedIn connected_on_linkedin. Поле next кроку connected_on_linkedin має вказувати на цей тригер.
triggercheck_connection_levelРозгалуження залежно від ступеня зв'язку LinkedIn проспекта (потребує value: масив допустимих рівнів зв'язку).
triggerlinkedin_in_mail_sentСистемний тригер. Обов'язковий після кроку LinkedIn in_mail. Поле next кроку in_mail має вказувати на цей тригер.
Приклади коду
<?php
function updateCampaign($campaignId)
{
    $token = getAccessToken();

    $requestParameters = [
        'title'    => 'Updated title via API',
        'priority' => 'medium',
        'tracking' => [
            'open'       => true,
            'link_click' => false
        ],
        'sending_settings' => [
            'sending_priority'             => 'follow_up',
            'daily_sending_all'            => null,
            'daily_sending_new_recipients' => 15,
            'skip_who_replied'             => true
        ]
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/campaigns/' . $campaignId,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => 'PATCH',
        CURLOPT_POSTFIELDS     => json_encode($requestParameters),
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def update_campaign(campaign_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    request_parameters = {
        'title': 'Updated title via API',
        'priority': 'medium',
        'tracking': {
            'open': True,
            'link_click': False
        },
        'sending_settings': {
            'sending_priority': 'follow_up',
            'daily_sending_all': None,
            'daily_sending_new_recipients': 15,
            'skip_who_replied': True
        }
    }

    res = requests.patch(
        f'https://api.snov.io/v2/campaigns/{campaign_id}',
        json=request_parameters,
        headers=headers
    )
    return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "id": 41816,
        "status": "new",
        "title": "Updated title via API",
        "email_accounts": [18061],
        "linkedin_accounts": [],
        "priority": "medium",
        "tracking": {
            "open": true,
            "link_click": false
        },
        "sending_settings": {
            "sending_priority": "follow_up",
            "daily_sending_all": null,
            "daily_sending_new_recipients": 15,
            "skip_unverifiable": true,
            "skip_unverified": true,
            "skip_who_replied": true,
            "skip_company_domain_who_replied": false,
            "skip_recipients_without_variables_data": false,
            "skip_other_recipients_email_addresses": false,
            "skip_recipients_added_to_my_another_campaign": false,
            "skip_recipients_added_to_team_another_campaign": false,
            "one_click_unsubscribe": false
        },
        "recipients": {
            "list_id": 857538,
            "black_list_id": 392812
        },
        "schedule_id": 1074,
        "start_campaign_at": "2030-06-01 00:00:00",
        "complete_campaign_at": "2030-10-01 01:00:00",
        "timezone": "UTC",
        "complete_campaign_after_last_step": false,
        "archive_in_months": 3,
        "provider_matching": false,
        "sequence": {
            "entry": "1778676939",
            "steps": [
                {
                    "_ref": "1778676939",
                    "type": "email",
                    "content_slots": 1,
                    "content": [
                        { "id": 17786769390, "plain_text": false, "usage": "active" }
                    ],
                    "next": "1778676940"
                },
                {
                    "_ref": "1778676940",
                    "type": "goal",
                    "goal_name": "end"
                }
            ]
        }
    }
}
Параметри відповіді
success
Булевий. true, якщо кампанію було оновлено.
data.id
ID оновленої кампанії.
data.status
Поточний статус кампанії.
data.title
Назва кампанії.
data.email_accounts
Масив ID email-акаунтів відправника, прив'язаних до кампанії.
data.linkedin_accounts
Масив ID LinkedIn-акаунтів, прив'язаних до кампанії.
data.priority
Пріоритет кампанії (low, medium, high).
data.tracking
Налаштування відстеження email (open, link_click).
data.sending_settings
Налаштування надсилання, повернені точно так, як збережені на сервері після оновлення.
data.recipients
Списки одержувачів (list_id, black_list_id).
data.schedule_id
ID розкладу надсилання, прив'язаного до кампанії, або null.
data.start_campaign_at
Дата та час початку надсилання кампанії.
data.complete_campaign_at
Дата та час завершення надсилання кампанії.
data.timezone
Ідентифікатор часового поясу кампанії.
data.complete_campaign_after_last_step
Чи автоматично завершується кампанія після доставки останнього кроку.
data.archive_in_months
Період автоматичного архівування в місяцях.
data.provider_matching
Чи увімкнено зіставлення провайдера email.
data.sequence
Блок-схема кампанії, повернена з тією ж структурою після узгодження. Кожен крок email доповнюється масивом content, що описує слоти контенту (id, plain_text, usage).
data.deals
Налаштування створення deals, присутні лише якщо в кампанії налаштовано deals.

POSTЗмінити стан кампанії

Безплатно

Цей метод дозволяє керувати станом кампанії — запустити, призупинити, завершити або архівувати її.

Запит
POSThttps://api.snov.io/v2/campaigns/{campaign_id}/action
Вхідні параметри
campaign_id
*обов'язковий (path)
Унікальний ідентифікатор кампанії, стан якої ви хочете змінити.
action
Стан, у який можна перевести кампанію. Допустимі значення: start, pause, resume, complete, archived.
Приклади коду
<?php

$campaignId = 123;
$apiUrl = 'https://api.snov.io/v2/campaigns/' . $campaignId . '/action';

$ch = curl_init($apiUrl);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $accessToken,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['action' => 'start']),
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);
import requests

campaign_id = 123
api_url = f'https://api.snov.io/v2/campaigns/{campaign_id}/action'

response = requests.post(
    api_url,
    headers={'Authorization': f'Bearer {access_token}'},
    json={'action': 'start'},
)

print(response.json())
Приклад відповіді
{
  "success": true
}
Параметри відповіді
success
Може повертати true або false залежно від результату виконання.
errors
Список помилок, що виникли під час зміни стану кампанії.

DELETEВидалити кампанію

Цей метод видаляє кампанію за її ID. Видалення дозволено лише для кампаній зі статусом new (чернетка), complete або archived — кампанії зі статусом active, pause або scheduled не можна видалити, поки вони не зупинені.

Запит
DELETEhttps://api.snov.io/v2/campaigns/{campaign_id}
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії для видалення.
Приклади коду
<?php
function deleteCampaign($campaignId)
{
    $token = getAccessToken();

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/campaigns/' . $campaignId,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => 'DELETE',
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def delete_campaign(campaign_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.delete(
        f'https://api.snov.io/v2/campaigns/{campaign_id}',
        headers=headers
    )
    return json.loads(res.text)
Приклад відповіді
{
    "success": true
}
Параметри відповіді
success
Булевий. true, якщо кампанію було видалено.

Вміст кроку електронної пошти

Ці методи дозволяють керувати блоками вмісту (темою та тілом листа) кроків електронної пошти в послідовності кампанії. Вміст можна змінювати лише тоді, коли кампанія має статус new, paused або scheduled. Кожен крок повинен мати принаймні один блок вмісту.

GETПереглянути всі розклади

Безплатно

Метод показує список усіх розкладів кампаній.

Запит
GEThttps://api.snov.io/v2/campaigns/schedules
Вхідні параметри
Цей метод не має вхідних параметрів.
Приклади коду
<?php
function getCampaignSchedules()
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/campaigns/schedules',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_campaign_schedules():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get('https://api.snov.io/v2/campaigns/schedules', headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 1074,
            "name": "UA Monday & Saturday",
            "timezone": "Europe/Kyiv",
            "days": [
                {
                    "day": "sunday",
                    "enabled": false,
                    "start_time": "09:00",
                    "end_time": "18:00"
                },
                {
                    "day": "monday",
                    "enabled": true,
                    "start_time": "09:00",
                    "end_time": "17:00"
                },
                {
                    "day": "tuesday",
                    "enabled": false,
                    "start_time": "09:00",
                    "end_time": "18:00"
                },
                {
                    "day": "wednesday",
                    "enabled": false,
                    "start_time": "09:00",
                    "end_time": "18:00"
                },
                {
                    "day": "thursday",
                    "enabled": false,
                    "start_time": "09:00",
                    "end_time": "18:00"
                },
                {
                    "day": "friday",
                    "enabled": false,
                    "start_time": "09:00",
                    "end_time": "18:00"
                },
                {
                    "day": "saturday",
                    "enabled": true,
                    "start_time": "11:00",
                    "end_time": "16:30"
                }
            ]
        }
    ]
}
Параметри відповіді
id
Унікальний ID розкладу.
name
Назва розкладу.
timezone
Часовий пояс, за яким працює розклад.
days
Масив доступних днів та годин надсилання для розкладу
day
День тижня.
enabled
Показує true, якщо надсилання в цей день дозволено. Повертає false, якщо надсилання в цей день заборонено.
start_time
Час початку розкладу в цей день.
end_time
Час завершення розкладу в цей день.

POSTСтворити вміст кроку email

Безплатно

Цей метод створює або оновлює блок вмісту для кроку email-послідовності в кампанії. Якщо блок вмісту з вказаним content_id вже існує, він буде перезаписаний. Вміст можна змінювати лише коли кампанія перебуває у стані new, paused або scheduled.

Запит
POSThttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/create
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії.
step_id
*обов'язковий (path)
Ціле число. ID кроку email-послідовності.
content_id
*обов'язковий
Ціле число. ID блоку вмісту для запису. Повторне надсилання того ж content_id перезаписує існуючий блок.
subject
*обов'язковий
Рядок. Тема листа. Підтримує {{variables}}.
body
*обов'язковий
Рядок (HTML). Тіло листа.
plain_text
*обов'язковий
Булевий. true надсилає лист як звичайний текст, false — як HTML.
usage
*обов'язковий
Рядок. Стан блоку вмісту. Допустимі значення: "active", "pause".
Приклади коду
<?php

function createEmailContent(int $campaignId, int $stepId)
{
    $token = getAccessToken();

    $requestParameters = [
        'content_id' => 1,
        'subject'    => 'Hey, I have something for you',
        'body'       => '<p>Hi {{first_name}}, ...</p>',
        'plain_text' => false,
        'usage'      => 'active',
    ];

    $url = 'https://api.snov.io/v2/campaigns/' . $campaignId . '/steps/' . $stepId . '/content/create';

    $options = [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => 'POST',
        CURLOPT_POSTFIELDS     => json_encode($requestParameters),
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def create_email_content(campaign_id, step_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    request_parameters = {
        'content_id': 1,
        'subject': 'Hey, I have something for you',
        'body': '<p>Hi {{first_name}}, ...</p>',
        'plain_text': False,
        'usage': 'active'
    }

    url = 'https://api.snov.io/v2/campaigns/' + str(campaign_id) + '/steps/' + str(step_id) + '/content/create'
    res = requests.post(url, json=request_parameters, headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "id": 11111,
        "subject": "Hey, I have something for you",
        "body": "

Hi {{first_name}}, ...

", "plain_text": false, "usage": "active" } }
Параметри відповіді
success
Булевий. true, якщо запит виконано успішно.
data.id
Ціле число. ID блоку вмісту.
data.subject
Рядок. Тема листа.
data.body
Рядок (HTML). Тіло листа.
data.plain_text
Булевий. true, якщо режим звичайного тексту, false, якщо HTML.
data.usage
Рядок. Стан блоку вмісту. Допустимі значення: "active", "pause".

GETОтримати вміст кроку email

Безплатно

Цей метод повертає блок вмісту кроку email-послідовності за його content_id.

Запит
GEThttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії.
step_id
*обов'язковий (path)
Ціле число. ID кроку email-послідовності.
content_id
*обов'язковий (path)
Ціле число. ID блоку вмісту.
Приклади коду
<?php

function getEmailContent(int $campaignId, int $stepId, int $contentId)
{
    $token = getAccessToken();

    $url = 'https://api.snov.io/v2/campaigns/' . $campaignId . '/steps/' . $stepId . '/content/' . $contentId;

    $options = [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def get_email_content(campaign_id, step_id, content_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    url = 'https://api.snov.io/v2/campaigns/' + str(campaign_id) + '/steps/' + str(step_id) + '/content/' + str(content_id)
    res = requests.get(url, headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "id": 11111,
        "subject": "Hey, I have something for you",
        "body": "

Hi {{first_name}}, ...

", "plain_text": false, "usage": "active" } }
Параметри відповіді
data.id
Ціле число. ID блоку вмісту.
data.subject
Рядок. Тема листа.
data.body
Рядок (HTML). Тіло листа.
data.plain_text
Булевий. true, якщо режим звичайного тексту, false, якщо HTML.
data.usage
Рядок. Стан блоку вмісту. Допустимі значення: "active", "pause".

PATCHОновити вміст кроку email

Безплатно

Цей метод частково оновлює блок вмісту кроку email-послідовності. Оновлюються лише поля, надані в тілі запиту; пропущені поля залишаються без змін. Необхідно включити хоча б одне поле. Вміст можна змінювати лише коли кампанія перебуває у стані new, paused або scheduled.

Запит
PATCHhttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії.
step_id
*обов'язковий (path)
Ціле число. ID кроку email-послідовності.
content_id
*обов'язковий (path)
Ціле число. ID блоку вмісту.
subject
Рядок. Тема листа. Підтримує {{variables}}.
body
Рядок (HTML). Тіло листа.
plain_text
Булевий. true для звичайного тексту, false для HTML.
usage
Рядок. Стан блоку вмісту. Допустимі значення: "active", "pause".
Приклади коду
<?php

function updateEmailContent(int $campaignId, int $stepId, int $contentId)
{
    $token = getAccessToken();

    $requestParameters = [
        'subject' => 'Updated subject',
    ];

    $url = 'https://api.snov.io/v2/campaigns/' . $campaignId . '/steps/' . $stepId . '/content/' . $contentId;

    $options = [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => 'PATCH',
        CURLOPT_POSTFIELDS     => json_encode($requestParameters),
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def update_email_content(campaign_id, step_id, content_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    request_parameters = {
        'subject': 'Updated subject'
    }

    url = 'https://api.snov.io/v2/campaigns/' + str(campaign_id) + '/steps/' + str(step_id) + '/content/' + str(content_id)
    res = requests.patch(url, json=request_parameters, headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "id": 11111,
        "subject": "Updated subject",
        "body": "

Hi {{first_name}}, ...

", "plain_text": false, "usage": "active" } }
Параметри відповіді
success
Булевий. true, якщо запит виконано успішно.
data.id
Ціле число. ID блоку вмісту.
data.subject
Рядок. Тема листа.
data.body
Рядок (HTML). Тіло листа.
data.plain_text
Булевий. true, якщо режим звичайного тексту, false, якщо HTML.
data.usage
Рядок. Стан блоку вмісту. Допустимі значення: "active", "pause".

DELETEВидалити вміст кроку email

Безплатно

Цей метод видаляє блок вмісту з кроку email-послідовності. Видалення останнього блоку вмісту в кроці заборонено — кожен крок повинен мати хоча б один блок вмісту.

Запит
DELETEhttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Вхідні параметри
campaign_id
*обов'язковий (path)
Ціле число. ID кампанії.
step_id
*обов'язковий (path)
Ціле число. ID кроку email-послідовності.
content_id
*обов'язковий (path)
Ціле число. ID блоку вмісту для видалення.
Приклади коду
<?php

function deleteEmailContent(int $campaignId, int $stepId, int $contentId)
{
    $token = getAccessToken();

    $url = 'https://api.snov.io/v2/campaigns/' . $campaignId . '/steps/' . $stepId . '/content/' . $contentId;

    $options = [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => 'DELETE',
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];

    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;
}
?>
def delete_email_content(campaign_id, step_id, content_id):
    token = get_access_token()
    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    url = 'https://api.snov.io/v2/campaigns/' + str(campaign_id) + '/steps/' + str(step_id) + '/content/' + str(content_id)
    res = requests.delete(url, headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": {
        "success": true
    }
}
Параметри відповіді
data.success
Булевий. true, якщо блок вмісту успішно видалено.

Керування отримувачами

Ці методи дозволяють керувати отримувачами кампанії — перевіряти та оновлювати їхні статуси, переглядати завершених потенційних клієнтів і підтримувати списки «Не надсилати» для контролю над тим, хто отримує ваші кампанії.

GETПеревірити статус отримувача

Безплатно

Цей метод перевіряє, чи є вказані email-адреси отримувачами в конкретній кампанії, та повертає їхній поточний статус. Призначений для дедублікації перед додаванням нових отримувачів до кампанії — наприклад, щоб уникнути зв'язку з контактами, які вже зараховані, завершили кампанію або відписались.

Запит
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/recipient
Вхідні параметри
campaign_id
*обов'язковий
Унікальний ідентифікатор кампанії.
emails[]
*обов'язковий
Масив email-адрес для перевірки. Мінімум 1, максимум 100 на запит. Кожен email має бути унікальним і не перевищувати 100 символів.
Приклади коду
<?php
function checkRecipientStatus($campaignId, array $emails)
{
    $token = getAccessToken();
    $query = http_build_query([
        'access_token' => $token,
        'emails'       => $emails,
    ]);
    $options = [
        CURLOPT_URL            => "https://api.snov.io/v2/campaigns/{$campaignId}/recipient?{$query}",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def check_recipient_status(campaign_id, emails):
    token = get_access_token()
    params = [('access_token', token)] + [('emails[]', email) for email in emails]
    res = requests.get(
        f'https://api.snov.io/v2/campaigns/{campaign_id}/recipient',
        params=params,
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "email": "admin@snov.io",
            "exist": true,
            "status": "tocheck"
        },
        {
            "email": "jn@snov.io",
            "exist": false,
            "status": null
        },
        {
            "email": "dennis@snov.io",
            "exist": true,
            "status": "unsubscribe"
        }
    ]
}
Параметри відповіді
email
Email-адреса із запиту (повертається як є).
exist
true, якщо email присутній як отримувач у кампанії, false — якщо ні.
status
Поточний статус отримувача в кампанії (наприклад, tocheck, active, finished, unsubscribe, moved). null, коли exist має значення false.

POSTЗмінити статус отримувача

Безплатно

Змініть статус отримувача конкретної розсилки.

Запит
POSThttps://api.snov.io/v1/change-recipient-status
Вхідні параметри
email
*обов'язковий
Адреса електронної пошти контакта.
campaign_id
*обов'язковий
Id розсилки. Його можна побачити в адресному рядку під час перегляду інформації про розсилку (приклад).
status
*обов'язковий
Може містити статуси Активний, Призупинений або Відписаний. Ви не можете змінити статус отримувача, якщо він Завершений або Переміщений.
Приклади коду
<?php
function changeRecipientStatus()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'email'       => 'gavin.vanrooyen@octagon.com',
        'campaign_id'    => '179025',
        'status'     => 'Paused'
    ];


    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/change-recipient-status',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return $res;

}
?>
def change_recipient_status():
token = get_access_token()
params = {'access_token':token,
          'email':'gavin.vanrooyen@octagon.com',
          'campaign_id': '179025',
          'status':'Paused'
}

res = requests.post('https://api.snov.io/v1/change-recipient-status', data=params)

return json.loads(res.text)
Приклад відповіді
{
  "success": true
}
Параметри відповіді

Метод поверне success: true, якщо статус контакта було змінено. У випадку виникнення помилки метод поверне success: false з описом помилки.

GETСписок контактів, для яких завершена розсилка

Безплатно

Цей метод надає список контактів, для яких розсилка завершена.

Запит
GEThttps://api.snov.io/v1/prospect-finished
Вхідні параметри
campaignId
*обов'язковий
Унікальний id розсилки, за якою вам необхідно переглянути список отримувачів.
Приклади коду
<?php
function finishedProspects()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'campaignId'   => 1234567
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/prospect-finished?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token,
        'campaignId':1234567
}

res = requests.get('https://api.snov.io/v1/prospect-finished', data=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "id": "88c268d404797d1001b4d72806207625",
        "prospectId": "9c2eb5b46bb5873e408684dd577d002354e4f7026f47bf8a592d659bba3d2dd0ff186b90dc7a5",
        "userName": "zach Jones",
        "userEmail": "zach@entselect.us",
        "campaign": "Zipari - Salesforce Developer",
        "hash": "f3967971cbab6e769b5f7e3457d00159"
    }
]
Параметри відповіді
id
Унікальний id запиту.
prospectId
Унікальний id контакта.
userName
Повне ім'я контакта.
userEmail
Email-адреса контакта.
campaign
Назва розсилки.

POSTДодати контакти до списку винятків

Безплатно

За допомогою цього методу ви можете додати адресу або домен до списку «Контакти-винятки». Після додавання ви не зможете надсилати листи на ці адреси/домени.

Запит
POSThttps://api.snov.io/v1/do-not-email-list
Вхідні параметри
items
Адреса або домен, який необхідно додати до списку «Контакти-винятки».
listId
*обов'язковий
ID списку контактів-винятків, в якому знаходяться email-адреси і домени.
Приклади коду
<?php
function addToBlackList()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token
    ];

    $data = http_build_query([
      'items' => [
          'gavin.vanrooyen@octagon.com',
          'octagon.com'
      ]
  ]);

    $options = [
        CURLOPT_URL => 'https://api.snov.io/v1/do-not-email-list?'. $data,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $params,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);
}
?>
def do_not_email_list():
    token = get_access_token()
    params = {
        'access_token':token,
        'items[]':['gavin.vanrooyen@octagon.com','octagon.com']
    }

    res = requests.post('https://api.snov.io/v1/do-not-email-list', data=params)

    return json.loads(res.text)
Приклад відповіді
[
    {
        "success": true,
        "data": {
            "duplicates": []
        }
    }
]
Параметри відповіді
duplicates
Цей параметр показує, які з адрес/доменів були раніше додані до списку винятків.

GETПереглянути всі контакти-винятки

Безплатно

Метод повертає список усіх контактів-винятків.

Запит
GEThttps://api.snov.io/v2/blacklists
Вхідні параметри
Цей метод не має вхідних параметрів.
Приклади коду
<?php
function getBlacklists()
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/blacklists',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_blacklists():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get('https://api.snov.io/v2/blacklists', headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 8,
            "name": "Do-not-email List",
            "owner": "Rob Patison",
            "total": 100
        }
    ]
}
Параметри відповіді
id
Унікальний ID списку контактів-винятків.
name
Назва списку.
owner
Ім'я користувача, який створив список.
total
Загальна кількість записів у списку (email-адреси та вебсайти).

Аналітика та звітність

Ці методи лише для читання забезпечують видимість ефективності кампанії — доставку, відкриття, кліки та відповіді. Використовуйте їх для моніторингу залученості та експорту даних для аналізу.

GETАналітика кампанії

Безплатно

Цей метод показує статистику кампанії на основі застосованих фільтрів.

Запит
GEThttps://api.snov.io/v2/statistics/campaign-analytics
Вхідні параметри
campaign_id
ID кампанії. Його можна побачити в адресному рядку під час перегляду інформації про розсилку (приклад). Якщо залишити це поле порожнім, ви отримаєте дані для всіх активних кампаній за вказаний період.

Щоб отримати дані для кількох кампаній, розділяйте ID комами.
sender_email
ID email-акаунту відправника. Ви можете знайти його за URL-адресою під час перегляду або редагування інформації акаунту (приклад). Щоб переглянути аналітику для кількох email-акаунтів, розділяйте ID комами.

Або залиште цей параметр порожнім, якщо ви не хочете застосовувати фільтр для email-акаунту.
sender_linkedin
ID LinkedIn-акаунту відправника. Ви можете знайти його в URL-адресі під час перегляду або редагування інформації акаунту LinkedIn. Щоб переглянути аналітику для кількох акаунтів, розділяйте ID комами.

Залиште цей параметр порожнім, якщо ви не хочете застосовувати фільтр для акаунту LinkedIn.
campaign_owner
Щоб переглянути дані кампанії учасника команди, введіть його email-адресу. Щоб фільтрувати за кількома власниками кампаній, укажіть email-адреси, розділивши їх комами (без пробілів).

Наприклад: example1@gmail.com,example2@gmail.com

Зверніть увагу, що для використання цього фільтра у вашого акаунту повинен бути дозвіл "Дані команди", і ви повинні мати план Pro або вищий.
date_from
*обов'язковий
Дата початку періоду, за який ви хочете отримати статистику. Формат: рррр-мм-дд.
date_to
*обов'язковий
Дата завершення періоду, за який ви хочете отримати статистику. Формат: рррр-мм-дд.
Приклади коду

<?php

function getCampaignAnalytics()

{

   $token = getAccessToken();

   $campaignIds = [1, 2];

   $senderEmailIds = [21, 22];

   $senderLinkedInIds = [31, 32, 33];

   $ownerEmails = ['owner1@email.loc', 'owner2@email.loc'];

   $params = [

       'access_token' => $token,

       'campaign_id' => implode(',', $campaignIds),

       'sender_email' => implode(',', $senderEmailIds),

       'sender_linkedin' => implode(',', $senderLinkedInIds),

       'campaign_owner' => implode(',', $ownerEmails),

       'date_from' => '2024-06-15',

       'date_to' => '2024-09-15',

   ];

   $params = http_build_query($params);

   $options = [

       CURLOPT_URL => 'https://api.snov.io/v2/statistics/campaign-analytics?' . $params,

       CURLOPT_RETURNTRANSFER => true,

       CURLOPT_FOLLOWLOCATION => true

   ];

   $ch = curl_init();

   curl_setopt_array($ch, $options);

   $res = json_decode(curl_exec($ch), true);

   curl_close($ch);

   return $res;

}

?>

def get_campaign_analytics():

   token = get_access_token()

   campaign_ids = [1, 2]

   sender_email_ids = [21, 22]

   sender_linkedin_ids = [31, 32, 33]

   owner_emails = ['owner1@email.loc', 'owner2@email.loc']

   params = {

       'access_token': token,

       'campaign_id': ','.join(map(str, campaign_ids)),

       'sender_email': ','.join(map(str, sender_email_ids)),

       'sender_linkedin': ','.join(map(str, sender_linkedin_ids)),

       'campaign_owner': ','.join(owner_emails),

       'date_from': '2024-06-15',

       'date_to': '2024-09-15',

   }

   res = requests.get('https://api.snov.io/v2/statistics/campaign-analytics', params=params)

   return json.loads(res.text)

Приклад відповіді
{
    "total_contacted": 32,
    "emails_sent": 31,
    "first_emails": 24,
    "first_emails_rate": "77%",
    "follow_ups": 7,
    "follow_ups_rate": "23%",
    "delivered": 30,
    "delivered_rate": "97%",
    "bounced": 1,
    "bounced_rate": "3%",
    "contacted_by_email": 23,
    "email_opens": 16,
    "email_opens_rate": "70%",
    "link_clicks": 0,
    "link_clicks_rate": "0%",
    "email_replies": 16,
    "email_replies_rate": "70%",
    "unsubscribed": 0,
    "unsubscribed_rate": "0%",
    "auto_replied": 0,
    "auto_replied_rate": "0%",
    "contacted_by_linkedin": 10,
    "linkedin_total_replies": 9,
    "linkedin_total_replies_rate": "90%",
    "connection_request_replies": 2,
    "connection_request_replies_rate": "22%",
    "message_replies": 7,
    "message_replies_rate": "78%",
    "in_mail_replies": 0,
    "in_mail_replies_rate": "0%",
    "connection_requests": 2,
    "accepted_requests": 2,
    "accepted_requests_rate": "100%",
    "failed_connection_requests": 0,
    "messages_sent": 9,
    "linkedin_views": 9,
    "linkedin_likes": 0,
    "linkedin_follows": 0,
    "in_mail_sent": 0,
    "interested": 8,
    "interested_rate": "32%",
    "maybe": 8,
    "maybe_rate": "32%",
    "not_interested": 4,
    "not_interested_rate": "16%"
}
Параметри відповіді
total_contacted
Загальна кількість отримувачів, з якими ви зв’язалися через емейл або LinkedIn (запит на контакт, повідомлення або InMail).
emails_sent
Загальна кількість емейлів, надісланих у кампаніях.

Зверніть увагу, що це не включає емейли, надіслані поза кампаніями.
first_emails
Кількість перших емейлів в кампанії, надісланих протягом зазначеного періоду.
first_emails_rate
Відсоток перших емейлів від загальної кількості надісланих емейлів.
follow_ups
Кількість фоллоу-апів у кампанії, надісланих протягом зазначеного періоду.
follow_ups_rate
Відсоток фоллоу-апів від загальної кількості надісланих емейлів.
delivered
Кількість надісланих емейлів, які не збаунсили.
delivered_rate
Відсоток емейлів, які не збаунсили, від загальної кількості надісланих листів.
bounced
Кількість емейлів, які збаунсили.
bounced_rate
Відсоток емейлів, які збаунсили, від загальної кількості надісланих листів.
contacted_by_email
Кількість отримувачів, яким було доставлено принаймні один емейл.
email_opens
Кількість отримувачів, які принаймні один раз відкрили емейл.
email_opens_rate
Відсоток отримувачів, які відкрили ваш емейл принаймні один раз, від загальної кількості сконтактованих отримувачів.
link_clicks
Кількість отримувачів, які перейшли за принаймні одним посиланням у ваших кампаніях.
link_clicks_rate
Відсоток отримувачів, які клікнули принаймні одне посилання в кампаніях, серед усіх сконтактованих отримувачів.
email_replies
Кількість отримувачів, які відповіли принаймні один раз.
email_replies_rate
Відсоток отримувачів, які принаймні один раз відповіли на ваш емейл, від усіх сконтактованих отримувачів.
unsubscribed
Кількість отримувачів, які клікнули посилання "Відписатися" у ваших кампаніях.
unsubscribed_rate
Відсоток отримувачів, які клікнули "Відписатися" в кампаніях, серед усіх сконтактованих отримувачів.
auto_replied
Кількість отримувачів, від яких було отримано автовідповідь на емейли в кампаніях.
auto_replied_rate
Відсоток отримувачів, від яких було отримано автовідповідь, від усіх сконтактованих отримувачів.
contacted_by_linkedin
Кількість отримувачів, яким ви надіслали принаймні одне повідомлення або запит на контакт у LinkedIn.
linkedin_total_replies
Кількість отримувачів, які принаймні один раз відповіли на будь-яке повідомлення, надіслане в LinkedIn (повідомлення LinkedIn, повідомлення у запиті на контакт та InMail).
linkedin_total_replies_rate
Відсоток отримувачів, які принаймні один раз відповіли на будь-яке повідомлення, надіслане в LinkedIn (повідомлення LinkedIn, повідомлення у запиті на контакт та InMail).
connection_request_replies
Кількість отримувачів, які відповіли на повідомлення у запиті на контакт.
connection_request_replies_rate
Відсоток отримувачів, які відповіли на повідомлення у запиті на контакт, серед усіх сконтактованих отримувачів.
message_replies
Кількість отримувачів, які відповіли на звичайне повідомлення у LinkedIn.
message_replies_rate
Відсоток отримувачів, які відповіли на звичайне повідомлення у LinkedIn, серед усіх сконтактованих отримувачів.
in_mail_replies
Кількість отримувачів, які відповіли на повідомлення InMail у LinkedIn.
in_mail_replies_rate
Відсоток отримувачів, які відповіли на повідомлення InMail у LinkedIn.
connection_requests
Кількість запитів на контакт, надісланих лідам через кампанії Snov.io.
accepted_requests
Кількість запитів на контакт, прийнятих учасниками LinkedIn.
accepted_requests_rate
Відсоток прийнятих запитів на контакт від усіх надісланих запитів.
failed_connection_requests
Кількість запитів на контакт у Linkedin, які не були надіслані з причини:
  • посилання на профіль LinkedIn не існує
  • ви вже раніше надсилали запит на контакт і він досі не прийнятий
  • цей контакт вже є у вашій мережі
messages_sent
Кількість надісланих повідомлень у LinkedIn.
linkedin_views
Кількість переглянутих профілів лідів.
linkedin_likes
Кількість пролайканих постів лідів у LinkedIn.
linkedin_follows
Кількість профілів лідів, за якими ви почали спостерігати.
in_mail_sent
Загальна кількість надісланих повідомлень InMail.
interested
Кількість отримувачів, які проявили інтерес у своїх відповідях.
interested_rate
Відсоток отримувачів, які проявили інтерес у своїх відповідях.
maybe
Кількість отримувачів, які не висловили прямої зацікавленості чи незацікавленості у своїх відповідях.
maybe_rate
Відсоток отримувачів, які не висловили прямої зацікавленості чи незацікавленості у своїх відповідях.
not_interested
Кількість отримувачів, які не проявили інтерес у своїх відповідях.
not_interested_rate
Відсоток отримувачів, які не проявили інтерес у своїх відповідях.

GETПрогрес кампанії

Безплатно

Цей метод повертає прогрес і статус кампанії.

Запит
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/progress
Вхідні параметри
campaign_id
*обов'язковий
ID кампанії. Його можна побачити в адресному рядку під час перегляду інформації про розсилку (приклад).
Приклади коду

<?php

function getCampaignProgress()

{

   $token = getAccessToken();

   $campaignId = 1;

   $params = [

       'access_token' => $token,

   ];

   $params = http_build_query($params);

   $options = [

       CURLOPT_URL => "https://api.snov.io/v2/campaigns/$campaignId/progress?" . $params,

       CURLOPT_RETURNTRANSFER => true,

       CURLOPT_FOLLOWLOCATION => true

   ];

   $ch = curl_init();

   curl_setopt_array($ch, $options);

   $res = json_decode(curl_exec($ch), true);

   curl_close($ch);

   return $res;

}

?>

def get_campaign_progress():

   token = get_access_token()

   campaign_id = 1

   params = {

       'access_token': token,

   }

   res = requests.get(f"https://api.snov.io/v2/campaigns/{campaign_id}/progress", params=params)

   return json.loads(res.text)

Приклад відповіді
{
    "status":"Active",
    "unfinished":1,
    "progress":"90%"
}
Параметри відповіді
progress
Відсоток отримувачів, які:
  • Досягли кінця кампанії
  • Збаунсили, відповіли, надіслали автовідповідь, відписалися, були видалені або переміщені з кампанії, тому кампанію для них було зупинено.
unfinished
Кількість отримувачів, які не досягли кінця кампанії або для яких кампанію не було зупинено.
status
Статус кампанії. Детальніше

GETОтримати звіт про активність отримувачів кампанії

Безплатно

Цей метод повертає детальний звіт про активність усіх отримувачів кампанії — події відправлення, відкриття, кліку, відповіді, відмови та відписки — разом з даними контакта. Відображає звіт про активність отримувачів, доступний в інтерфейсі кампанії, та підходить для синхронізації активності кампанії із зовнішніми дашбордами або CRM-системами.

Запит
GEThttps://api.snov.io/v2/campaigns/[campaignId]/recipients-activity
Вхідні параметри
campaignId
*обов'язковий
Унікальний ідентифікатор кампанії.
dateFrom
*обов'язковий
Початок діапазону дат у форматі Y-m-d (UTC).
dateTo
*обов'язковий
Кінець діапазону дат у форматі Y-m-d (UTC). Максимальний діапазон між dateFrom і dateTo — 31 день.
offset
Зміщення пагінації (за замовчуванням: 0).
limit
Кількість записів на сторінці (за замовчуванням: 100, максимум: 1000).
Приклади коду
<?php
function getCampaignRecipientsActivity($campaignId, $dateFrom, $dateTo, $offset = 0, $limit = 100)
{
    $token = getAccessToken();
    $params = http_build_query([
        'access_token' => $token,
        'dateFrom'     => $dateFrom,
        'dateTo'       => $dateTo,
        'offset'       => $offset,
        'limit'        => $limit,
    ]);
    $options = [
        CURLOPT_URL            => "https://api.snov.io/v2/campaigns/{$campaignId}/recipients-activity?{$params}",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def get_campaign_recipients_activity(campaign_id, date_from, date_to, offset=0, limit=100):
    token = get_access_token()
    params = {
        'access_token': token,
        'dateFrom':     date_from,
        'dateTo':       date_to,
        'offset':       offset,
        'limit':        limit,
    }
    res = requests.get(
        f'https://api.snov.io/v2/campaigns/{campaign_id}/recipients-activity',
        params=params,
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "event_time": "2025-12-15 10:58:52",
            "event_type": "sent",
            "sender_email": "sender@snov.io",
            "email_subject": "About our plans",
            "recipient_email": "recipient@snov.io",
            "recipient_name": "Den Johnson",
            "phone": "380631234567",
            "industry": "Information Technology & Services",
            "country": "Ukraine",
            "location": "Kyiv",
            "company": "Snov.io",
            "job_position": "Quality assurance engineer",
            "hq_phone": "380631234567",
            "website": "snov.io"
        },
        {
            "event_time": "2025-12-15 10:58:58",
            "event_type": "open",
            "sender_email": "sender@snov.io",
            "email_subject": "About our plans",
            "recipient_email": "recipient@snov.io",
            "recipient_name": "Den Johnson",
            "phone": "380631122333",
            "industry": "Information Technology & Services",
            "country": "Ukraine",
            "location": "Kyiv",
            "company": "Snov.io",
            "job_position": "Quality assurance engineer",
            "hq_phone": "380631234567",
            "website": "snov.io"
        }
    ],
    "pagination": {
        "total": 2,
        "offset": 0,
        "limit": 100,
        "has_more": false
    }
}
Параметри відповіді
event_time
Час події в ISO 8601 (UTC).
event_type
Тип події: sent, open, click, reply, bounce, unsubscribe.
sender_email
Email-адреса відправника (поштова скринька кампанії).
email_subject
Тема листа в послідовності кампанії.
recipient_email
Email-адреса отримувача.
recipient_name
Повне ім'я отримувача.
phone
Номер телефону отримувача (з профілю контакта).
country
Країна отримувача.
location
Місцезнаходження отримувача (місто, регіон).
industry
Галузь компанії отримувача.
company
Назва компанії отримувача.
job_position
Посада отримувача.
website
Сайт компанії отримувача.
hq_phone
Номер телефону штаб-квартири компанії отримувача.
total
Загальна кількість записів, що відповідають запиту.
offset
Поточне зміщення пагінації.
limit
Розмір сторінки, використаний у відповіді.
has_more
true, якщо є ще записи після поточної сторінки.

GETПерегляд відправлених емейлів

Безплатно

Цей метод показує інформацію про відправлені емейли в межах вибраної розсилки.

Запит
GEThttps://api.snov.io/v1/emails-sent
Вхідні параметри
campaignId
*обов'язковий
Унікальний id розсилки, за якою вам необхідно переглянути надіслані емейли.
offset
Ви можете зібрати до 10 000 надісланих емейлів за запит. Якщо у вашій кампанії більше емейлів, використовуйте зміщення, щоб указати, скільки попередніх емейлів ви хочете пропустити. Наприклад, якщо у вашій кампанії 20 000 емейлів, а ви хочете отримати емейли 10 001-20 000, установіть зміщення на 10 000. Якщо зміщення не вказано, ви отримаєте останні 10 000 емейлів.
Приклади коду
<?php
function emailsSended()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'campaignId'   => 1234567
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/emails-sent?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token,
        'campaignId':1234567
}

res = requests.get('https://api.snov.io/v1/emails-sent', data=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "sentDate": {
            "date": "2020-07-06 06:58:10.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "userName": "John Doe",
        "userEmail": "johndoe@snov.io",
        "campaign": "Test",
        "hash": "be8fd412b793c15ccab9f1a6573d6595",
        "id": "010f091d81860753a19867ba1dd805d1"
    },
    {
        "sentDate": {
            "date": "2020-07-06 06:56:44.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "userName": "Mister Smith",
        "userEmail": "mistersmith@snov.io",
        "campaign": "Test",
        "hash": "55bb20def471e630c539935cb0efcbf8",
        "id": "00e3df8427477a21d64bbe959ff95471"
    }
]
Параметри відповіді
sentDate
Точний час надсилання емейлу.
userName
Повне ім'я отримувача розсилки.
userEmail
Email-адреса контакта.
campaign
Назва розсилки.

GETІнформація про відкриття емейлів у розсилці

Безплатно

Цей метод показує інформацію про відкриті емейли в розсилці.

Запит
GEThttps://api.snov.io/v1/get-emails-opened
Вхідні параметри
campaignId
*обов'язковий
Унікальний id розсилки, за якою ви хочете побачити відкриття емейлів.
offset
Ви можете зібрати до 10 000 відкриттів за запит. Якщо у вашій кампанії більше відкриттів, використовуйте зміщення, щоб указати, скільки попередніх відкриттів ви хочете пропустити. Наприклад, якщо у вашій кампанії 20 000 відкриттів, а ви хочете отримати відкриття 10 001-20 000, установіть зміщення на 10 000. Якщо зміщення не вказано, ви отримаєте останні 10 000 відкриттів.
Приклади коду
<?php
function emailsOpen()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'campaignId'   => 1234567
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-emails-opened?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token,
        'campaignId':1234567
}

res = requests.get('https://api.snov.io/v1/get-emails-opened', data=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "visitedAt": {
            "date": "2020-01-08 21:48:14.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "campaignId": 1234567
        "campaign": "My top campaign",
        "prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3",
        "prospectFirstName": "John",
        "prospectLastName": "Doe",
        "prospectName": "John Doe",
        "sourcePage": null,
        "source": "copy",
        "locality": null,
        "industry": null,
        "country": null,
        "prospectEmail": "Johndoe@snov.io",
        "hash": "20b1aeb0e2949fdf7e58363f84b7aff1",
        "emailSubject": "\"Special content for you\"",
        "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
	"skills": "",
        "links": null,
        "customFields": null,
        "id": "c2a67a47d59745f548ea7b0213c3a81d",
        "customField_Phone": ""
    }
]
Параметри відповіді
campaignId
Унікальний id розсилки.
campaign
Назва розсилки.
prospectName
Повне ім'я отримувача, який відкрив емейл.
emailSubject
Тема відкритого емейлу.
visitedAt
Точний час перегляду емейлу.

GETПерегляд переходів за посиланнями

Безплатно

Цей метод повертає інформацію про всіх отримувачів в межах розсилки, які перейшли за посиланням в емейлах.

Запит
GEThttps://api.snov.io/v1/get-emails-clicked
Вхідні параметри
campaignId
*обов'язковий
Унікальний id розсилки, у якій ви хочете переглянути переходи за посиланнями.
offset
Ви можете зібрати до 10 000 кліків за запит. Якщо у вашій кампанії більше кліків, використовуйте зміщення, щоб указати, скільки попередніх кліків ви хочете пропустити. Наприклад, якщо у вашій кампанії 20 000 кліків, а ви хочете отримати кліки 10 001-20 000, установіть зміщення на 10 000. Якщо зміщення не вказано, ви отримаєте останні 10 000 кліків.
Приклади коду
<?php
function emailsClicked()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'campaignId'   => 1234567
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-emails-clicked?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token,
        'campaignId':1234567
}

res = requests.get('https://api.snov.io/v1/get-emails-clicked', data=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "visitedAt": {
            "date": "2020-01-08 21:48:14.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "campaignId": 1234567
        "campaign": "My top campaign",
        "prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3",
        "prospectFirstName": "John",
        "prospectLastName": "Doe",
        "prospectName": "John Doe",
        "sourcePage": null,
        "source": "copy",
        "locality": null,
        "industry": null,
        "country": null,
        "prospectEmail": "Johndoe@snov.io",
        "hash": "20b1aeb0e2949fdf7e58363f84b7aff1",
        "emailSubject": "\"Special content for you\"",
        "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
	"skills": "",
        "links": null,
        "customFields": null,
        "id": "c2a67a47d59745f548ea7b0213c3a81d",
        "customField_Phone": ""
    }
]
Параметри відповіді
campaignId
Унікальний id розсилки.
campaign
Назва розсилки.
prospectName
Повне ім'я отримувача, який перейшов за посиланням в емейлі.
prospectEmail
Email-адреса контакта.
emailSubject
Тема емейлу, в якому отримувач перейшов за посиланням.
emailBody
Текст емейлу.
visitedAt
Точний час переходу за посиланням у листі.

GETУсі відповіді на розсилку

Безплатно

Цей метод показує список усіх відповідей, отриманих у межах кампанії — як email-відповідей, так і відповідей у LinkedIn (на запити з'єднання, повідомлення LinkedIn та InMail). Кожен запис відповідає унікальній парі (контакт, тип відповіді); відповіді в записі відсортовано хронологічно.

Запит
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/all-replies
Вхідні параметри
campaign_id
*обов'язковий
Унікальний ідентифікатор кампанії.
offset
Зміщення пагінації (за замовчуванням: 0).
Приклади коду
<?php
function campaignAllReplies($campaignId, $offset = 0)
{
    $token = getAccessToken();
    $params = http_build_query([
        'access_token' => $token,
        'offset'       => $offset,
    ]);
    $options = [
        CURLOPT_URL            => "https://api.snov.io/v2/campaigns/{$campaignId}/all-replies?{$params}",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $res;
}
?>
def get_campaign_all_replies(campaign_id, offset=0):
    token = get_access_token()
    params = {
        'access_token': token,
        'offset': offset,
    }
    res = requests.get(
        f'https://api.snov.io/v2/campaigns/{campaign_id}/all-replies',
        params=params,
    )
    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "campaignId": 38573,
            "campaign": "All replies campaign",
            "prospectId": "aed674fa6404b38954b4ed68f4fd4901b15c9ca9b9393522a052a420aa2690df99614e277d",
            "prospectName": "Snov.io",
            "prospectEmail": "office@snov.io",
            "linkedInProfile": "https://www.linkedin.com/in/snovio",
            "replyType": "email",
            "receivedAt": "2026-04-29 10:09:42",
            "replies": [
                {
                    "subject": "Re: All replies campaign",
                    "message": "This is reply to email",
                    "receivedAt": "2026-04-29 10:09:42"
                }
            ]
        },
        {
            "campaignId": 38573,
            "campaign": "All replies campaign",
            "prospectId": "504d37faada2989dda5f7621393ed9b07e4dccaba44b7332e48fd425c75a77e3d653d24b60",
            "prospectName": "Snov.io",
            "prospectEmail": "office@snov.io",
            "linkedInProfile": "https://www.linkedin.com/in/snovio",
            "replyType": "linkedinMessage",
            "receivedAt": "2026-04-29 09:26:07",
            "replies": [
                {
                    "subject": "",
                    "message": "Hello! This is reply to Li message",
                    "receivedAt": "2026-04-29 09:26:07"
                }
            ]
        }
    ]
}
Параметри відповіді
campaignId
Унікальний ідентифікатор кампанії.
campaign
Назва кампанії.
prospectId
Унікальний ідентифікатор контакта.
prospectName
Повне ім'я контакта.
prospectEmail
Email-адреса контакта.
linkedInProfile
URL профілю LinkedIn контакта (якщо доступний).
replyType
Тип відповіді: email, linkedinMessage, linkedinInvite, linkedinInMail.
receivedAt
Дата та час найраннішої відповіді для цієї пари (контакт, тип відповіді).
replies[].subject
Тема відповіді (порожній рядок для відповідей LinkedIn без теми).
replies[].message
Тіло відповіді.
replies[].receivedAt
Дата та час отримання конкретної відповіді.

GETEmail-відповіді на розсилку

Безплатно

Цей метод повертає email-відповіді на листи розсилки, включно з іменем контакта, id, назвою розсилки та ін. Щоб отримати відповіді LinkedIn (запит на з'єднання, пряме повідомлення, InMail) разом з email-відповідями, використовуйте метод Усі відповіді на розсилку.

Запит
GEThttps://api.snov.io/v1/get-emails-replies
Вхідні параметри
campaignId
*обов'язковий
Унікальний id розсилки для перегляду отриманих відповідей.
offset
Ви можете зібрати до 10 000 відповідей за запит. Якщо у вашій кампанії більше відповідей, використовуйте зміщення, щоб указати, скільки попередніх відповідей ви хочете пропустити. Наприклад, якщо у вашій кампанії 20 000 відповідей, а ви хочете отримати відповіді 10 001-20 000, установіть зміщення на 10 000. Якщо зміщення не вказано, ви отримаєте останні 10 000 відповідей.
Приклади коду
<?php
function campaignReplies()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'campaignId'   => 1234567
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-emails-replies?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token,
        'campaignId':1234567
}

res = requests.get('https://api.snov.io/v1/get-emails-replies', data=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "visitedAt": {
            "date": "2020-07-14 13:10:46.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "campaignId": 1234567,
        "campaign": "My top campaign",
        "prospectId": "7a941739b09f1187532d52a684df545f3a223e432c7f53662264db8d33db80ee5fc19e573416a",
        "prospectFirstName": "John",
        "prospectLastName": "Doe",
        "prospectName": "John Doe",
        "sourcePage": null,
        "source": "copy",
        "locality": null,
        "industry": "Airlines/Aviation",
        "country": null,
        "prospectEmail": "Johndoe@snov.io",
        "hash": "6745f8162ecadbe325693345d1a53976",
        "emailSubject": "\"Special content for you\"",
        "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
        "skills": "",
        "links": null,
        "customFields": null,
        "id": "f676edc5de58f341dc7bf4e75c0c8580",
        "customField_Phone": "",
        "customField_Birthday": ""
    }
]
Параметри відповіді
campaignId
Унікальний id розсилки.
campaign
Назва розсилки.
prospectName
Повне ім'я контакта.
emailSubject
Тема емейлу, на який було отримано відповідь.
emailBody
Зміст емейлу, на який було отримано відповідь.

POSTДодати контакти до списку

Безплатно

Використовуйте цей метод, якщо вам необхідно автоматизувати додавання контактів до списків, для яких запущена розсилка. Таким чином, після додавання контакта до вибраного списку, розсилка для нього почнеться автоматично.

Запит
POSThttps://api.snov.io/v1/add-prospect-to-list
Вхідні параметри
email
Адреса електронної пошти контакта.
fullName
Повне ім'я контакта.
firstName
Ім'я контакта.
lastName
Прізвище контакта.
phones
Масив з номерами телефонів контакта.
country
Країна, у якій проживає контакт. Список країн представлений тут. Будь ласка, використовуйте лише країни з цього списку.
locality
Місцезнаходження контакта.
position
Посада контакта.
companyName
Назва компанії, у якій працює контакт.
companySite
Сайт компанії, у якій працює контакт. Будь ласка, використовуйте формат
http://example.com
.
updateContact
Оновлює наявний контакт. Приймає true або false.
  • Якщо true і контакт з такою email-адресою вже є в одному зі списків, система оновлює наявний профіль.
  • Якщо false, система не оновлює наявний профіль.
createDuplicates
Створює дублікат контакту. Приймає true або false.
  • Якщо true і контакт з таким такою email-адресою вже є в одному зі списків, система створює дублікат профілю.
  • Якщо false, система не створює дублікат профілю.

Лише один параметр, updateContact або createDuplicates, може бути true.
customFields[specialization]
Ви можете додати кастомні значення до вже наявних кастомних полів. Для цього зазначте назву поля у [квадратних дужках].
socialLinks[linkedIn]
*Required if email is null
Посилання на профіль контакта в соцмережах. Укажіть назву соціальної мережі в [таких дужках] (LinkedIn, Facebook або X).
listId
*обов'язковий
Id списку, у якому міститься контакт.
Приклади коду
<?php
function addProspectToList()
{
  $token = getAccessToken();

  $params = [
    'access_token'                => $token,
    'email'                       => 'john.doe@example.com',
    'fullName'                    => 'John Doe',
    'firstName'                   => 'John',
    'lastName'                    => 'Doe',
    'phones'                      => ['+18882073333', '+18882074444'],
    'country'                     => 'United States',
    'locality'                    => 'Woodbridge, New Jersey',
    'socialLinks' => [
      'linkedIn'  => 'https://www.linkedin.com/in/johndoe/&social',
      'twiiter' => 'https://twitter.com/johndoe&social',
    ],
    'customFields[specialization]'=> 'Software Engineering',
    'position'                    => 'Vice President of Sales',
    'companyName'                 => 'GoldenRule',
    'companySite'                 => 'https://goldenrule.com',
    'updateContact'               => true,
    'listId'                      => '12345',
  ];

  $options = [
    CURLOPT_URL            => 'https://api.snov.io/v1/add-prospect-to-list',
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $params,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true
  ];

  $ch = curl_init();

  curl_setopt_array($ch, $options);

  $res = json_decode(curl_exec($ch), true);
  curl_close($ch);

  return $res;

}
?>
def add_prospect_to_list():
token = get_access_token()
params = {'access_token':token,
          'email':'john.doe@example.com',
          'fullName': 'John Doe',
          'firstName':'John',
          'lastName':'Doe',
          'phones':['+18882073333', '+18882074444'],
          'country':'United States',
          'locality':'Woodbridge, New Jersey',
          'socialLinks[linkedIn]':'https://www.linkedin.com/in/johndoe/&social',
          'social[twiiter]':'https://twitter.com/johndoe&social',
          'customFields[specialization]':'Software Engineering',
          'position':'Vice President of Sales',
          'companyName':'GoldenRule',
          'companySite':'https://goldenrule.com',
          'updateContact':1,
          'listId':'12345'
}

res = requests.post('https://api.snov.io/v1/add-prospect-to-list', data=params)

return json.loads(res.text)
{
  "email": "john.doe@example.com",
  "listId": 12345678,
  "createDuplicates": false,
  "updateContact": true,
  "fullName": "John Doe",
  "firstName": "John",
  "lastName": "Doe",
  "position": "Vice President of Sales",
  "companyName": "GoldenRule",
  "companySite": "https://goldenrule.com",
  "phones": [
    "+18882073333",
    "+18882074444"
  ],
  "country": "United States",
  "locality": "Woodbridge, New Jersey",
  "customFields": {
    "specialization": "Software Engineering"
  },
  "socialLinks": {
    "linkedIn": "https://www.linkedin.com/in/johndoe/&social",
    "twitter": "https://twitter.com/johndoe&social"
  }
}
Приклад відповіді
{
    "success": true,
    "id": "0Y2QzowWL1rHpIptwaRp0Q==",
    "added": true,
    "updated": false
}
Параметри відповіді
success
Буде
true
, якщо контакт було додано до списку.
id
Ідентифікатор доданого контакта.
added
Буде
true
, якщо контакт було додано до списку.
updated
Буде
true
, якщо дані контакта було оновлено.
errors
Під час додавання контакта до списку виникла помилка.

POSTЗнайти контакт за id

Безплатно

Знаходьте контакти у списках за id. Якщо у вас є id контакта, ви можете отримати повну інформацію про нього, включно зі списками та розсилками, до яких він доданий.

Запит
POSThttps://api.snov.io/v1/get-prospect-by-id
Вхідні параметри
id
*обов'язковий
Id контакта. Його можна побачити у відповіді, коли ви додаєте контакт за допомогою методу API Додати контакти до списку або в адресному рядку, коли переглядаєте сторінку контакта (приклад).
Приклади коду
<?php
function getProspectById()
{
    $token = getAccessToken();

    $params = [
        'access_token'    => $token,
        'id'           => 'xusD3-T_K5IktGoaa8Jc8A=='
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-prospect-by-id',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    
    return $res;

}
?>
def getProspectById():
token = get_access_token()
params = {'access_token':token,
        'id':'xusD3-T_K5IktGoaa8Jc8A=='
}

res = requests.post('https://api.snov.io/v1/get-prospect-by-id', data=params)

return json.loads(res.text)
Приклад відповіді
{
  "success": true,
  "data": {
    "id": "xusD3-T_K5IktGoaa8Jc8A==",
    "name": "Gavin Vanrooyen",
    "firstName": "Gavin",
    "lastName": "Vanrooyen",
    "industry": "Entertainment",
    "country": "United States",
    "locality": "Greater Atlanta Area",
    "social": [
      {
        "link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-8090738\/",
        "type": "linkedIn"
      }
    ],
    "lastUpdateDate": {
      "date": "2019-09-11 12:37:58.000000",
      "timezone_type": 3,
      "timezone": "UTC"
    },
    "currentJob": [
      {
        "companyName": "Octagon",
        "position": "Senior Brand Director",
        "socialLink": "https:\/\/www.linkedin.com\/company\/659312",
        "site": "http:\/\/octagon.com",
        "locality": "United States",
        "state": null,
        "city": null,
        "street": null,
        "street2": null,
        "postal": null,
        "founded": null,
        "startDate": "2018-07-31",
        "endDate": null,
        "size": "1-10",
        "industry": "Entertainment",
        "companyType": "Public Company",
        "country": "United States"
      }
    ],
    "previousJob": [
      {
        "companyName": "UPS",
        "position": "Manager, Sponsorships and Events",
        "socialLink": "https:\/\/www.linkedin.com\/company\/152322",
        "site": "http:\/\/www.ups.com\/",
        "locality": "United States",
        "state": "GA",
        "city": "Atlanta",
        "street": "55 Glenlake Parkway, NE",
        "street2": null,
        "postal": "30328",
        "founded": "1907",
        "startDate": null,
        "endDate": null,
        "size": "10001+",
        "industry": "Logistics and Supply Chain",
        "companyType": "Public Company",
        "country": "United States"
      }
    ],
    "lists": [
      {
        "id": 1250344,
        "name": "People List"
      }
    ],
    "campaigns": []
  }
}
Параметри відповіді
success
Буде
true
, якщо контакт був знайдений.
id
Унікальний ідентифікатор профілю.
name
Повне ім'я контакта.
firstName
Ім'я контакта.
lastName
Прізвище контакта.
industry
Галузь, зазначена в профілі контакта.
country
Країна контакта.
locality
Місцезнаходження контакта.
social
Посилання на профілі соцмереж контакта.
currentJobs
Масив, який містить інформацію про поточну посаду контакта.
previousJobs
Масив, який містить інформацію про попередні посади контакта.
lastUpdateDate
Дата останнього оновлення контакта.
lists
Списки, до яких було додано контакт.
campaigns
Список розсилок, отримувачем яких є контакт. Містить коротку статистику, наприклад, статус, кількість отриманих ним листів, відкриттів та відповідей на емейли.

POSTЗнайти контакт за email-адресою

Безплатно

Знаходьте контакти в списках за адресою електронної пошти. Під час пошуку за email-адресою ви отримуєте список усіх контактів, які пов'язані з адресою. Кожен елемент списку містить повну інформацію про контакт, включно зі списками та розсилками, до яких він доданий.

Запит
POSThttps://api.snov.io/v1/get-prospects-by-email
Вхідні параметри
email
*обов'язковий
Адреса електронної пошти контакта.
Приклади коду
<?php
function getProspectsByEmail()
{
    $token = getAccessToken();

    $params = [
        'access_token'    => $token,
        'email'           => 'gavin.vanrooyen@octagon.com'
    ];

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-prospects-by-email',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    
    return $res;

}
?>
def getProspectsByEmail():
token = get_access_token()
params = {'access_token':token,
        'email':'gavin.vanrooyen@octagon.com'
}

res = requests.post('https://api.snov.io/v1/get-prospects-by-email', data=params)

return json.loads(res.text)
Приклад відповіді
{
  "success": true,
  "data": [
    {
      "id": "xusD3-T_K5IktGoaa8Jc8A==",
      "name": "Gavin Vanrooyen",
      "firstName": "Gavin",
      "lastName": "Vanrooyen",
      "industry": "Entertainment",
      "country": "United States",
      "locality": "Greater Atlanta Area",
      "social": [
        {
          "link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-809073755\/",
          "type": "linkedIn"
        }
      ],
      "lastUpdateDate": {
        "date": "2019-09-11 12:37:58.000000",
        "timezone_type": 3,
        "timezone": "UTC"
      },
      "currentJob": [
        {
          "companyName": "Octagon",
          "position": "Senior Brand Director",
          "socialLink": "https:\/\/www.linkedin.com\/company\/659333",
          "site": "http:\/\/octagon.com",
          "locality": "United States",
          "state": null,
          "city": null,
          "street": null,
          "street2": null,
          "postal": null,
          "founded": null,
          "startDate": "2018-07-31",
          "endDate": null,
          "size": "1-10",
          "industry": "Entertainment",
          "companyType": "Public Company",
          "country": "United States"
        }
      ],
      "previousJob": [
        {
          "companyName": "UPS",
          "position": "Manager, Sponsorships and Events",
          "socialLink": "https:\/\/www.linkedin.com\/company\/1523574",
          "site": "http:\/\/www.ups.com\/",
          "locality": "United States",
          "state": "GA",
          "city": "Atlanta",
          "street": "55 Glenlake Parkway, NE",
          "street2": null,
          "postal": "30328",
          "founded": "1907",
          "startDate": null,
          "endDate": null,
          "size": "10001+",
          "industry": "Logistics and Supply Chain",
          "companyType": "Public Company",
          "country": "United States"
        }
      ],
      "lists": [
        {
          "id": 1250344,
          "name": "People List"
        }
      ],
      "campaigns": []
    }
  ]
}
Параметри відповіді
success
Буде
true
, якщо контакт був знайдений.
id
Унікальний ідентифікатор профілю.
name
Повне ім'я контакта.
firstName
Ім'я контакта.
lastName
Прізвище контакта.
industry
Галузь, зазначена в профілі контакта.
country
Країна контакта.
locality
Місцезнаходження контакта.
social
Посилання на профілі соцмереж контакта.
currentJobs
Масив, який містить інформацію про поточну посаду контакта.
previousJobs
Масив, який містить інформацію про попередні посади контакта.
lastUpdateDate
Дата останнього оновлення контакта.
lists
Списки, до яких було додано контакт.
campaigns
Список розсилок, отримувачем яких є контакт. Містить коротку статистику, наприклад, статус, кількість отриманих ним листів, відкриттів та відповідей на емейли.

GETЗнайти кастомні поля контактів.

Безплатно

Цей метод повертає список усіх кастомних полів, створених користувачем, включно з назвами полів, параметрами, які визначають, обов'язкове поле чи ні, та типом інформації у полі.

Запит
GEThttps://api.snov.io/v1/prospect-custom-fields
Вхідні параметри
Для цього методу відсутні вхідні параметри
Приклади коду
<?php
function customFields()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/prospect-custom-fields?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def custom_fields():
token = get_access_token()
params = {'access_token':token
}

res = requests.get('https://api.snov.io/v1/prospect-custom-fields', data=params)

return json.loads(res.text)
Приклад відповіді
  [
    {
        "key": "customFields['company']",
        "label": "company",
        "required": false,
        "type": "string"
    },
    {
        "key": "customFields['Project name']",
        "label": "Project name",
        "required": false,
        "type": "string"
    },
    {
        "key": "customFields['SEO']",
        "label": "SEO",
        "required": false,
        "type": "string"
    }
  ]
Параметри відповіді
key
Ключ поля у масиві
customFields
.
label
Назва поля.
required
Буде
true
якщо кастомне поле обов'язкове.
type
Тип даних кастомного поля (рядок, число або дата).

GETПерегляд списків користувача

Безплатно

Цей метод надає всі списки, створені користувачем. Ви можете використовувати цей метод, щоб перевірити списки, які можна використовувати для тригерних розсилок.

Запит
GEThttps://api.snov.io/v1/get-user-lists
Вхідні параметри
Для цього методу відсутні вхідні параметри
Приклади коду
<?php
function getUserLists()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-user-lists?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def user_lists():
token = get_access_token()
params = {'access_token':token
}

res = requests.get('https://api.snov.io/v1/get-user-lists', params=params)

return json.loads(res.text)
Приклад відповіді
[
    {
        "id": 1818597,
        "name": "FirstSend",
        "contacts": 1,
        "isDeleted": false,
        "creationDate": {
            "date": "2020-04-07 08:25:44.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "deletionDate": null
    },
    {
        "id": 1505383,
        "name": "All prospects",
        "contacts": 10,
        "isDeleted": true,
        "creationDate": {
            "date": "2019-12-17 15:07:30.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "deletionDate": {
            "date": "2020-02-17 14:05:44.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    },
    {
        "id": 1479070,
        "name": "EMAIL",
        "contacts": 13,
        "isDeleted": true,
        "creationDate": {
            "date": "2019-12-06 10:51:01.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "deletionDate": {
            "date": "2020-02-17 14:05:48.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    }
]

Параметри відповіді
id
Унікальний id списку користувача.
name
Назва списку.
contacts
Кількість контактів у списку.
isDeleted
Статус списку. Повертає
true
, якщо список було видалено.
creationDate
Дата створення списку (дата, час, часовий пояс).
deleteDate
Містить дату видалення, якщо список було видалено (дата, час та часовий пояс).

POSTПерегляд контактів зі списку

Безплатно

Цей метод повертає всі дані про контакти в зазначеному списку, як-от їхня email-адреса та статус.

Запит
POSThttps://api.snov.io/v1/prospect-list
Вхідні параметри
listId
*обов'язковий
Унікальний ID списку.
page
Ви можете вибрати, з якої сторінки розпочати пошук. Це поле не є обов'язковим.
perPage
Установіть максимальну кількість контактів, яку буде включено у відповідь. Максимальне значення – 5 000.
Приклади коду
<?php
function prospectsInList()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'listId'       => '1234567',
        'page'         => '1',
        'perPage'      => '2'
    ];

    $options = [
        CURLOPT_URL            => ' https://api.snov.io/v1/prospect-list',
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def prospect_in_list():
token = get_access_token()
params = {'access_token':token,
        'listId':'1234567',
        'page':'1',
        'perPage':'2'
}

res = requests.post('https://api.snov.io/v1/prospect-list', params=params)

return json.loads(res.text)
Приклад відповіді

Зверніть увагу, що результати відображаються в зворотньому порядку, від останнього контакта до першого.

{
    "success": true,
    "list": {
        "name": "Lead LIST",
        "contacts": 3,
        "creationDate": {
            "date": "2020-05-19 17:34:39.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "emailsCount": []
    },
    "prospects": [
        {
            "id": "226db935fc93422496fda5d5209e8cbf77cc77ec685891706028009b86608f7ce5877a3faf",
            "name": "Andrew Garfiled",
            "firstName": "Andrew",
            "lastName": "Garfiled",
            "emails": [
                {
                    "email": "andrewexp@exp.com",
                    "probability": 99,
                    "isVerified": null,
                    "jobStatus": "any",
                    "domainType": "linkedin_email",
                    "isValidFormat": null,
                    "isDisposable": null,
                    "isWebmail": null,
                    "isGibberish": null,
                    "smtpStatus": null
                }
            ]
        },
        {
            "id": "f20d30219b039d1408d837a748a1e2ab843c97e65080f6cf8fa7d948477d9093d87413f05f",
            "name": "John Doe",
            "firstName": "John",
            "lastName": "Doe",
            "emails": [
                {
                    "email": "johndoe@gmail.com",
                    "probability": 99,
                    "isVerified": null,
                    "jobStatus": "any",
                    "domainType": "linkedin_email",
                    "isValidFormat": true,
                    "isDisposable": false,
                    "isWebmail": true,
                    "isGibberish": false,
                    "smtpStatus": 3
                }
            ]
        }
    ]
}

Параметри відповіді
list
Масив з інформацією про список та контакти в ньому.
name
Назва списку.
contacts
Кількість контактів у списку.
creation_date
Дата створення списку (містить інформацію про дату, час та часовий пояс).
emailsCount
Кількість email-адрес у списку.
prospects
Усі контакти зі списку.
id
Унікальний id контакта.
name
Повне ім'я контакта.
emails
Список email-адрес, які належать контакту.

POSTСтворення нового списку контактів

Безплатно

Скористайтеся цим методом, щоб створити новий список контактів у своєму акаунті.

Запит
POSThttps://api.snov.io/v1/lists
Вхідні параметри
name
Назва нового списку контактів.
Приклади коду
<?php
function createNewList()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'name' => 'New list'
    ];

    $options = [
        CURLOPT_URL => 'https://api.snov.io/v1/lists',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);
}
?>
def add_prospect_list():
    token = get_access_token()
    params = {
        'access_token':token,
        'name':'New list'
    }

    res = requests.post('https://api.snov.io/v1/lists', data=params)

    return json.loads(res.text)
Приклад відповіді
[
    {
        "success": true,
        "data": {
            "id": 1234567
        }
    }
]
Параметри відповіді
id
ID нового списку контактів.

GETОтримати список пайплайнів

Безплатно

Метод показує список усіх пайплайнів із розділу CRM (Угоди), включно з кількістю та загальною вартістю угод у кожному пайплайні.

Запит
GEThttps://api.snov.io/v2/pipelines
Вхідні параметри
Цей метод не має вхідних параметрів.
Приклади коду
<?php
function getUserPipelines()
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/pipelines',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_user_pipelines():
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get('https://api.snov.io/v2/pipelines', headers=headers)

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 1106350,
            "name": "Test pipeline",
            "deals_count": 65,
            "deals_value": 1241600,
            "created_at": "2022-05-27T00:00:00Z"
        },
        {
            "id": 524548,
            "name": "Pipeline",
            "deals_count": 0,
            "deals_value": 0,
            "created_at": "2022-01-10T00:00:00Z"
        }
    ]
}
Параметри відповіді
id
Унікальний ідентифікатор пайплайну.
name
Назва пайплайну.
deals_count
Кількість угод, які зараз у пайплайні.
deals_value
Загальна вартість усіх угод у пайплайні.
created_at
Дата й час створення пайплайну у форматі ISO 8601.

GETОтримати список етапів пайплайну

Безплатно

Метод показує список усіх етапів у межах конкретного пайплайну з розділу CRM (Угоди).

Запит
GEThttps://api.snov.io/v2/pipelines/{pipeline_id}/stages
Вхідні параметри
pipeline_id
Унікальний ідентифікатор пайплайну, етапи якого потрібно отримати.
Приклади коду
<?php
function getPipelineStages($pipelineId)
{
    $token = getAccessToken();
    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/pipelines/' . $pipelineId . '/stages',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
    ];
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_pipeline_stages(pipeline_id):
    token = get_access_token()

    headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    }

    res = requests.get(
        f'https://api.snov.io/v2/pipelines/{pipeline_id}/stages',
        headers=headers
    )

    return json.loads(res.text)
Приклад відповіді
{
    "data": [
        {
            "id": 10001,
            "pipeline_id": 1106350,
            "name": "Lead in",
            "order": 1,
            "deals_count": 54,
            "deals_value": 1011
        },
        {
            "id": 10002,
            "pipeline_id": 1106350,
            "name": "Contact made",
            "order": 2,
            "deals_count": 4,
            "deals_value": 2108
        }
    ]
}
Параметри відповіді
id
Унікальний ідентифікатор етапу.
pipeline_id
ID пайплайну, до якого належить цей етап.
name
Назва етапу.
order
Позиція етапу в межах пайплайну.
deals_count
Кількість угод, які зараз на цьому етапі.
deals_value
Загальна вартість усіх угод на цьому етапі.

GETПеревірка балансу

Безплатно

Використовуйте цей метод, якщо вам необхідно перевірити залишок кредитів на рахунку.

Запит
GEThttps://api.snov.io/v1/get-balance
Вхідні параметри
Для цього методу відсутні вхідні параметри
Приклади коду
<?php
function getBalance()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
    ];

    $params = http_build_query($params);

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v1/get-balance?'.$params,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

    $res = json_decode(curl_exec($ch), true);

    curl_close($ch);

    return $res;

}
?>
def get_balance():
token = get_access_token()
headers = {'authorization':token
}

res = requests.get('https://api.snov.io/v1/get-balance', headers=headers)

return json.loads(res.text)
Приклад відповіді
{
    "success": true,
    "data": {
        "balance": "25000.00",
        "teamwork": false,
        "unique_recipients_used": 0,
        "limit_resets_in": 29,
        "expires_in": 359
    }
}

Параметри відповіді
balance
Поточний баланс користувача в кредитах.
teamwork
true, якщо ви є учасником команди або її лідером, або false, якщо ви не в команді.
recipients_used
Статистика використання отримувачів за поточний місяць.
limit_resets_in
Кількість днів до оновлення ліміту.
expires_in
Кількість днів до завершення підписки.

Вебхуки

Опис

Вебхук дозволяє отримувати сповіщення про події, що трапилися у вашому акаунті Snov.io.

Ви можете використовувати вебхуки для виклику кінцевої точки (URL-адреси) на своєму сервері щоразу, коли в Snov.io трапляється подія, на яку ви підписалися, і надсилання даних до вашої програми в реальному часі.

Коли трапляється подія, Snov.io надсилає HTTP-запит з JSON на визначену URL-адресу кінцевої точки.

Ви можете підписатися та керувати вебхуками через комплекс викликів API.

Нижче переховані вебхуки обʼєктів та подій, що підтримуються:

Обʼєкт вебхуку:Подія:Коли він активується
campaign_email
sentКоли будь-який емейл надсилається отримувачу в будь-якій тригерній розсилці
first_sentКоли перший емейл надсилається отримувачу в будь-якій розсилці
openedКоли отримувач відкриває емейл в будь-якій тригерній розсилці
bouncedКоли емейли кампанії баунсять
link_clickedКоли отримувач натиснув посилання в імейлі кампанії
campaign_reply
receivedКоли отримувач відповідає на будь-який емейл в будь-якій тригерній розсилці
first_receivedКоли отримувач вперше відповідає на емейл в будь-якій тригерній розсилці
autoreply_receivedКоли ви отримуєте автовідповідь на емейл кампанії
campaign_li_reply
receivedКоли отримувач надсилає наступну відповідь у LinkedIn — на запит на контакт, на повідомлення або на InMail — у будь-якій з кампаній
first_receivedКоли отримувач надсилає першу відповідь у LinkedIn — на запит на контакт, на повідомлення або на InMail — у будь-якій з кампаній
campaign_li
connection_request_acceptedКоли отримувач приймає запит на контакт у LinkedIn, надісланий з кампанії
company
found_domains_by_namesКоли ви запитуєте домен компанії на основі її назви
prospect
found_by_li_urlКоли ви запитуєте інформацію з профілю контакта на основі його посилання на LinkedIn
found_emails_by_name_by_domainКоли ви шукаєте email-адресу контакта
campaign_finishedКоли кампанія завершується для отримувача (статус: Завершено)
campaign_unsubscribedКоли отримувач кампанії відписався від ваших імейлів
email_verification
verifiedКоли ви запитуєте верифікацію email-адреси

Ліміти: користувачі на преміум-тарифах можуть створювати до 50 вебхуків.

Повторні спроби: Вебхук вважається успішним, коли ми отримуємо статус HTTP з діапазону 200-299 протягом 3 секунд.

Якщо ми отримуємо будь-який інший статус HTTP або спливає час очікування, ми робимо сім повторних спроб зі збільшенням інтервалів протягом 38 годин після події, яка активувала вебкух:

Якщо всі повторні спроби не є успішними, вебхук стає неактивним.

  • 1-а: одразу після події
  • 2-а: через 20 хвилин після останньої спроби (20 хвилин після події)
  • 3-я: через 40 хвилин після останньої спроби (1 година після події)
  • 4-а: через 60 хвилин після останньої спроби (2 години після події)
  • 5-а: через 4 години після останньої спроби (6 годин після події)
  • 6-а: через 8 годин після останньої спроби (14 годин після події)
  • 7-а: через 24 години після останньої спроби (38 годин після події)

GETСписок всіх вебхуків

Цей метод API дозволяє отримати список вебхуків з вашого акаунта.
Запит
GEThttps://api.snov.io/v2/webhooks
Заголовок запиту даних

Content-Type: application/json

Вхідні параметри
У цього методу відсутні вхідні параметри.
Приклад відповіді
{
    "data": [
        {
            "data": {
                "id": 8,
                "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/awwwcz/",
                "event_object": "campaign_email",
                "event_action": "sent",
                "status": "active",
                "created_at": 1655847444
            }
        },
        {
            "data": {
                "id": 14,
                "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abqqqpcz/",
                "event_object": "campaign_email",
                "event_action": "sent",
                "status": "deactivated",
                "created_at": 1655890563
            }
        },
        {
            "data": {
                "id": 17,
                "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/",
                "event_object": "campaign_email",
                "event_action": "sent",
                "status": "active",
                "created_at": 1656057947
            }
        }
    ],
    "meta": {
        "webhooks_count": 3,
        "user_id": 1313777
    }
}
Параметри відповіді
Відповідь повертає колекцію моделей вебхуків. Властивості моделі перераховані нижче:
ПараметрТип данихТип даних
data
arrayКолекція моделей вебхуків
id
intID вебхуку
end_point
stringПоточна URL-адреса, яку ви вказали під час додавання вебхуку і на яку вебхук буде надіслано
event_object
stringОбʼєкт, з яким трапляється подія
event_action
stringПодія
created_at
intДата створення вебхуку у форматі Unix Timestamp
status
stringСтатус вебхуку: активний, неактивний
meta
objectПовʼязані дані
webhooks_count
intЗагальна кількість вебхуків у вашому акаунті (максимально — 50)
user_id
intВаш ID користувача

POSTДодати вебхук

Цей метод API дозволяє підписатися на вебхук та отримувати сповіщення про події на визначену URL кінцевої точки.
Запит
POSThttps://api.snov.io/v2/webhooks
Заголовок запиту даних

Content-Type: application/json

Вхідні параметри
event_object
обʼєкт, з яким трапляється подія (список обʼєктів, що підтримуються)
event_action
подія, що трапляється з обʼєктом (список подій, що підтримуються)
endpoint_url
URL-адреса, на яку надсилається вебхук
Приклад запиту
{
  "event_object": "campaign_email",
  "event_action": "sent",
  "endpoint_url": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/"
}
Приклад відповіді
{
    "data": {
        "id": 17,
        "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/",
        "event_object": "campaign_email",
        "event_action": "sent",
        "created_at": 1656057947,
        "status": "active"
    },
    "meta": {
        "user_id": 1313777
    }
}
Параметри відповіді
Відповідь повертає модель доданого вебхуку. Властивості моделі перераховані нижче:
ПараметрТип данихТип даних
data
objectДані вебхуку
id
intID вебхуку
end_point
stringПоточна URL-адреса, яку ви вказали під час додавання вебхуку і на яку вебхук буде надіслано
event_object
stringОбʼєкт, з яким трапляється подія
event_action
stringПодія
created_at
intДата створення вебхуку у форматі Unix Timestamp
status
stringСтатус вебхуку: активний, неактивний
meta
objectПовʼязані дані
user_id
intВаш ID користувача

PUTЗмінити статус вебхуку

Змінює статус підписки вибраного вебхуку.

Додайте унікальне значення id вибраного вебхуку в кінці URL-адреси запиту.

Скористайтеся методом «Список всіх вебхуків», щоб отримати значення id вебхуків.

Запит
PUThttps://api.snov.io/v2/webhooks/webhook_id
Заголовок запиту даних

Content-Type: application/json

Вхідні параметри
status
активний або неактивний
Приклад запиту
{
    https://api.snov.io/v2/webhooks/14
    "status": "deactivated"
}
Приклад відповіді
{
    "data": {
        "id": 14,
        "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abqqqpcz/",
        "event_object": "campaign_email",
        "event_action": "sent",
        "created_at": 1655890563,
        "status": "deactivated"
    },
    "meta": {
        "user_id": 1313777
    }
}
Параметри відповіді
Відповідь повертає модель доданого вебхуку. Властивості моделі перераховані нижче:
ПараметрТип данихТип даних
data
objectДані вебхуку
id
intID вебхуку
end_point
stringПоточна URL-адреса, яку ви вказали під час додавання вебхуку і на яку вебхук буде надіслано
event_object
stringОбʼєкт, з яким трапляється подія
event_action
stringПодія
created_at
intДата створення вебхуку у форматі Unix Timestamp
status
stringСтатус вебхуку: активний, неактивний
meta
objectПовʼязані дані
user_id
intВаш ID користувача

DELETEВидалити вебхук

Видаляє вибраний вебхук.

Додайте унікальне значення id вибраного вебхуку в кінці URL-адреси запиту.

Скористайтеся методом «Список всіх вебхуків», щоб отримати значення id вебхуків.

Запит
DELETEhttps://api.snov.io/v2/webhooks/webhook_id
Заголовок запиту даних

Content-Type: application/json

Приклад запиту
{
    https://api.snov.io/v2/webhooks/8
}
Приклад відповіді
{
    "data": {
        "success": true
    }
}
Параметри відповіді
Відповідь повертає колекцію моделей вебхуків. Властивості моделі перераховані нижче:
ПараметрТип данихТип даних
success
booleanВизначає, чи вебхук видалено