Snov.io API

Z funkcji Snov.io możesz korzystać za pomocą naszego prostego REST API. Zintegruj się z API Snov.io, aby synchronizować leady, znajdować adresy e-mail, zarządzać potencjalnymi klientami i nie tylko. Limit API wynosi 60 żądań na minutę.

Jeśli korzystasz z bezpłatnego planu, możesz poprosić o dostęp testowy, rezerwując indywidualne demo z naszym zespołem. Na początek opowiedz nam o swoim konkretnym celu, abyśmy mogli lepiej zrozumieć twoje potrzeby.

Zastosowania API Snov.io

  1. Wzbogać listy potencjalnych klientów, aby zapewnić zespołowi sprzedaży więcej danych
    Znajduj prawdziwe adresy e-mail na podstawie samego imienia i nazwiska lub domeny firmy — idealne rozwiązanie do rozbudowy list potencjalnych klientów lub wzbogacania istniejących danych.
  2. Automatycznie dodawaj nowych użytkowników do kampanii
    Połącz formularze rejestracji i zapisu na wydarzenia z API Snov.io, aby natychmiast dodawać nowych potencjalnych klientów do kampanii.
  3. Dbaj o czystość bazy danych klientów
    Zintegruj weryfikację adresów e-mail z CRM-em lub narzędziami do outreachu, aby natychmiast weryfikować adresy nowo dodanych potencjalnych klientów i utrzymywać aktualność danych obecnych klientów.
  4. Użyj adresów URL na LinkedInie, aby automatycznie uzupełniać dane leadów
    Przekształć zwykły adres URL użytkownika LinkedIna w rozbudowany profil gotowy do użycia w CRM-ie. Pożegnaj ręczne wprowadzanie danych i zyskaj wysokiej jakości leady.
  5. Udostępniaj wyniki kampanii w czasie rzeczywistym
    Pobieraj aktualne dane z kampanii cold outreach i prezentuj je w dopracowanych dashboardach lub slajdach. Dostarczaj interesariuszom potrzebne informacje bez zbędnego wysiłku.
  6. Dbaj o zgodność z listami „do not email”
    Automatycznie dodawaj potencjalnych klientów do list „do not email”, aby uniknąć przypadkowego outreachu. To idealne rozwiązanie, by zachować spójność działań zespołu sprzedaży, respektować rezygnacje z kontaktu i działać zgodnie z zasadami ochrony danych.

Zintegruj te i wiele innych metod ze swoim workflow. Dzięki elastycznemu API możliwości zastosowania są praktycznie nieograniczone.

Uwierzytelnianie

Musisz wygenerować token dostępu, aby uwierzytelniać przyszłe żądania. Podczas wysyłania żądania podaj ten token dostępu w polu Autoryzacja.

Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4

Oto przykład generowania tokena.

Żądanie
POSThttps://api.snov.io/v1/oauth/access_token
Parametry wejściowe
grant_type
Zawsze będzie to
client_credentials
client_id
Twój identyfikator jest dostępny w ustawieniach konta https://app.snov.io/account/api
client_secret
Twój tajny klucz jest dostępny w ustawieniach konta https://app.snov.io/account/api
Przykłady kodu
<?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']
Przykład odpowiedzi
{
"access_token":"3yUyQZdks0Ej7T2fXzjUWzwlTcO4dWisKkeMpESz",
"token_type":"Bearer",
"expires_in":3600
}
Parametry wyjściowe
access_token
Twój nowy token dostępu
token_type
Zawsze będzie Bearer
expires_in
Czas wygaśnięcia tokena (w sekundach)

Metody API

POSTWyszukiwanie domeny

1 kredyt za każde unikalne żądanie / 1 kredyt za każdy profil potencjalnego klienta z adresem e-mail

Wpisz nazwę domeny, a Snov.io zwróci informacje o firmie, adresy e-mail i profile potencjalnych klientów.

Koszt w kredytach
Żądania informacji o firmie, adresów e-mail i profili potencjalnych klientów

1 kredyt za każde żądanie POST. Jeśli nie otrzymasz żadnych wyników, kredyt nie zostanie naliczony.

Adresy e-mail z profilu potencjalnego klienta

1 kredyt za każdy profil potencjalnego klienta z adresem e-mail.

Domain search schema
Informacje o firmie (żądanie wyników)
1 kredyt za każde unikalne żądanie.
POSThttps://api.snov.io/v2/domain-search/start
Parametry wejściowe
domain
Nazwa domeny, dla której chcesz otrzymać informacje o firmie. Na przykład „snov.io”.
Przykłady kodu
<?php
function companyInfoSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
        'webhook_url' => 'https://hooks.yourdomain.com',
    ];
    $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',
  'webhook_url': 'https://hooks.yourdomain.com'
}

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

return json.loads(res.text)
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "task_hash": "6f15de14db954c761f8e7507547b3bd7"
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/result/6f15de14db954c761f8e7507547b3bd7"
  }
}
Parametry wyjściowe
domain
Domena, dla której pobierasz informacje o firmie.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania. Jest automatycznie dodawany do adresu URL kolejnego żądania, aby otrzymać wyniki.
result
Adres URL żądania, którego należy użyć, aby otrzymać informacje o firmie.
Informacje o firmie (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/domain-search/result/{task_hash}
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
}
Parametry wyjściowe
company_name
Nazwa firmy powiązanej z domeną.
city
Miasto, w którym znajduje się siedziba firmy.
founded
Rok założenia firmy.
website
Adres strony internetowej firmy.
hq_phone
Numer telefonu do siedziby firmy.
industry
Branża firmy.
size
Liczba pracowników firmy.
related_domains
Domeny z tą samą domeną drugiego poziomu (SLD) co domena, dla której pobierasz dane.
domain
Nazwa domeny, dla której API zwróciło informacje o firmie.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
prospects_count
Liczba profili potencjalnych klientów pobranych w wyniku żądania.
emails_count
Liczba adresów e-mail z domeny pobranych w wyniku żądania.
generic_contacts_count
Liczba ogólnych adresów e-mail pobranych w wyniku żądania.
prospects
Adres URL do żądania listy z pełnymi profilami potencjalnych klientów.
domain_emails
Adres URL do żądania listy z adresami e-mail z domeny.
generic_contacts
Adres URL do żądania listy z ogólnymi adresami e-mail firmy.
status
Status żądania. Może mieć wartość ukończone lub w toku.
Profile potencjalnych klientów (żądanie wyników)
1 kredyt za każde unikalne żądanie.
POSThttps://api.snov.io/v2/domain-search/prospects/start
Parametry wejściowe
domain
Nazwa domeny, dla której chcesz znaleźć profile potencjalnych klientów. Na przykład „snov.io”.
positions[]
Użyj tego parametru, aby filtrować potencjalnych klientów według stanowiska, na przykład „Software Developer”. Aby filtrować według wielu stanowisk, wprowadź tablicę wymaganych stanowisk rozdzielonych przecinkami.

Możesz filtrować według maksymalnie 10 stanowisk na żądanie.
page
Numer strony zawierającej profile potencjalnych klientów. Każda strona wyświetla maksymalnie 20 profili.

Jeśli numer strony nie zostanie podany, domyślnie zostanie zwrócona pierwsza strona.
Przykłady kodu
<?php
function prospectsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain'       => 'snov.io',
        'page'         => 1,
        'positions'    => ['Web developer','QA Engineer'],
        'webhook_url'  => 'https://hooks.yourdomain.com'
    ];

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

    $options = [
        CURLOPT_URL            => 'https://api.snov.io/v2/domain-search/prospects/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'],
  'webhook_url': 'https://hooks.yourdomain.com'
}

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

return json.loads(res.text)
Przykład odpowiedzi
{
  "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"
  }
}
Parametry wyjściowe
domain
Domena, dla której pobierasz profile potencjalnych klientów.
tab
Wyświetla typ żądanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania. Jest automatycznie dodawany do adresu URL kolejnego żądania, aby otrzymać wyniki.
page
Numer strony zawierającej profile potencjalnych klientów. Każda strona wyświetla maksymalnie 20 profili.
positions
Stanowiska użyte do filtrowania wyników.
result
Adres URL żądania, którego należy użyć, aby otrzymać profile potencjalnych klientów.
Profile potencjalnych klientów (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/domain-search/prospects/result/{task_hash}
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
}
Parametry wyjściowe
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
position
Stanowisko potencjalnego klienta.
source_page
Strona źródłowa pobranych danych osobowych.
search_emails_start
Adres URL kolejnego żądania do wyszukania adresu e-mail potencjalnego klienta.
domain
Domena, dla której pobierasz profile potencjalnych klientów.
tab
Wyświetla typ otrzymywanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
page
Numer strony zawierającej profile potencjalnych klientów. Każda strona wyświetla maksymalnie 20 profili.
positions
Stanowiska użyte do filtrowania wyników.
total_count
Łączna liczba znalezionych profili potencjalnych klientów.
next
Adres URL kolejnego żądania do pobrania wyników z następnej strony. Każda strona zawiera maksymalnie 20 potencjalnych klientów.
status
Status żądania. Może mieć wartość ukończone lub w toku.
Adres e-mail potencjalnego klienta (żądanie wyników)
Adres URL otrzymany z poprzedniego żądania. Za każdego potencjalnego klienta z adresem e-mail zostanie naliczony 1 kredyt.
POSThttps://api.snov.io/v2/domain-search/prospects/search-emails/start/{prospect_hash}
Przykłady kodu
<?php
function searchProspectEmailsStart()
{
    $token = getAccessToken();

    $headers = [
        'Authorization: Bearer ' . $token,
    ];
    $task = '41627edbfff8ba9c0819a1aa51d232baf3fa1763e5813dc86e027ccbbefd7a16b0522391086776b8764c94d02bab1257df392';
    $params = [
        'webhook_url' => 'https://hooks.yourdomain.com',
    ];

    $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_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 search_prospect_emails_start():
token = get_access_token()
headers = {'authorization': f'Bearer {token}'}
params = {
  'webhook_url': 'https://hooks.yourdomain.com'
}

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

return json.loads(res.text)
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/prospects/search-emails/result/5e846a1d80d95f66cfb30250a7c1881f"
  }
}
Parametry wyjściowe
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
result
Adres URL kolejnego żądania do pobrania adresu e-mail potencjalnego klienta.
Adres e-mail potencjalnego klienta (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/domain-search/prospects/search-emails/result/{task_hash}
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "data": {
    "searching_date": "2025-01-01 11:11:11",
    "emails": [
      {
        "email": "example@snov.io",
        "smtp_status": "valid"
      }
    ]
  },
  "meta": {
    "task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
  },
  "links": [],
  "status": "completed"
}
Parametry wyjściowe
searching_date
Data wyszukania adresu e-mail.
emails
Adresy e-mail potencjalnych klientów.
smtp_status
Może zwrócić status prawidłowy lub nieznany (czyli Nieweryfikowalny). Więcej informacji o statusach adresów e-mail znajdziesz tutaj.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
status
Status żądania. Może mieć wartość ukończone lub w toku.
Adresy e-mail z domeny (żądanie wyników)
1 kredyt za każde unikalne żądanie.
POSThttps://api.snov.io/v2/domain-search/domain-emails/start
Parametry wejściowe
domain
Nazwa domeny firmy, dla której chcesz znaleźć adresy e-mail z domeny. Na przykład „snov.io”.
Przykłady kodu
<?php
function domainEmailsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
        'webhook_url' => 'https://hooks.yourdomain.com',
    ];
    $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',
  'webhook_url': 'https://hooks.yourdomain.com'
}

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

return json.loads(res.text)
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "tab": "emails",
    "task_hash": "36fce9ac2667a827f6c5ab954e288bed",
    "next": ""
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/domain-emails/result/36fce9ac2667a827f6c5ab954e288bed"
  }
}
Parametry wyjściowe
domain
Domena, dla której pobierasz adresy e-mail.
tab
Wyświetla typ żądanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania. Jest automatycznie dodawany do kolejnego żądania, aby otrzymać wyniki.
next
Identyfikator kolejnego żądania strony, jeśli jest dostępna. Jeśli nie ma więcej stron, pole będzie puste.
result
Adres URL żądania, którego należy użyć, aby otrzymać adresy e-mail z domeny.
Adresy e-mail z domeny (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/domain-search/domain-emails/result/{task_hash}
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
}
Parametry wyjściowe
email
Adres e-mail z domeny.

Pamiętaj, że te adresy e-mail nie są zweryfikowane. Aby je zweryfikować, użyj metody Weryfikatora Adresów E-mail.
domain
Domena, dla której pobierasz adresy e-mail.
tab
Wyświetla typ otrzymywanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
next
Identyfikator dodawany do adresu URL żądania, aby uzyskać dostęp do kolejnej strony adresów e-mail, jeśli istnieje.
total_count
Łączna liczba znalezionych adresów e-mail z domeny.
next
Adres URL żądania do pobrania wyników z kolejnej strony, jeśli istnieje. Każda strona zawiera maksymalnie 50 adresów e-mail.
status
Status żądania. Może mieć wartość ukończone lub w toku.
Kontakty ogólne (żądanie wyników)
1 kredyt za każde unikalne żądanie.
POSThttps://api.snov.io/v2/domain-search/generic-contacts/start
Parametry wejściowe
domain
Nazwa domeny firmy, dla której chcesz znaleźć ogólne adresy e-mail. Na przykład „snov.io”.
Przykłady kodu
<?php
function genericContactsSearch()
{
    $token = getAccessToken();

    $params = [
        'domain' => 'snov.io',
        'webhook_url' => 'https://hooks.yourdomain.com',
    ];
    $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',
  'webhook_url': 'https://hooks.yourdomain.com'
}

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

return json.loads(res.text)
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "domain": "snov.io",
    "tab": "service",
    "task_hash": "0e36e43b9b91a9b20d14b82c1ee141f2",
    "next": ""
  },
  "links": {
    "result": "https://api.snov.io/v2/domain-search/generic-contacts/result/0e36e43b9b91a9b20d14b82c1ee141f2"
  }
}
Parametry wyjściowe
domain
Domena, dla której pobierasz ogólne adresy e-mail.
tab
Wyświetla typ żądanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania. Jest automatycznie dodawany do kolejnego żądania, aby otrzymać wyniki.
next
Identyfikator kolejnego żądania strony, jeśli jest dostępna. Jeśli nie ma więcej stron, pole będzie puste.
result
Adres URL żądania, którego należy użyć, aby otrzymać ogólne adresy e-mail.
Kontakty ogólne (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/domain-search/generic-contacts/result/{task_hash}
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
}
Parametry wyjściowe
email
Adres e-mail kontaktu ogólnego.

Pamiętaj, że te adresy e-mail nie są zweryfikowane. Aby je zweryfikować, użyj metody Weryfikatora Adresów E-mail.
domain
Domena, dla której pobierasz ogólne adresy e-mail.
tab
Wyświetla typ otrzymywanych wyników.

prospects oznacza, że szukasz profili potencjalnych klientów.

emails wyświetla adresy e-mail z domeny.

service oznacza, że pobierasz ogólne adresy e-mail.
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
next
Identyfikator dodawany do adresu URL żądania, aby uzyskać dostęp do kolejnej strony adresów e-mail, jeśli istnieje.
total_count
Łączna liczba ogólnych adresów e-mail znalezionych dla domeny.
next
Adres URL żądania do pobrania wyników z kolejnej strony, jeśli istnieje. Każda strona zawiera maksymalnie 50 adresów e-mail.
status
Status żądania. Może mieć wartość ukończone lub w toku.

POSTWyszukiwarka bazy danych

Przeszukuj bazę danych pod kątem potencjalnych klientów i firm. Używaj filtrów, aby zawęzić wyszukiwanie.

Database search schema
Wyszukiwanie potencjalnych klientów (pobieranie wyników)
Bezpłatne (ograniczone do 1 strony wyników dla bezpłatnych kont Snov.io)
POSThttps://api.snov.io/v2/database-search/prospects/start
Parametry wejściowe
filters.prospect.job_titles.include
Lista stanowisk, które chcesz uwzględnić.
filters.prospect.job_titles.exclude
Lista stanowisk do wykluczenia.
filters.prospect.management_levels.include
Lista stanowisk według poziomu zarządzania, które chcesz uwzględnić. Dostępne opcje: poziom c, poziom vp, poziom dyrektora, poziom menedżera, pracownik.
filters.prospect.management_levels.exclude
Lista stanowisk według poziomu zarządzania do wykluczenia. Dostępne opcje: poziom c, poziom vp, poziom dyrektora, poziom menedżera, pracownik.
filters.prospect.departments.include
Lista działów do uwzględnienia w wyszukiwaniu. Dostępne opcje: inżynieria, zasoby ludzkie, IT/IS, finanse i administracja, marketing, operacje, sprzedaż, wsparcie, inne.
filters.prospect.departments.exclude
Lista działów do wykluczenia z wyszukiwania. Dostępne opcje: inżynieria, zasoby ludzkie, IT/IS, finanse i administracja, marketing, operacje, sprzedaż, wsparcie, inne.
filters.prospect.locations.include.locality
Lokalizacje do uwzględnienia, np. Londyn

Jeśli nie znaleziono dopasowania, API zwraca maksymalnie 15 podobnych opcji.
filters.prospect.locations.include.location_type
Typy lokalizacji do uwzględnienia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.prospect.locations.exclude.locality
Lokalizacje do wykluczenia, np. Atlanta

Jeśli nie znaleziono dopasowania, API zwraca maksymalnie 15 podobnych opcji.
filters.prospect.locations.exclude.location_type
Typy lokalizacji do wykluczenia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.prospect.skills.include
Lista umiejętności potencjalnego klienta, które chcesz uwzględnić w wyszukiwaniu.
filters.prospect.skills.exclude
Lista umiejętności potencjalnego klienta, które chcesz wykluczyć z wyszukiwania.
filters.prospect.first_name
Imię potencjalnego klienta.
filters.prospect.last_name
Nazwisko potencjalnego klienta.
Filtry firmowe
filters.company.name.include
Lista nazw firm do uwzględnienia.
filters.company.name.exclude
Lista nazw firm do wykluczenia.
filters.company.locations.include.locality
Lokalizacje firm do uwzględnienia, np. Londyn

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych wyników.
filters.company.locations.include.location_type
Typy lokalizacji firm do uwzględnienia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.company.locations.exclude.locality
Lokalizacje firm do wykluczenia, np. Atlanta

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych wyników.
filters.company.locations.exclude.location_type
Typy lokalizacji firm do wykluczenia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.company.industries.include
Lista branż do uwzględnienia.

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych wyników.
filters.company.industries.exclude
Lista branż do wykluczenia.

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych wyników.
filters.company.size
Zakres wielkości firmy. Dostępne opcje: samozatrudnienie, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
filters.company.revenue.min
Minimalny przychód firmy. Dostępne opcje: 0, 1, 500000, 1000000, 2500000, 5000000, 10000000, 20000000, 50000000, 100000000, 500000000, 1000000000

Pamiętaj: minimalny przychód nie może przekraczać ustawionego maksymalnego przychodu.
filters.company.revenue.max
Maksymalny przychód firmy. Dostępne opcje: 0, 1, 500000, 1000000, 2500000, 5000000, 10000000, 20000000, 50000000, 100000000, 500000000, 1000000000, 1000000000000
filters.company.specialities
Lista obszarów, w których specjalizuje się firma.
filters.company.founded.from
Rok założenia firmy (od).
filters.company.founded.till
Rok założenia firmy (do).
Paginacja
page
Numer strony. Domyślnie zwracana jest strona 1.
Przykłady kodu
<?php
function prospectsSearch()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'page' => 1,
        'webhook_url' => 'https://hooks.yourdomain.com',
        'filters' => [
            'prospect' => [
                'first_name' => 'John',
                'last_name' => 'Doe',
            ],
            'company' => [
                'name' => [
                    'include' => ['Snov.io']
                ],
            ],
        ],
    ];

    $options = [
        CURLOPT_URL => 'https://api.snov.io/v2/database-search/prospects/start?' . http_build_query($params),
        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 prospects_search():
    token = get_access_token()

    params = {
        "access_token": token,
        "page": 1,
        "webhook_url": "https://hooks.yourdomain.com",
        "filters": {
            "prospect": {
                "first_name": "John",
                "last_name": "Doe",
            },
            "company": {
                "name": {
                    "include": ["Snov.io"]
                }
            }
        }
    }

    response = requests.post(
        "https://api.snov.io/v2/database-search/prospects/start",
        json=params,
    )

    return response.json()
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "task_hash": "e8401d70910918cdb370153a306d1400",
    "page": 1
  },
  "links": {
    "result": "https://api.snov.io/v2/database-search/prospects/result/e8401d70910918cdb370153a306d1400"
  }
}
Parametry wyjściowe
task_hash
Unikalny ID rozpoczętego zadania wyszukiwania.
result
Adres URL żądania, którego należy użyć do otrzymania wyników.
Wyszukiwanie potencjalnych klientów (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/database-search/prospects/result/{task_hash}
Przykłady kodu
<?php
function prospectsResult()
{
    $token = getAccessToken();

    $task_hash = '3384369c16aad810f58609a40ad65089';

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

    $options = [
        CURLOPT_URL => "https://api.snov.io/v2/database-search/prospects/result/$task_hash?" . http_build_query($params),
        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"

    response = requests.get(
        f"https://api.snov.io/v2/database-search/prospects/result/{task_hash}",
        params={
            "access_token": token
        }
    )

    return response.json()
Przykład odpowiedzi
{
  "data": {
    "total": 162,
    "page": 1,
    "total_pages": 4,
    "prospects": [
      {
        "first_name": "John",
        "last_name": "Sm***",
        "job_title": "linkbuilder",
        "location": "Kyiv, Kyiv, Ukraine",
        "linkedin_url": "https://linkedin.com/in/jo******",
        "industry": "Computer Software",
        "list_id": 123,
        "email_and_hidden_info_reveal": "https://api.snov.io/v2/database-search/prospects/search-emails/start/{task_hash}",
        "company": {
          "name": "Snov.io",
          "domain": "snov.io",
          "location": "New York, New York, United States",
          "industry": "Computer Software",
          "size": "51-200"
        }
      }
    ]
  },
  "meta": {
    "task_hash": "832c2ae36ca4e80fcbddeae0dea70efd",
    "page": 1
  },
  "links": [],
  "status": "completed"
}
Parametry wyjściowe
total
Łączna liczba znalezionych potencjalnych klientów.
page
Numer strony.
total_pages
Łączna liczba stron z wynikami.
prospects
Tablica z informacjami o potencjalnych klientach.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
job_title
Stanowisko potencjalnego klienta.
location
Lokalizacja potencjalnego klienta.
linkedin_url
Adres URL profilu potencjalnego klienta na LinkedInie.
industry
Branża, w której pracuje potencjalny klient.
list_id
Wyświetla ID listy potencjalnych klientów, do której dodano potencjalnego klienta. Wyświetla się tylko wtedy, gdy potencjalny klient został już dodany do listy.
email_and_hidden_info_reveal
Adres URL do użycia w następnym żądaniu, aby uzyskać adres e-mail potencjalnego klienta.
company
Tablica z informacjami o firmie.
name
Nazwa firmy.
domain
Domena firmy.
location
Lokalizacja firmy.
industry
Branża, w której działa firma.
size
Wielkość firmy.
task_hash
Hash zadania do użycia w następnym żądaniu, aby uzyskać adres e-mail potencjalnego klienta.
Profil potencjalnego klienta z adresem e-mail (pobieranie wyników)
1 kredyt za każdego potencjalnego klienta z adresem e-mail. Użyj adresu URL + hasha zadania otrzymanych z poprzedniego żądania.
POSThttps://api.snov.io/v2/database-search/prospects/search-emails/start/{task_hash}
Przykłady kodu
<?php
function searchProspectEmailsStart()
{
    $token = getAccessToken();

    $task_hash = '5e846a1d80d95f66cfb30250a7c1881f';

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

    $options = [
        CURLOPT_URL => "https://api.snov.io/v2/database-search/prospects/search-emails/start/$task_hash?" . http_build_query($params),
        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 search_prospect_emails_start():
    token = get_access_token()

    task_hash = "5e846a1d80d95f66cfb30250a7c1881f"

    response = requests.post(
        f"https://api.snov.io/v2/database-search/prospects/search-emails/start/{task_hash}",
        json={
            "access_token": token
        }
    )

    return response.json()
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "task_hash": "15e843a82ac180b5369aa97a879ae200"
  },
  "links": {
    "result": "https://api.snov.io/v2/database-search/prospects/search-emails/result/15e843a82ac180b5369aa97a879ae200"
  }
}
Parametry wyjściowe
task_hash
Unikalny ID rozpoczętego zadania wyszukiwania.
result
Adres URL do użycia w następnym żądaniu, aby uzyskać adres e-mail potencjalnego klienta.
Profil potencjalnego klienta z adresem e-mail (pobieranie wyników)
Użyj adresu URL otrzymanego z poprzedniego żądania.
GEThttps://api.snov.io/v2/database-search/prospects/search-emails/result/{task_hash}
Przykłady kodu
<?php
function searchProspectEmailsResult()
{
    $token = getAccessToken();

    $task_hash = '5e846a1d80d95f66cfb30250a7c1881f';

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

    $options = [
        CURLOPT_URL => "https://api.snov.io/v2/database-search/prospects/search-emails/result/$task_hash?" . http_build_query($params),
        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 = "5e846a1d80d95f66cfb30250a7c1881f"

    response = requests.get(
        f"https://api.snov.io/v2/database-search/prospects/search-emails/result/{task_hash}",
        params={
            "access_token": token
        }
    )

    return response.json()
Przykład odpowiedzi
{
  "data": {
    "searching_date": "2026-07-09 10:07:39",
    "first_name": "John",
    "last_name": "Doe",
    "linkedin_url": "https://www.linkedin.com/in/john-doe",
    "emails": [
      {
        "email": "john.doe@snov.io",
        "smtp_status": "valid"
      }
    ]
  },
  "meta": {
    "task_hash": "15e843a82ac180b5369aa97a879ae200"
  },
  "links": [],
  "status": "completed"
}
Parametry wyjściowe
searching_date
Data uruchomienia wyszukiwania adresu e-mail.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
linkedin_url
Adres URL LinkedIna potencjalnego klienta.
email
Adres e-mail potencjalnego klienta.
smtp_status
Może zwrócić prawidłowy lub nieznany (czyli Nieweryfikowalny). Więcej informacji o statusach adresów e-mail znajdziesz tutaj.
task_hash
Hash zadania dla rozpoczętego zadania wyszukiwania.
Wyszukiwanie firm (pobieranie wyników)
1 kredyt za każde unikalne żądanie, jeśli w wynikach znajduje się co najmniej jeden rekord.
POSThttps://api.snov.io/v2/database-search/companies/start
Parametry wejściowe
filters.company.name.include
Lista nazw firm, które chcesz uwzględnić.
filters.company.name.exclude
Lista nazw firm, które chcesz wykluczyć.
filters.locations.include.locality
Lokalizacje do uwzględnienia, np. Londyn

Jeśli nie znaleziono dopasowania, API zwraca maksymalnie 15 podobnych opcji.
filters.locations.include.location_type
Typy lokalizacji do uwzględnienia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.locations.exclude.locality
Lokalizacje do wykluczenia, np. Atlanta

Jeśli nie znaleziono dopasowania, API zwraca maksymalnie 15 podobnych opcji.
filters.locations.exclude.location_type
Typy lokalizacji do wykluczenia. Dostępne opcje: miasto, stan, kraj, region, podregion.
filters.company.industries.include
Lista branż do uwzględnienia.

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych branż.
filters.company.industries.exclude
Lista branż do wykluczenia.

Jeśli nie znaleziono dopasowania, API zwraca listę podobnych branż.
filters.company.size
Zakres wielkości firmy. Dostępne opcje: samozatrudnienie, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
filters.company.revenue.min
Minimalny przychód firmy. Dostępne opcje: 0, 1, 500000, 1000000, 2500000, 5000000, 10000000, 20000000, 50000000, 100000000, 500000000, 1000000000

Pamiętaj: minimalny przychód nie może przekraczać ustawionego maksymalnego przychodu.
filters.company.revenue.max
Maksymalny przychód firmy. Dostępne opcje: 0, 1, 500000, 1000000, 2500000, 5000000, 10000000, 20000000, 50000000, 100000000, 500000000, 1000000000, 1000000000000
filters.company.specialities
Lista obszarów, w których specjalizuje się firma.
filters.company.founded.from
Rok założenia firmy (od).
filters.company.founded.till
Rok założenia firmy (do).
Paginacja
page
Numer strony. Domyślnie zwracana jest strona 1.
Przykłady kodu
<?php
function companiesSearch()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'page' => 1,
        'webhook_url' => 'https://hooks.yourdomain.com',
        'filters' => [
            'company' => [
                'name' => [
                    'include' => ['Snov.io']
                ],
            ],
        ],
    ];

    $options = [
        CURLOPT_URL => 'https://api.snov.io/v2/database-search/companies/start?' . http_build_query($params),
        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 companies_search():
    token = get_access_token()

    params = {
        "access_token": token,
        "page": 1,
        "webhook_url": "https://hooks.yourdomain.com",
        "filters": {
            "company": {
                "name": {
                    "include": ["Snov.io"]
                }
            }
        }
    }

    response = requests.post(
        "https://api.snov.io/v2/database-search/companies/start",
        json=params,
    )

    return response.json()
Przykład odpowiedzi
{
  "data": [],
  "meta": {
    "task_hash": "f263aa25a2aae80ddebec51b4ee9be23",
    "page": 1
  },
  "links": {
    "result": "https://api.snov.io/v2/database-search/companies/result/f263aa25a2aae80ddebec51b4ee9be23"
  }
}
Parametry wyjściowe
task_hash
Unikalny ID rozpoczętego zadania wyszukiwania.
result
Adres URL żądania, którego należy użyć do otrzymania wyników.
Wyszukiwanie firm (pobieranie wyników)
Adres URL otrzymany z poprzedniego żądania.
GEThttps://api.snov.io/v2/database-search/companies/result/{task_hash}
Przykłady kodu
<?php
function companiesResult()
{
    $token = getAccessToken();

    $task_hash = '3384369c16aad810f58609a40ad65089';

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

    $options = [
        CURLOPT_URL => "https://api.snov.io/v2/database-search/companies/result/$task_hash?" . http_build_query($params),
        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 companies_result():
    token = get_access_token()

    task_hash = "3384369c16aad810f58609a40ad65089"

    response = requests.get(
        f"https://api.snov.io/v2/database-search/companies/result/{task_hash}",
        params={
            "access_token": token
        }
    )

    return response.json()
Przykład odpowiedzi
{
  "data": {
    "total": 4328524,
    "page": 1,
    "total_pages": 86571,
    "companies": [
      {
        "name": "Snov.io",
        "domain": "snov.io",
        "location": "New York, New York, United States",
        "industry": "Computer Software",
        "size": "51-200",
        "revenue": {
          "min": 20000000,
          "max": 50000000,
          "reported": 0
        },
        "logo_url": "https://app.snov.io/media/img/companies/5811bb1a217b8c578a604e9e33055a98.jpg"
      }
    ]
  },
  "meta": {
    "task_hash": "bbb948e398787454a594f9f03f8f2fd0",
    "page": 1
  },
  "links": [],
  "status": "completed"
}
Parametry wyjściowe
total
Łączna liczba znalezionych firm.
page
Numer strony.
total_pages
Łączna liczba stron z wynikami.
companies
Tablica z informacjami o konkretnej firmie.
name
Nazwa firmy.
domain
Domena firmy.
location
Lokalizacja firmy.
industry
Branża, w której działa firma.
size
Zakres wielkości firmy.
revenue
Tablica z przychodami firmy.
min
Minimalny przychód firmy.
max
Maksymalny przychód firmy.
reported
Przychód wskazany przez firmę w jej profilu.
logo_url
Adres URL logo firmy.
task_hash
Unikalny ID rozpoczętego zadania wyszukiwania.

POSTSprawdź liczbę dostępnych e-maili

Bezpłatne

Dzięki tej metodzie API możesz sprawdzić liczbę adresów e-mail z określonej domeny w naszej bazie danych. Jest całkowicie bezpłatna, więc nie potrzebujesz kredytów, aby z niej korzystać!

Żądanie
POSThttps://api.snov.io/v1/get-domain-emails-count
Parametry wejściowe
domain
Nazwa domeny, dla której chcesz sprawdzić liczbę adresów e-mail w naszej bazie danych.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
"success":true,
"domain":"octagon.com",
"webmail":false,
"result":1369
}
Parametry wyjściowe
domain
Nazwa domeny, dla której chcesz sprawdzić liczbę adresów e-mail w naszej bazie danych.
webmail
To
true
jeśli domena, którą wyszukujesz, jest domeną webmail.
result
Łączna liczba adresów e-mail, które znaleźliśmy dla tej domeny. Nie możemy podać wyników dla domen webmail, więc wynik dla nich zawsze będzie wynosił
0
.

POSTZnajdź adresy e-mail na podstawie imienia i nazwiska oraz domeny

1 kredyt za każdy adres e-mail ze statusem prawidłowy lub nieznany

Wprowadź imię i nazwisko potencjalnego klienta oraz domenę firmy, a Snov.io zwróci jego zweryfikowany adres e-mail.

Podawanie imienia i nazwiska oraz domeny
POSThttps://api.snov.io/v2/emails-by-domain-by-name/start
Parametry wejściowe

Najłatwiej wysłać to żądanie za pomocą surowego kodu JSON. Jeśli jednak wolisz używać Parametrów, tutaj znajdziesz przykład

rows
Tablica obiektów zawierających dane potencjalnych klientów (imię, nazwisko i domenę).
Każde żądanie może zawierać maksymalnie 10 obiektów.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
domain
Domena firmy, w której pracuje potencjalny klient.
webhook_url
Wprowadź adres URL webhooka, aby otrzymywać wyniki natychmiast zamiast korzystać z zadania hash.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "data": {
    "task_hash": "005ffad65aad581943cf65a45112ca7a"
  },
  "meta": {
    "rows": [
      {
        "first_name": "John",
        "last_name": "Doe",
        "domain": "yourdomain.com"
      },
      {
        "first_name": "Jane",
        "last_name": "Doe",
        "domain": "yourdomain.com"
      }
    ]
  }
}
Parametry wyjściowe
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
domain
Domena firmy, w której pracuje potencjalny klient.
Otrzymywanie adresów e-mail
GEThttps://api.snov.io/v2/emails-by-domain-by-name/result
Parametry wejściowe
task_hash
Unikalny ID żądania otrzymany z poprzedniego żądania.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
  }
}
Parametry wyjściowe
status
Status żądania. Może mieć wartość ukończone lub w toku.
Możesz otrzymać status not_enough_credits, jeśli konto używane do wyszukiwania nie ma wystarczającej liczby kredytów.
people
Pełne imię i nazwisko potencjalnego klienta.
email
Adres e-mail potencjalnego klienta.
smtp_status
Może zwrócić status prawidłowy lub nieznany (czyli Nieweryfikowalny).
Aby sprawdzić przyczynę statusu nieznanego, sprawdź parametr unknown_status_reason.
is_valid_format
Wskazuje, czy format adresu e-mail jest prawidłowy. Może mieć wartość fałsz lub prawda.
is_disposable
Wskazuje, czy adres e-mail jest tymczasowy lub jednorazowy. Zwraca wartość fałsz lub prawda.
is_webmail
Wartość prawda oznacza, że wyszukiwany adres e-mail jest adresem webmail.
is_gibberish
Wskazuje, czy podany adres e-mail zawiera losowe lub bezsensowne znaki. Może mieć wartość fałsz lub prawda.
unknown_status_reason
Jeśli zweryfikowany adres e-mail ma nieznany smtp_status, tutaj znajdziesz bardziej szczegółową przyczynę.
Zablokowany: Wysokie ryzyko problemów z dostarczalnością – tego adresu e-mail nie udało się zweryfikować ze 100% pewnością.
Catch-all: Ryzyko dla reputacji nadawcy – ten adres e-mail jest adresem catch-all.
Błąd_połączenia: Potencjalne ryzyko odrzucenia – problemy techniczne po stronie odbiorcy.
Greylist: Ryzyko problemów z dostarczalnością – ten serwer pocztowy używa filtrów greylistingu.
domain
Domena firmy, w której pracuje potencjalny klient.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
task_hash
Unikalny ID tego zadania wyszukiwania.

POSTZnajdź domenę na podstawie nazwy firmy

1 kredyt za każdy znaleziony adres domeny

Wprowadź nazwy firm, a Snov.io zwróci adresy ich domen

Podawanie nazw firm
POSThttps://api.snov.io/v2/company-domain-by-name/start
Parametry wejściowe
names[]
Tablica nazw firm, dla których chcesz otrzymać domeny.
Aby pobrać domeny dla wielu firm, dodaj każdą z nich jako osobny parametr. Na przykład:
names[] | Snov.io
names[] | Sendpulse
Możesz podać jednocześnie maksymalnie 10 nazw firm.
webhook_url
Wprowadź adres URL webhooka, aby otrzymywać wyniki natychmiast zamiast korzystać z zadania hash.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "data": {
    "task_hash": "959c0f60facb8629bba746e091a26f7b"
  },
  "meta": {
    "names": [
      "Snov.io",
      "Sendpulse"
    ]
  }
}
Parametry wyjściowe
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
names
Tablica podanych nazw firm.
Otrzymywanie domen firm
GEThttps://api.snov.io/v2/company-domain-by-name/result?task_hash={hash_from_1}
Parametry wejściowe
task_hash
Unikalny ID żądania otrzymany z poprzedniego żądania.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "status": "completed",
  "data": [
    {
      "name": "Snov.io",
      "result": {
        "domain": "snov.io"
      }
    },
    {
      "name": "Sendpulse",
      "result": {
        "domain": "sendpulse.com"
      }
    }
  ],
  "meta": {
    "names": [
      "Snov.io",
      "Sendpulse"
    ],
    "task_hash": "959c0f60facb8629bba746e091a26f7b"
  }
}
Parametry wyjściowe
status
Status żądania. Może mieć wartość ukończone lub w toku.
name
Nazwa firmy, dla której poproszono o adres domeny.
domain
Domena firmy.
names
Tablica podanych nazw firm.
task_hash
Unikalny ID tego zadania wyszukiwania.

POSTPobierz informacje z profilu na LinkedInie na podstawie adresów URL

1 kredyt za informacje o każdym profilu potencjalnego klienta

Wprowadź adresy URL użytkowników LinkedIna, a Snov.io pobierze pełne informacje z ich profili.

Podawanie Adresów URL LinkedIna
POSThttps://api.snov.io/v2/li-profiles-by-urls/start
Parametry wejściowe
urls[]
Tablica adresów URL profili na LinkedInie, dla których chcesz otrzymać pełne informacje z profilu.
Aby pobrać informacje z profili wielu użytkowników LinkedIna jednocześnie, dodaj każdy adres URL jako osobny parametr.
Możesz podać jednocześnie maksymalnie 10 adresów URL LinkedIna.
webhook_url
Wprowadź adres URL webhooka, aby otrzymywać wyniki natychmiast zamiast korzystać z zadania hash.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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/"
    ]
  }
}
Parametry wyjściowe
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
urls
Adresy URL profili, dla których żądasz informacji.
Otrzymywanie informacji z profilu
GEThttps://api.snov.io/v2/li-profiles-by-urls/result
Parametry wejściowe
task_hash
Unikalny ID żądania otrzymany z poprzedniego żądania.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
  }
}
Parametry wyjściowe
status
Status żądania. Może mieć wartość ukończone lub w toku.
url
Adres URL profilu na LinkedInie.
name
Pełne imię i nazwisko potencjalnego klienta.
first_name
Imię potencjalnego klienta.
last_name
Nazwisko potencjalnego klienta.
industry
Obszar działalności potencjalnego klienta.
location
Lokalizacja potencjalnego klienta.
country
Kraj, w którym znajduje się potencjalny klient, zgodnie z jego profilem na LinkedInie.
skills
Umiejętności potencjalnego klienta.
positions
Tablica stanowisk obecnie zajmowanych przez potencjalnego klienta.
name
Nazwa firmy, w której pracuje potencjalny klient.
title
Stanowisko potencjalnego klienta.
linkedin_url
Link do strony firmy na LinkedInie.
url
Adres strony internetowej firmy.
industry
Branża firmy.
country
Kraj, w którym znajduje się siedziba firmy.
location
Lokalizacja firmy.
specializations
Obszary specjalizacji lub działalności firmy.
urls
Tablica podanych adresów URL profili na LinkedInie.
task_hash
Unikalny ID tego zadania wyszukiwania.

POSTWzbogać profil osoby na podstawie adresu e-mail

1 kredyt za każde żądanie

Podaj adres e-mail, a Snov.io zwróci wszystkie informacje profilowe powiązane z właścicielem podanego adresu e-mail, dostępne w bazie danych.

Jeśli nie znajdziemy w naszej bazie danych żadnych informacji o właścicielu adresu e-mail, opłata za żądanie nie zostanie naliczona.

Żądanie
POSThttps://api.snov.io/v1/get-profile-by-email
Parametry wejściowe
email
Adres e-mail osoby, o której chcesz znaleźć dodatkowe informacje.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
"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"
}
Parametry wyjściowe
id
Unikalny identyfikator profilu.
source
Źródło pobranych danych osobowych.
name
Pełne imię i nazwisko właściciela adresu e-mail.
firstName
Imię osoby.
lastName
Nazwisko osoby.
logo
Zdjęcie profilowe osoby.
industry
Branża osoby wskazana w źródle.
country
Kraj osoby wskazany w źródle.
locality
Miejscowość osoby wskazana w źródle.
social
Linki do profili osoby w mediach społecznościowych.
currentJobs
Tablica zawierająca informacje o obecnym stanowisku lub stanowiskach osoby.
previousJobs
Tablica zawierająca informacje o poprzednich stanowiskach osoby.
lastUpdateDate
Data ostatniej aktualizacji profilu w bazie danych.

POSTWeryfikator Adresów E-mail

Wprowadź adresy e-mail, a Snov.io przeprowadzi pełną weryfikację. Możesz sprawdzić jednocześnie maksymalnie 10 adresów e-mail.

Podawanie adresów e-mail

POSThttps://api.snov.io/v2/email-verification/start
Parametry wejściowe
emails[]
Adresy e-mail, które chcesz zweryfikować.
Aby zweryfikować wiele adresów e-mail jednocześnie, dodaj każdy adres e-mail jako osobny parametr. Na przykład:
emails[] | help@snov.io
emails[] | partnerships@snov.io
Możesz sprawdzić jednocześnie maksymalnie 10 adresów e-mail.
webhook_url
Wprowadź adres URL webhooka, aby otrzymywać wyniki natychmiast zamiast korzystać z zadania hash.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "data": {
    "task_hash": "0110437df6811068197577a538849a4b"
  },
  "meta": {
    "emails": [
      "gavin.vanrooyen@octagon.com",
      "lizi.hamer@octagon.com",
      "admin@snov.io",
      "test@snov.io",
      "ivalid_format_snov.io"
    ]
  }
}
Parametry wyjściowe
task_hash
Unikalny identyfikator rozpoczętego zadania wyszukiwania.
emails
Tablica adresów e-mail podanych do weryfikacji.
Otrzymywanie wyników weryfikacji
GEThttps://api.snov.io/v2/email-verification/result
Parametry wejściowe
task_hash
Unikalny ID żądania otrzymany z poprzedniego żądania.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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"
  }
}
Parametry wyjściowe
status
Status żądania. Może mieć wartość ukończone lub w toku.
email
Adres e-mail, który weryfikujesz.
smtp_status
Może zwrócić status prawidłowy, nieprawidłowy lub nieznany (czyli Nieweryfikowalny).
Aby sprawdzić przyczynę statusu nieznanego, sprawdź parametr unknown_status_reason.
is_valid_format
Wskazuje, czy format adresu e-mail jest prawidłowy. Może mieć wartość fałsz lub prawda.
is_disposable
Wskazuje, czy adres e-mail jest tymczasowy lub jednorazowy. Zwraca wartość fałsz lub prawda.
is_webmail
Wartość prawda oznacza, że wyszukiwany adres e-mail jest adresem webmail.
is_gibberish
Wskazuje, czy podany adres e-mail zawiera losowe lub bezsensowne znaki. Może mieć wartość fałsz lub prawda.
unknown_status_reason
Jeśli zweryfikowany adres e-mail ma nieznany smtp_status, tutaj znajdziesz bardziej szczegółową przyczynę.
Zablokowany: Wysokie ryzyko problemów z dostarczalnością – tego adresu e-mail nie udało się zweryfikować ze 100% pewnością.
Catch-all: Ryzyko dla reputacji nadawcy – ten adres e-mail jest adresem catch-all.
Błąd_połączenia: Potencjalne ryzyko odrzucenia – problemy techniczne po stronie odbiorcy.
Greylist: Ryzyko problemów z dostarczalnością – ten serwer pocztowy używa filtrów greylistingu.
Ukryty_przez_właściciela: Właściciel adresu e-mail lub firma będąca właścicielem domeny poprosiła o usunięcie go z wyników Snov.io.
emails
Tablica adresów e-mail, które weryfikujesz.
task_hash
Unikalny ID żądania dla tego zadania weryfikacji.

POSTDodaj nowe konto e-mail

Ta metoda łączy nowe konto e-mail SMTP/IMAP z twoim workspace’em Snov.io, aby mogło być używane jako konto nadawcy w kampaniach. Konto jest tworzone nawet wtedy, gdy sprawdzanie połączenia SMTP/IMAP nie zostało jeszcze zakończone — status połączenia jest zwracany asynchronicznie w polach smtp.status / imap.status i można go później sprawdzać. Obsługiwane są wyłącznie konta SMTP/IMAP (typ dostawcy other); przepływy OAuth dla Gmaila i Microsoftu nie są obsługiwane.

Żądanie
POSThttps://api.snov.io/v2/sender-accounts/emails
Parametry wejściowe
sender_name
*Wymagane
Wyświetlana nazwa nadawcy, maks. 100 znaków.
email_from
*Wymagane
Adres e-mail nadawcy.
password
*Wymagane
Hasło lub hasło aplikacji do konta SMTP/IMAP. Przechowywane w formie zaszyfrowanej.
smtp
*Wymagane
Obiekt z ustawieniami SMTP.
smtp.host
*Wymagane
Host SMTP, np. smtp.gmail.com.
smtp.port
*Wymagane
Port SMTP. Dozwolone wartości: 25, 465, 587.
smtp.encryption
*Wymagane
Typ szyfrowania. Dozwolone wartości: ssl, tls, brak. Musi odpowiadać portowi: 465ssl, 587tls, 25brak.
imap
Obiekt z ustawieniami IMAP. Opcjonalny, ale jeśli zostanie podany, wszystkie podpola są wymagane.
imap.host
Host IMAP, np. imap.gmail.com. Wymagane, gdy podano imap.
imap.port
Port IMAP. Dozwolone wartości: 143, 993. Wymagane, gdy podano imap.
imap.encryption
Typ szyfrowania. Dozwolone wartości: ssl, tls, brak. Musi odpowiadać portowi: 993ssl lub tls, 143brak. Wymagane, gdy podano imap.
reply_to
Adres e-mail do odpowiedzi.
limitation
Dzienny limit wysyłania. Liczba całkowita, min. 1, maks. 1200. Domyślnie: 50. Nie może przekraczać maksymalnej liczby e-maili, które konto może wysłać w ciągu 24 godzin przy skonfigurowanym opóźnieniu.
delay_type
Typ opóźnienia między e-mailami. Dozwolone wartości: stałe, losowe. Domyślnie: losowe.
delay_fixed
Stałe opóźnienie w sekundach (używane, gdy typ_opóźnienia=stałe). Liczba całkowita, min. 5, maks. 3600. Domyślnie: 600.
delay_from
Minimalne opóźnienie w sekundach (używane, gdy typ_opóźnienia=losowe). Liczba całkowita, min. 5, maks. 3600. Domyślnie: 600.
delay_to
Maksymalne opóźnienie w sekundach (używane, gdy typ_opóźnienia=losowe). Liczba całkowita, min. 5, maks. 3600, musi być większe niż minimalne_opóźnienie. Domyślnie: 900.
signature
Podpis HTML dołączany do wychodzących e-maili.
bcc_email
Adres e-mail BCC.
tags
Tablica ciągów znaków. Istniejące tagi są dopasowywane według nazwy, a nowe są tworzone i przypisywane do konta.
timezoneId
ID strefy czasowej konta. Liczba całkowita, min. 1, maks. 458.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
    }
}
Parametry wyjściowe
data.id
ID utworzonego konta nadawcy.
data.sender_name
Wyświetlana nazwa nadawcy.
data.email_from
Adres e-mail nadawcy.
data.smtp
Ustawienia SMTP: host, port, szyfrowanie oraz pole status z wynikiem sprawdzania połączenia (oczekujące, połączone, błąd).
data.imap
Ustawienia IMAP (dostępne tylko wtedy, gdy skonfigurowano IMAP): host, port, szyfrowanie, status.
data.limitation
Dzienny limit wysyłania.
data.delay_type
Typ opóźnienia: stałe lub losowe.
data.delay_from
Minimalne opóźnienie w sekundach (dla typ_opóźnienia=losowe).
data.delay_to
Maksymalne opóźnienie w sekundach (dla typ_opóźnienia=losowe).
data.delay_fixed
Stałe opóźnienie w sekundach (dla typ_opóźnienia=stałe).
data.reply_to
Adres e-mail do odpowiedzi.
data.signature
Podpis HTML (dostępny tylko, jeśli został podany).
data.bcc_email
Adres e-mail BCC.
data.tags
Tablica tagów przypisanych do konta.
data.timezoneId
ID strefy czasowej (dostępny tylko, jeśli został ustawiony w żądaniu).
data.created_at
Znacznik czasu utworzenia konta.

PATCHAktualizuj konto e-mail

Ta metoda aktualizuje istniejące konto nadawcy SMTP/IMAP. Wszystkie pola są opcjonalne, ale należy podać co najmniej jedno prawidłowe pole — zmieniane są tylko przekazane pola, a pozostałe pozostają bez zmian. Jeśli podano dowolne pole SMTP lub IMAP, uruchamiane jest nowe asynchroniczne sprawdzanie połączenia, a wynikowy status jest zwracany w polach smtp.status / imap.status. Jeśli podano tags, nowa tablica całkowicie zastępuje bieżącą listę tagów konta (zastępuje, a nie scala).

Żądanie
PATCHhttps://api.snov.io/v2/sender-accounts/emails/{id}
Parametry wejściowe
id
*Wymagane (ścieżka)
ID konta nadawcy do zaktualizowania.
sender_name
Nowa wyświetlana nazwa nadawcy, maks. 100 znaków.
email_from
Nowy adres e-mail nadawcy.
password
Nowe hasło lub hasło aplikacji do konta SMTP/IMAP. Przechowywane w formie zaszyfrowanej.
smtp
Obiekt z nowymi ustawieniami SMTP (host, port, szyfrowanie). Gdy podano smtp, wszystkie trzy podpola są wymagane i muszą spełniać zasady zgodności portu z typem szyfrowania (465ssl, 587tls, 25brak).
smtp.host
Host SMTP. Maks. 100 znaków; format: ^[a-zA-Z0-9][a-zA-Z0-9-.]*. Wymagane, gdy podano smtp.
smtp.port
Dozwolone wartości: 25, 465, 587. Wymagane, gdy podano smtp.
smtp.encryption
Musi odpowiadać portowi: 465 → ssl, 587 → tls, 25 → brak. Wymagane, gdy podano smtp.
imap
Obiekt z nowymi ustawieniami IMAP (host, port, szyfrowanie). Gdy podano imap, wszystkie trzy podpola są wymagane (993ssl lub tls, 143brak)
imap.host
Host IMAP. Maks. 100 znaków. Wymagane, gdy podano imap.
imap.port
Dozwolone wartości: 143, 993. Wymagane, gdy podano imap.
imap.encryption
Musi odpowiadać portowi: 993 → ssl lub tls; 143 → brak. Wymagane, gdy podano imap.
reply_to
Nowy adres e-mail do odpowiedzi. Przekaż null, aby wyczyścić.
limitation
Nowy dzienny limit wysyłania. Liczba całkowita, min. 1, maks. 1200. Nie może przekraczać maksymalnej liczby e-maili, które konto może wysłać w ciągu 24 godzin przy skonfigurowanym opóźnieniu.
delay_type
Nowy typ opóźnienia. Dozwolone wartości: stałe, losowe.
delay_fixed
Stałe opóźnienie w sekundach (używane, gdy typ_opóźnienia=stałe). Liczba całkowita, min. 5, maks. 3600.
delay_from
Minimalne opóźnienie w sekundach (używane, gdy typ_opóźnienia=losowe). Liczba całkowita, min. 5, maks. 3600.
delay_to
Maksymalne opóźnienie w sekundach (używane, gdy typ_opóźnienia=losowe). Liczba całkowita, min. 5, maks. 3600, musi być większe niż minimalne_opóźnienie.
signature
Nowy podpis HTML. Przekaż null, aby wyczyścić.
bcc_email
Nowy adres e-mail BCC. Przekaż null, aby wyczyścić.
tags
Nowa tablica tagów. Całkowicie zastępuje bieżącą listę tagów. Przekaż null, aby usunąć wszystkie tagi.
timezoneId
ID strefy czasowej konta. Liczba całkowita, min. 1, maks. 458.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
    }
}
Parametry wyjściowe
data.id
ID konta nadawcy.
data.sender_name
Wyświetlana nazwa nadawcy.
data.email_from
Adres e-mail nadawcy.
data.smtp
Ustawienia SMTP: host, port, szyfrowanie oraz pole status z wynikiem sprawdzania połączenia (oczekujący, prawidłowy, nieprawidłowy).
data.imap
Ustawienia IMAP (dostępne tylko wtedy, gdy IMAP jest skonfigurowany): host, port, szyfrowanie, status.
data.limitation
Dzienny limit wysyłania.
data.delay_type
Typ opóźnienia: stałe lub losowe.
data.delay_from
Minimalne opóźnienie w sekundach (dla typ_opóźnienia=losowe).
data.delay_to
Maksymalne opóźnienie w sekundach (dla typ_opóźnienia=losowe).
data.delay_fixed
Stałe opóźnienie w sekundach (dla typ_opóźnienia=stałe).
data.reply_to
Adres e-mail do odpowiedzi.
data.signature
Podpis HTML (dostępny tylko, jeśli został podany).
data.bcc_email
Adres e-mail BCC.
data.tags
Tablica tagów przypisanych do konta.
data.timezoneId
ID strefy czasowej (dostępny tylko, jeśli został ustawiony).
data.updated_at
Znacznik czasu ostatniej aktualizacji.

GETSprawdź status SMTP/IMAP nadawcy

Ta metoda sprawdza status połączenia SMTP oraz opcjonalnie IMAP połączonego konta e-mail nadawcy. Użyj jej, aby zweryfikować, czy konto nadawcy jest obecnie prawidłowe i działa poprawnie, oraz aby pobrać informacje o ewentualnych błędach połączenia.

Żądanie
GEThttps://api.snov.io/v2/sender-accounts/check-sender-status
Parametry wejściowe
sender_account_id
*Wymagane
ID konta e-mail nadawcy do sprawdzenia. Liczba całkowita, minimalna wartość: 1.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "smtp": {
            "status": "valid"
        },
        "imap": {
            "status": "valid"
        }
    }
}
Przykład odpowiedzi z błędami SMTP i bez skonfigurowanego IMAP:
{
    "data": {
        "smtp": {
            "status": "invalid",
            "errors": [
                "Connection refused"
            ]
        },
        "imap": null
    }
}
Parametry wyjściowe
data
Obiekt ze szczegółami statusu połączenia konta nadawcy.
smtp
Obiekt opisujący status połączenia SMTP: status (oczekujący, prawidłowy, nieprawidłowy) oraz błędy (tablica komunikatów o błędach, dostępna, gdy status ma wartość nieprawidłowy).
imap
Obiekt opisujący status połączenia IMAP o takiej samej strukturze jak smtp. Zwraca null, jeśli IMAP nie został skonfigurowany podczas tworzenia konta.

GETPobierz listę wszystkich kont e-mail

Bezpłatne

Ta metoda wyświetla listę wszystkich połączonych kont e-mail.

Żądanie
GEThttps://api.snov.io/v2/sender-accounts/emails
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
            }
        }
    ]
}
Parametry wyjściowe
id
Unikalny ID konta e-mail.
sender_name
Nazwa nadawcy, czyli „Nazwa nadawcy”. Jest to nazwa wyświetlana w skrzynce odbiorczej odbiorcy, która wskazuje, od kogo pochodzi e-mail.
email_from
Pełny adres e-mail.
valid
Wskazuje prawda, jeśli konto nadawcy jest prawidłowe. Zwraca fałsz, jeśli jest nieprawidłowe.
suspended
Wskazuje prawda, jeśli wysyłanie z konta jest wstrzymane. Zwraca fałsz, gdy konto działa prawidłowo.
limitation
Dzienne limity wysyłania konta.
provider
Dostawca konta e-mail.
tags
Tagi przypisane do konta.
imap
Tablica danych IMAP konta.
username
Adres e-mail użytkownika wybrany do otrzymywania odpowiedzi zamiast domyślnego konta e-mail.
valid
Wskazuje prawda, gdy IMAP jest włączony. Zwraca fałsz, gdy IMAP jest wyłączony.

POSTUtwórz kampanię rozgrzewania skrzynek e-mail

Ta metoda tworzy i uruchamia nową kampanię rozgrzewania skrzynek e-mail dla określonego konta e-mail. Rozgrzewanie stopniowo poprawia reputację nadawcy konta poprzez wymianę krótkich e-maili ze starannie dobraną siecią odbiorców. Wybierz strategię progresywną, aby stopniowo zwiększać dzienny wolumen od niewielkiej wartości początkowej, lub strategię stałą, aby wysyłać stałą liczbę e-maili rozgrzewających dziennie; podaj własny temat i treść lub pozwól snov.io wygenerować je automatycznie.

Żądanie
POSThttps://api.snov.io/v2/warm-up
Parametry wejściowe
email_account_id
*Wymagane
Liczba całkowita. ID konta e-mail do rozgrzewania.
strategy
Strategia wysyłania. Dozwolone wartości: progresywna, stała. Domyślnie: progresywna.
per_day
*Wymagane
Liczba całkowita. Dzienny cel wysyłki. Zakres 11000 w zależności od planu cenowego.
from
Liczba całkowita. Początkowy dzienny wolumen (tylko dla strategii progresywnej). Zakres 15, musi być ≤ per_day. Wymagane, gdy strategy=progressive.
increase
Liczba całkowita. Dzienny przyrost wolumenu (tylko dla strategii progresywnej). Zakres 15. Wymagane, gdy strategy=progressive.
email_content
Typ treści e-maila. Dozwolone wartości: automatycznie wygenerowana (wygenerowana przez AI), niestandardowa (własna). Domyślnie: automatycznie wygenerowana.
subject
Ciąg znaków. Temat e-maila, 1–200 znaków. Wymagane, gdy email_content=specific.
body
Ciąg znaków. Treść e-maila, 1–10000 znaków. Wymagane, gdy email_content=specific.
reply_rate
Liczba całkowita. Procent przychodzących e-maili rozgrzewających, na które zostanie wysłana odpowiedź. Zakres 1045. Domyślnie: 30.
campaign_deadline
Ciąg znaków (YYYY-MM-DD). Data zakończenia rozgrzewania. Pomiń, jeśli nie chcesz ustawiać terminu końcowego.
providers
Tablica ciągów znaków. Docelowi dostawcy skrzynek odbiorców. Dozwolone wartości: gmail, microsoft, other.
send_to_paid_domain
Wartość logiczna. Określa, czy wysyłać na płatne domeny. Domyślnie: fałsz.
enable_ctd
Wartość logiczna. Włącza niestandardową domenę śledzącą. Domyślnie: fałsz.
enable_proxy
Wartość logiczna. Włącza dynamiczne proxy. Domyślnie: fałsz.
schedule_id
Liczba całkowita. ID harmonogramu wysyłania, który ma zostać przypisany do rozgrzewania.
template_name
Ciąg znaków. Nazwa zapisanego szablonu e-maila, którego chcesz użyć.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "id": 123
    },
    "success": true
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy rozgrzewanie zostało utworzone.
data.id
ID utworzonej kampanii rozgrzewania skrzynek e-mail.

GETPobierz listę kampanii rozgrzewania skrzynek e-mail

Ta metoda zwraca paginowaną listę wszystkich kampanii rozgrzewania skrzynek e-mail na koncie, opcjonalnie filtrowaną według statusu. Każdy element ma taką samą strukturę jak odpowiedź metody Pobierz informacje o kampanii rozgrzewania skrzynek e-mail.

Żądanie
GEThttps://api.snov.io/v2/warm-up
Parametry wejściowe
page
Liczba całkowita. Numer strony. Domyślnie: 1. Minimum: 1.
per_page
Liczba całkowita. Liczba wyników na stronę. Dozwolone wartości: 20, 50, 100. Domyślnie: 20.
status
Filtruj według statusu. Dozwolone wartości: aktywny, wstrzymany, zakończony, błąd. Pomiń, aby zwrócić wszystkie.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
    }
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy żądanie zakończyło się powodzeniem.
data
Tablica obiektów kampanii rozgrzewania skrzynek e-mail. Każdy element ma taką samą strukturę jak odpowiedź metody Pobierz informacje o kampanii rozgrzewania skrzynek e-mail (zobacz tam pola data.).
meta.total_items
Łączna liczba elementów na wszystkich stronach.
meta.page
Numer bieżącej strony.
meta.per_page
Liczba elementów na stronę.
meta.total_pages
Łączna liczba stron.

GETPobierz informacje o kampanii rozgrzewania skrzynek e-mail

Ta metoda zwraca pełne informacje o pojedynczej kampanii rozgrzewania skrzynek e-mail na podstawie jej ID — w tym ustawienia strategii, dzienne limity, bieżące statystyki dostarczalności oraz połączone konto e-mail.

Żądanie
GEThttps://api.snov.io/v2/warm-up/{id}
Parametry wejściowe
id
*Wymagane(ścieżka)
Liczba całkowita. ID kampanii rozgrzewania skrzynek e-mail.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy żądanie zakończyło się powodzeniem.
data.id
ID kampanii rozgrzewania skrzynek e-mail.
data.status
Status kampanii: aktywna, oczekująca, wstrzymana, zakończona, błąd.
data.reply_rate
Procent otrzymanych e-maili, na które zostanie wysłana odpowiedź (10–45).
data.send_to_paid_domain
Wskazuje, czy kampania wysyła e-maile na domeny firmowe.
data.start_date
Data rozpoczęcia kampanii (YYYY-MM-DD).
data.campaign_deadline
Data zakończenia kampanii (YYYY-MM-DD). Brak wartości, jeśli nie ustawiono terminu końcowego.
data.strategy
Strategia wysyłania: progresywna lub stała.
data.per_day
Dzienny cel wysyłki.
data.from
Początkowy dzienny wolumen (tylko dla strategii progresywnej).
data.increase
Dzienny przyrost wolumenu (tylko dla strategii progresywnej).
data.subject
Temat e-maila (tylko gdy email_content=specific).
data.body
Treść e-maila (tylko gdy email_content=specific).
data.template_name
Nazwa szablonu.
data.enable_ctd
Wskazuje, czy niestandardowa domena śledząca jest włączona.
data.schedule
Harmonogram wysyłki przypisany do kampanii lub brak wartości.
data.enable_proxy
Wskazuje, czy dynamiczne proxy jest włączone.
data.sent_today
Liczba e-maili rozgrzewających wysłanych dzisiaj.
data.daily_limit
Aktualnie obowiązujący dzienny limit wysyłania.
data.total_saved_from_spam
Łączna liczba e-maili uratowanych ze spamu od rozpoczęcia kampanii.
data.deliverability
Wskaźnik dostarczania do skrzynki odbiorczej (%).
data.warm_up_error
Opis błędu, jeśli rozgrzewanie przeszło do stanu błąd, w przeciwnym razie brak wartości.
data.email_account
Szczegóły połączonego konta e-mail.
data.email_account.id
ID konta e-mail.
data.email_account.email_from
Adres e-mail konta.
data.email_account.type
Typ konta (np. google, microsoft).
data.email_account.delay
Opóźnienie między e-mailami (w sekundach).
data.email_account.limit
Łączny limit e-maili dla konta.
data.email_account.per_day
Dzienny limit dla konta.
data.email_account.schedule_required
Wskazuje, czy dla tego konta wymagany jest harmonogram.
data.email_account.provider
Dostawca poczty e-mail: gmail, microsoft, hostinger, zoho, titan, godaddy, other itd.
data.email_account.custom_tracking_domain
Niestandardowa domena śledząca lub null.

PATCHAktualizuj kampanię rozgrzewania skrzynek e-mail

Ta metoda częściowo aktualizuje istniejącą kampanię rozgrzewania skrzynek e-mail. Zmieniane są tylko przekazane pola; wszystkie pozostałe ustawienia pozostają bez zmian. Użyj tej metody, aby zmieniać ustawienia kampanii na bieżąco, zmienić status (aktywny, wstrzymany, zakończony, usunięty) lub usunąć termin końcowy, wysyłając make_endless: prawda.

Żądanie
PATCHhttps://api.snov.io/v2/warm-up/{id}
Parametry wejściowe
id
*Wymagane(ścieżka)
Liczba całkowita. ID kampanii rozgrzewania skrzynek e-mail do zaktualizowania.
status
Ręcznie zmień status kampanii. Dozwolone wartości: aktywny, wstrzymany, zakończony, usunięty.
strategy
Nowa strategia wysyłania: progresywna lub stała.
per_day
Nowy dzienny cel wysyłki. Zakres 11000 w zależności od planu cenowego.
from
Nowy początkowy dzienny wolumen. Zakres 110. Wymagane, gdy strategia=progresywna.
increase
Nowy dzienny przyrost wolumenu. Zakres 15. Wymagane, gdy strategia=progresywna.
email_content
Typ treści e-maila: automatycznie wygenerowana lub niestandardowa.
subject
Nowy temat e-maila, 1–200 znaków. Wymagane, gdy treść_e-maila=niestandardowa.
body
Nowa treść e-maila, 1–10000 znaków. Wymagane, gdy treść_e-maila=niestandardowa.
reply_rate
Nowy procent odpowiedzi. Zakres 1045.
campaign_deadline
Nowa data zakończenia kampanii (YYYY-MM-DD).
make_endless
Wartość logiczna. Przekaż prawda, aby usunąć bieżący termin_kampanii i ustawić kampanię bez terminu końcowego.
providers
Nowi docelowi dostawcy skrzynek odbiorców (te same dozwolone wartości co w metodzie Utwórz kampanię rozgrzewania skrzynek e-mail).
send_to_paid_domain
Wartość logiczna.
enable_ctd
Wartość logiczna. Włącza lub wyłącza niestandardową domenę śledzącą.
enable_proxy
Wartość logiczna. Włącza lub wyłącza dynamiczne proxy.
schedule_id
Nowy ID harmonogramu wysyłania.
template_name
Nowa nazwa szablonu.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "id": 123
    },
    "success": true
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy rozgrzewanie zostało zaktualizowane.
data.id
ID zaktualizowanej kampanii rozgrzewania skrzynek e-mail.

DELETEUsuń kampanię rozgrzewania skrzynek e-mail

Ta metoda usuwa kampanię rozgrzewania skrzynek e-mail na podstawie jej ID. Po usunięciu kampania i jej statystyki nie są już dostępne za pośrednictwem innych metod API rozgrzewania skrzynek e-mail.

Żądanie
DELETEhttps://api.snov.io/v2/warm-up/{id}
Parametry wejściowe
id
*Wymagane(ścieżka)
Liczba całkowita. ID kampanii rozgrzewania skrzynek e-mail do usunięcia.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "id": 123
    },
    "success": true
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy rozgrzewanie zostało usunięte.
data.id
ID usuniętej kampanii rozgrzewania skrzynek e-mail.

GETPobierz statystyki rozgrzewania skrzynek e-mail

Ta metoda zwraca dzienne statystyki dostarczalności oraz statystyki dla poszczególnych dostawców w kampanii rozgrzewania skrzynek e-mail — dla zdefiniowanego okresu (dwa_tygodnie / miesiąc) lub niestandardowego zakresu dat. Przydatna do monitorowania postępów wskaźnika dostarczania do skrzynki odbiorczej i wykrywania dostawców, u których rozgrzewanie osiąga słabsze wyniki.

Żądanie
GEThttps://api.snov.io/v2/warm-up/statistics/{id}
Parametry wejściowe
id
*Wymagane(ścieżka)
Liczba całkowita. ID kampanii rozgrzewania skrzynek e-mail.
period
Zdefiniowany okres. Dozwolone wartości: dwa_tygodnie, miesiąc. Wymagane, gdy nie podano data_od / data_do.
date_from
Ciąg znaków (YYYY-MM-DD). Początek niestandardowego zakresu dat. Wymagane, gdy nie podano okres.
date_to
Ciąg znaków (YYYY-MM-DD). Koniec niestandardowego zakresu dat. Musi być ≥ data_od i ≥ dacie rozpoczęcia kampanii. Wymagane, gdy nie podano okres.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy żądanie zakończyło się powodzeniem.
data.daily_statistics
Obiekt, w którym kluczami są daty (YYYY-MM-DD). Każda wartość zawiera poniższe pola dziennych statystyk.
data.daily_statistics.{date}.emails_sent
Liczba e-maili rozgrzewających wysłanych tego dnia.
data.daily_statistics.{date}.replies
Liczba odpowiedzi otrzymanych tego dnia.
data.daily_statistics.{date}.bounces
Liczba odrzuconych e-maili tego dnia.
data.daily_statistics.{date}.spam_emails
Liczba e-maili, które tego dnia trafiły do spamu.
data.daily_statistics.{date}.inbox_emails
Liczba e-maili, które tego dnia trafiły do skrzynki odbiorczej.
data.daily_statistics.{date}.categories_emails
Liczba e-maili, które tego dnia trafiły do kart kategorii w Gmailu.
data.daily_statistics.{date}.scheduled
Liczba e-maili zaplanowanych do wysłania tego dnia.
data.provider_statistics
Obiekt, w którym kluczami są nazwy dostawców (google, outlook, hostinger itd.). Każda wartość zawiera poniższe pola statystyk dla danego dostawcy.
data.provider_statistics.{provider}.id
Wewnętrzny ID dostawcy.
data.provider_statistics.{provider}.count
Liczba e-maili wysłanych za pośrednictwem tego dostawcy.
data.provider_statistics.{provider}.spam
Liczba e-maili, które trafiły do spamu u tego dostawcy.
data.provider_statistics.{provider}.percent
Wskaźnik dostarczania do skrzynki odbiorczej (%) dla tego dostawcy.
data.provider_statistics.{provider}.categories
Liczba e-maili, które trafiły do kart kategorii w Gmailu. Pole może zostać pominięte w przypadku dostawców, którzy nie obsługują kategorii.
data.deliverability.inbox.count
Łączna liczba e-maili dostarczonych do skrzynki odbiorczej.
data.deliverability.inbox.percent
Wskaźnik dostarczania do skrzynki odbiorczej (%).
data.deliverability.spam.count
Łączna liczba e-maili dostarczonych do spamu.
data.deliverability.spam.percent
Wskaźnik trafiania do spamu (%).
data.deliverability.categories.count
Łączna liczba e-maili dostarczonych do kart kategorii w Gmailu.
data.deliverability.categories.percent
Wskaźnik trafiania do kart kategorii (%).
data.is_calculated
Wartość logiczna. fałsz, gdy statystyki są nadal przetwarzane; prawda, gdy obliczenia zostały zakończone.

Zarządzanie kampanią

Te metody pozwalają tworzyć, konfigurować i kontrolować cały cykl życia kampanii — od początkowej konfiguracji, przez uruchomienie, wstrzymanie i zakończenie, aż po usunięcie.

GETWyświetl wszystkie kampanie

Bezpłatne

Ta metoda wyświetla listę wszystkich kampanii użytkownika. Jeśli użytkownik należy do zespołu i ma uprawnienie do wyświetlania rekordów zespołu, metoda zwróci również wszystkie kampanie utworzone w tym zespole.

Żądanie
GEThttps://api.snov.io/v1/get-user-campaigns
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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"
    }
]
Parametry wyjściowe
id
Unikalny identyfikator kampanii użytkownika.
campaign
Nazwa kampanii.
list_id
Unikalny identyfikator listy potencjalnych klientów użytej w kampanii.
status
Status kampanii.
created_at
Data i godzina utworzenia kampanii w formacie Unix Timestamp.
updated_at
Data i godzina ostatniej aktualizacji kampanii w formacie Unix Timestamp.
started_at
Data i godzina uruchomienia kampanii w formacie Unix Timestamp.

POSTUtwórz kampanię

Ta metoda tworzy nową kampanię outreach w twoim workspace’ie Snov.io. Kampania jest tworzona ze statusem nowa i może zostać zapisana w dowolnym, częściowo skonfigurowanym stanie — jako wymagane walidowane są tylko pola niezbędne do uruchomienia kampanii, a pozostałe można uzupełnić później. Obsługiwane są zarówno sekwencje wyłącznie e-mailowe, wyłącznie na LinkedInie, jak i mieszane sekwencje wielokanałowe, w tym warianty A/B, triggery (otwarcie, kliknięcie, odpowiedź, Calendly, poziom kontaktu, wysłanie InMail na LinkedInie itd.), opóźnienia i bloki celów. Ta metoda tworzy kampanię bez treści w blokach wiadomości. Treść dodajesz później, wywołując metodę Utwórz treść kroku e-mail.

Żądanie
POSThttps://api.snov.io/v2/campaigns/create
Parametry wejściowe
title
*Wymagane
Ciąg znaków. Wyświetlana nazwa kampanii. Maks. 255 znaków.
priority
*Wymagane
Wyliczenie typu ciąg znaków. Priorytet wysyłania kampanii: niski, średni, wysoki.
email_accounts
*Wymagane dla kampanii e-mailowych
Tablica liczb całkowitych. ID kont e-mail nadawców, które mają zostać użyte.
linkedin_accounts
Tablica liczb całkowitych. ID kont LinkedIna, które mają zostać użyte.
tracking
*Wymagane dla kampanii e-mailowych
Obiekt. Ustawienia śledzenia e-maili.
tracking.open
Wartość logiczna. Śledzenie otwarć e-maili.
tracking.link_click
Wartość logiczna. Śledzenie kliknięć linków w e-mailach.
sending_settings
*Wymagane dla kampanii e-mailowych
Obiekt. Określa sposób wysyłania e-maili oraz to, którzy odbiorcy są pomijani.
sending_settings.sending_priority
Wyliczenie typu ciąg znaków. Które e-maile są wysyłane jako pierwsze: pierwszy_e-mail lub follow-up.
sending_settings.daily_sending_all
Liczba całkowita lub null. Maksymalna łączna liczba e-maili wysyłanych dziennie do wszystkich odbiorców.
sending_settings.daily_sending_new_recipients
Liczba całkowita lub null. Maksymalna liczba nowych odbiorców, z którymi można skontaktować się dziennie.
sending_settings.skip_unverifiable
Wartość logiczna. Pomijanie odbiorców, których adresu e-mail nie można zweryfikować.
sending_settings.skip_unverified
Wartość logiczna. Pomijanie odbiorców z niezweryfikowanymi adresami e-mail.
sending_settings.skip_who_replied
Zatrzymanie follow-upów dla potencjalnych klientów, którzy odpowiedzą.
sending_settings.skip_company_domain_who_replied
Wartość logiczna. Pomijanie odbiorców z domeny firmowej, jeśli ktokolwiek z tej domeny odpowiedział.
sending_settings.skip_recipients_without_variables_data
Wartość logiczna. Pomijanie odbiorców, dla których brakuje wartości zmiennych niestandardowych.
sending_settings.skip_other_recipients_email_addresses
Wartość logiczna. Jeśli potencjalny klient ma kilka adresów e-mail, wysyłanie tylko na pierwszy adres e-mail, jeśli wartość wynosi prawda.
sending_settings.skip_recipients_added_to_my_another_campaign
Wartość logiczna. Pomijanie odbiorców, którzy znajdują się już w innej kampanii należącej do tego użytkownika.
sending_settings.skip_recipients_added_to_team_another_campaign
Wartość logiczna. Pomijanie odbiorców, którzy znajdują się już w innej kampanii należącej do dowolnego członka zespołu.
sending_settings.one_click_unsubscribe
Wartość logiczna. Włączenie nagłówka umożliwiającego rezygnację z subskrypcji jednym kliknięciem w e-mailach.
recipients
*Wymagane
Obiekt. Określa, kto otrzymuje kampanię.
recipients.list_id
*Wymagane
Liczba całkowita. ID listy potencjalnych klientów, do której ma zostać wysłana kampania.
recipients.black_list_id
Liczba całkowita. ID Listy „Do-not-email”. Zobacz Wyświetl wszystkie Listy „Do-not-email”.
schedule_id
Liczba całkowita. ID harmonogramu wysyłania. Zobacz Wyświetl wszystkie harmonogramy.
start_campaign_at
Ciąg znaków (YYYY-MM-DD HH:MM:SS) lub null. Data i godzina, o której kampania powinna rozpocząć się automatycznie, np. 2027-03-25 09:00:00.
complete_campaign_at
Ciąg znaków (YYYY-MM-DD HH:MM:SS) lub null. Data i godzina, o której kampania powinna automatycznie się zatrzymać.
timezone
Ciąg znaków. Strefa czasowa kampanii. Listę obsługiwanych stref czasowych znajdziesz w tabeli Strefy czasowe poniżej.
complete_campaign_after_last_step
*Wymagane
Wartość logiczna. Zatrzymanie kampanii, gdy wszyscy odbiorcy przejdą przez ostatni krok sekwencji.
archive_in_months
*Wymagane
Liczba całkowita. Automatyczne archiwizowanie kampanii po podanej liczbie miesięcy. Dozwolone wartości: 1, 2, 3, 6.
provider_matching
*Wymagane dla kampanii e-mailowych
Wartość logiczna. Dopasowywanie dostawcy poczty e-mail odbiorcy do dostawcy konta nadawcy, jeśli to możliwe. Może mieć wartość prawda tylko wtedy, gdy podłączone są co najmniej dwa konta e-mail.
deals
Obiekt lub null. Ustawienia tworzenia transakcji CRM uruchamianego przez zdarzenia kampanii.
deals.event
*Wymagane dla kampanii e-mailowych
Tablica ciągów znaków. Zdarzenia powodujące utworzenie transakcji: otwarcie, kliknięcie, odpowiedź.
deals.pipeline_id
*Wymagane dla kampanii e-mailowych
Liczba całkowita. ID pipeline’u CRM, w którym ma zostać utworzona transakcja.
deals.stage_id
*Wymagane dla kampanii e-mailowych
Liczba całkowita. ID etapu pipeline’u, w którym ma zostać umieszczona transakcja.
deals.potential_value
Liczba całkowita. Szacowana wartość transakcji.
deals.currency
Ciąg znaków. Kod waluty dla wartości transakcji. Listę obsługiwanych walut znajdziesz w tabeli Waluty poniżej.
sequence
*Wymagane
Obiekt. Workflow automatyzacji kroków wykonywanych przez kampanię.
sequence.entry
*Wymagane
Ciąg znaków. _ref pierwszego kroku do wykonania.
sequence.steps
*Wymagane
Tablica obiektów. Uporządkowana lista wszystkich kroków w sekwencji.
sequence.steps._ref
*Wymagane
Ciąg znaków. Unikalny identyfikator tego kroku, używany do łączenia kroków za pomocą next / yes / no.
sequence.steps.type
*Wymagane
Wyliczenie typu ciąg znaków. Typ kroku: e-mail, opóźnienie, trigger, cel, LinkedIn.
sequence.steps.next
Ciąg znaków lub null. ref kroku, do którego należy przejść po tym kroku (bloki liniowe: e-mail, LinkedIn, opóźnienie).
sequence.steps.yes
Ciąg znaków. ref kroku, do którego należy przejść, gdy warunek triggera zostanie spełniony (tylko dla triggera).
sequence.steps.no
Ciąg znaków. ref kroku, do którego należy przejść, gdy warunek triggera nie zostanie spełniony (tylko dla triggera).
sequence.steps.waiting_type
*Wymagane dla opóźnienia / triggera
Wyliczenie typu ciąg znaków. Jednostka czasu okresu oczekiwania: minuty, godziny, dni.
sequence.steps.waiting_val
*Wymagane dla opóźnienia / triggera
Liczba całkowita. Liczba jednostek czasu oczekiwania. Limity dla poszczególnych jednostek: minuty ≤ 43200, godziny ≤ 720, dni ≤ 30.
sequence.steps.action
*Wymagane dla LinkedIna / triggera
Wyliczenie typu ciąg znaków. Akcja do wykonania lub zdarzenie do monitorowania. Obsługiwane wartości znajdziesz poniżej.
sequence.steps.goal_name
*Wymagane dla celu
Ciąg znaków. Etykieta tego kroku celu, np. Odpowiedział, Połączono. Blok cel musi być ostatnim krokiem w swojej gałęzi — nie może mieć next ani być pierwszym krokiem sekwencji.
sequence.steps.content_slots
*Wymagane dla e-maila
Liczba całkowita (min. 1, maks. 15). Liczba wariantów treści A/B dla tego kroku e-mail.
sequence.steps.subject
Ciąg znaków lub null. Temat e-maila (tylko email); obsługuje {{variables}}. Wymagane dla kroku linkedin z action=in_mail.
sequence.steps.body
*Wymagane dla zaproszenia / wiadomości / InMail
Ciąg znaków (HTML). Treść wiadomości dla akcji LinkedIn wysyłających tekst. Nie może być pusta.
sequence.steps.value
*Wymagane dla endorse_skills
Liczba całkowita (15) dla endorse_skills. Tablica 1–2 unikalnych liczb całkowitych z [1, 2, 3] dla check_connection_level.
Obsługiwane wartości dla sequence.steps.action
Typ krokuWartość akcjiOpis
linkedin
visit
Odwiedź profil potencjalnego klienta na LinkedInie.
linkedin
like
Polub post na profilu potencjalnego klienta.
linkedin
follow
Obserwuj potencjalnego klienta na LinkedInie.
linkedin
invite
Wyślij prośbę o połączenie (wymaga body).
linkedin
message
Wyślij bezpośrednią wiadomość na LinkedInie (wymaga body).
linkedin
in_mail
Wyślij wiadomość InMail na LinkedInie (wymaga body i subject).
linkedin
connected_on_linkedin
Sprawdź, czy potencjalny klient zaakceptował prośbę o połączenie na LinkedInie.
linkedin
check_connection_level
Sprawdź stopień połączenia potencjalnego klienta.
linkedin
endorse_skills
Zatwierdź umiejętności na profilu potencjalnego klienta (wymaga value 1–5).
trigger
open
Poczekaj, aby sprawdzić, czy potencjalny klient otworzy e-mail.
trigger
click
Poczekaj, aby sprawdzić, czy potencjalny klient kliknie link w e-mailu.
trigger
calendly
Poczekaj, aby sprawdzić, czy potencjalny klient dokona rezerwacji przez Calendly.
trigger
connected_on_linkedin
Wyzwalacz systemowy. Wymagany po kroku LinkedIn connected_on_linkedin. Pole next kroku connected_on_linkedin musi wskazywać na ten wyzwalacz.
trigger
check_connection_level
Rozgałęź na podstawie stopnia połączenia potencjalnego klienta na LinkedInie.
trigger
linkedin_in_mail_sent
Wyzwalacz systemowy. Wymagany po kroku LinkedIn in_mail. Pole next kroku in_mail musi wskazywać na ten wyzwalacz.
Strefy czasowe
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
Waluty
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$
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
                }
            ]
        }
    }
}
Parametry wyjściowe
success
Wartość logiczna. true, gdy kampania została utworzona.
data.id
ID utworzonej kampanii.
data.status
Status kampanii. Nowo utworzone kampanie są zwracane ze statusem new.
data.title
Nazwa kampanii.
data.email_accounts
Tablica identyfikatorów kont e-mail nadawców przypisanych do kampanii.
data.linkedin_accounts
Tablica identyfikatorów kont LinkedIn przypisanych do kampanii.
data.priority
Priorytet kampanii (low, medium, high).
data.tracking
Ustawienia śledzenia e-maili (open, link_click).
data.sending_settings
Ustawienia wysyłki zwracane dokładnie w formie zaakceptowanej przez serwer, w tym konfiguracja opóźnień.
data.recipients
Listy odbiorców (list_id, black_list_id).
data.schedule_id
ID harmonogramu wysyłki przypisanego do kampanii lub null.
data.start_campaign_at
Data i godzina rozpoczęcia wysyłki kampanii.
data.complete_campaign_at
Data i godzina zakończenia wysyłki kampanii.
data.timezone
Identyfikator strefy czasowej, w której działa kampania.
data.complete_campaign_after_last_step
Czy kampania kończy się automatycznie po dostarczeniu ostatniego kroku.
data.archive_in_months
Okres automatycznej archiwizacji w miesiącach.
data.provider_matching
Czy dopasowanie dostawcy poczty e-mail jest włączone.
data.sequence
Schemat blokowy kampanii, zwracany z zachowaniem tej samej struktury. Każdy krok email jest wzbogacany o tablicę content opisującą wygenerowane pola treści (id, plain_text, usage.
data.deals
Ustawienia tworzenia transakcji, dostępne tylko wtedy, gdy w żądaniu podano deals.

GETPobierz informacje o kampanii

Ta metoda umożliwia pobranie informacji o konkretnej kampanii, takich jak: połączone konta nadawców, ustawienia wysyłki, informacje o liście odbiorców oraz szczegóły dotyczące kroków sekwencji.

Żądanie
GEThttps://api.snov.io/v2/campaigns/{campaign_id}
Parametry wejściowe
campaign_id
*Wymagane
Unikalny identyfikator kampanii, dla której chcesz wyświetlić informacje.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
                }
            ]
        }
    }
}
Parametry wyjściowe
success
Wartość logiczna. true, gdy informacje o kampanii zostały pomyślnie pobrane.
data.id
ID kampanii.
data.status
Status kampanii. Nowo utworzone kampanie są zwracane ze statusem new.
data.title
Nazwa kampanii.
data.email_accounts
Tablica identyfikatorów kont e-mail nadawców przypisanych do kampanii.
data.linkedin_accounts
Tablica identyfikatorów kont LinkedIn przypisanych do kampanii.
data.priority
Priorytet kampanii (low, medium, high).
data.tracking
Ustawienia śledzenia e-maili (open, link_click).
data.sending_settings
Ustawienia wysyłki zwracane dokładnie w formie zaakceptowanej przez serwer, w tym konfiguracja opóźnień.
data.recipients
Listy odbiorców (list_id, black_list_id).
data.schedule_id
ID harmonogramu wysyłki przypisanego do kampanii lub null.
data.start_campaign_at
Data i godzina rozpoczęcia wysyłki kampanii.
data.complete_campaign_at
Data i godzina zakończenia wysyłki kampanii.
data.timezone
Identyfikator strefy czasowej, w której działa kampania.
data.complete_campaign_after_last_step
Czy kampania kończy się automatycznie po dostarczeniu ostatniego kroku.
data.archive_in_months
Okres automatycznej archiwizacji w miesiącach.
data.provider_matching
Czy dopasowanie dostawcy poczty e-mail jest włączone.
data.sequence
Schemat blokowy kampanii, zwracany z zachowaniem tej samej struktury. Każdy krok email jest wzbogacany o tablicę content opisującą wygenerowane pola treści (id, plain_text, usage).
data.deals
Ustawienia tworzenia transakcji, dostępne tylko wtedy, gdy w żądaniu podano deals.

PATCHAktualizuj kampanię

Ta metoda częściowo aktualizuje istniejącą kampanię outreachową w obszarze roboczym snov.io. Zmieniane są tylko pola uwzględnione w treści żądania; pominięte pola pozostają bez zmian. Zagnieżdżone obiekty (tracking, sending_settings, recipients, deals) również są scalane — wysłanie {"tracking": {"open": false}} nie usuwa link_click. Akceptowana treść żądania ma taką samą strukturę jak w przypadku tworzenia kampanii, dlatego można wysłać dowolny podzbiór pól 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 i deals.

Ustawienia podstawowe (oznaczone poniżej jako (podstawowe)) można edytować tylko wtedy, gdy kampania ma status nowa (wersja robocza) — zostają zablokowane, gdy kampania przejdzie do statusu wstrzymana, aktywna, zaplanowana, zakończona lub zarchiwizowana.

Gdy podano sequence, tablica w pełni zastępuje istniejący schemat blokowy. Kroki, których _ref odpowiada istniejącemu numerycznemu ID kroku, są aktualizowane w miejscu, kroki z nienumerycznym _ref są tworzone jako nowe, a wszystkie istniejące kroki pominięte w tablicy są usuwane.

Żądanie
PATCHhttps://api.snov.io/v2/campaigns/{campaign_id}
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii do aktualizacji.
title
Ciąg znaków. Wyświetlana nazwa kampanii. Maks. 255 znaków.
priority
Enum ciągu znaków. Priorytet wysyłki: niski, średni, wysoki.
email_accounts
Tablica liczb całkowitych. ID kont e-mail nadawców. Kont e-mail nie można dodać, jeśli aktywna kampania nie zawiera żadnych kroków e-mailowych.
linkedin_accounts
Tablica liczb całkowitych. ID kont LinkedIn. Kont LinkedIn nie można dodać, jeśli aktywna kampania nie zawiera żadnych kroków LinkedIn.
provider_matching
Wartość logiczna. Dopasuj dostawcę poczty e-mail odbiorcy do dostawcy konta nadawcy. Zawsze fałsz dla kampanii tylko na LinkedInie.
complete_campaign_after_last_step
Wartość logiczna. Zatrzymaj kampanię, gdy wszyscy odbiorcy przejdą ostatni krok sekwencji.
archive_in_months
Liczba całkowita. Automatycznie archiwizuj po podanej liczbie miesięcy. Dozwolone wartości: 1, 2, 3, 6.
schedule_id
Liczba całkowita lub null. ID harmonogramu wysyłki. Nieistniejący ID zwraca 404/422.
start_campaign_at
Ciąg znaków (YYYY-MM-DD HH:MM:SS) lub brak wartości. Data i godzina automatycznego uruchomienia kampanii. Nie można dodać, jeśli pole nie zostało podane podczas tworzenia; brak wartości nie powoduje żadnej operacji (istniejąca wartość nie jest usuwana).
complete_campaign_at
Ciąg znaków (YYYY-MM-DD HH:MM:SS) lub brak wartości. Data i godzina automatycznego zatrzymania kampanii. Musi być późniejsza niż start_campaign_at. Brak wartości nie powoduje żadnej operacji.
timezone
Ciąg znaków lub brak wartości. Strefa czasowa używana dla pól daty, akceptuje identyfikatory stref czasowych IANA w formacie Region/City, np. America/New_York. Ma zastosowanie tylko wtedy, gdy w kampanii występuje start_campaign_at.
recipients
(podstawowe)
Obiekt. Konfiguracja odbiorców. Zablokowana w rozpoczętych kampaniach, edytowalna w wersji roboczej.
recipients.list_id
(podstawowe)
Liczba całkowita. ID listy potencjalnych klientów.
recipients.black_list_id
(podstawowe)
Liczba całkowita lub brak wartości. ID listy wykluczeń.
tracking
Obiekt. Ustawienia śledzenia e-maili. Ignorowane w kampaniach tylko na LinkedInie.
tracking.open
Wartość logiczna. Śledź otwarcia e-maili.
tracking.link_click
Wartość logiczna. Śledź kliknięcia linków w e-mailach.
sending_settings
Obiekt. Określa sposób wysyłania e-maili oraz odbiorców, którzy mają zostać pominięci.
sending_settings.sending_priority
Enum ciągu znaków. Które e-maile są wysyłane jako pierwsze: pierwszy e-mail lub follow-up.
sending_settings.daily_sending_all
Liczba całkowita lub brak wartości. Maksymalna łączna liczba e-maili wysyłanych dziennie do wszystkich odbiorców. Brak wartości usuwa limit.
sending_settings.daily_sending_new_recipients
Liczba całkowita lub brak wartości. Maksymalna liczba nowych odbiorców, z którymi można skontaktować się dziennie. Brak wartości usuwa limit.
sending_settings.skip_who_replied
Wartość logiczna. Zatrzymuje kolejne e-maile dla prospektów, którzy odpowiedzieli.
sending_settings.skip_company_domain_who_replied
Wartość logiczna. Pomijaj odbiorców z domeny firmowej, jeśli ktokolwiek odpowiedział.
sending_settings.skip_unverifiable
(podstawowe)
Wartość logiczna. Pomijaj odbiorców, których adresu e-mail nie można zweryfikować. Zablokowane w rozpoczętych kampaniach.
sending_settings.skip_unverified
(podstawowe)
Wartość logiczna. Pomijaj odbiorców z niezweryfikowanymi adresami e-mail. Zablokowane w rozpoczętych kampaniach.
sending_settings.skip_other_recipients_email_addresses
(podstawowe)
Wartość logiczna. Jeśli potencjalny klient ma wiele adresów e-mail, wysyłaj tylko na pierwszy adres e-mail, jeśli prawda. Zablokowane w rozpoczętych kampaniach.
sending_settings.skip_recipients_added_to_my_another_campaign
(podstawowe)
Wartość logiczna. Pomijaj odbiorców, którzy są już w innej kampanii tego użytkownika. Zablokowane w rozpoczętych kampaniach.
sending_settings.skip_recipients_added_to_team_another_campaign
(podstawowe)
Wartość logiczna. Pomijaj odbiorców, którzy są już w innej kampanii dowolnego członka zespołu. Zablokowane w rozpoczętych kampaniach.
sending_settings.skip_recipients_without_variables_data
Wartość logiczna. Pomijaj odbiorców, dla których brakuje wartości zmiennych niestandardowych.
sending_settings.one_click_unsubscribe
Wartość logiczna. Włącz nagłówek umożliwiający wypisanie się jednym kliknięciem w e-mailach.
deals
Obiekt lub brak wartości. Ustawienia tworzenia transakcji w CRM. Przekaż brak wartości, aby usunąć konfigurację transakcji.
deals.event
*Wymagane, gdy podano deals
Tablica ciągów znaków. Zdarzenia, które tworzą transakcję: otwarcie, kliknięcie, odpowiedź.
deals.pipeline_id
*Wymagane, gdy podano deals
Liczba całkowita. ID pipeline’u CRM.
deals.stage_id
*Wymagane, gdy podano deals
Liczba całkowita. ID etapu pipeline’u.
deals.potential_value
Liczba całkowita. Szacowana wartość transakcji. Musi być dodatnia.
deals.currency
Ciąg znaków. Kod waluty wartości transakcji, np. USD, EUR.
sequence
Obiekt. Pełne zastąpienie sekwencji kampanii — po podaniu zastępuje cały schemat blokowy.
sequence.entry
*Wymagane, gdy podano sequence
Ciąg znaków. ref pierwszego kroku do wykonania.
sequence.steps
*Wymagane, gdy podano sequence
Tablica obiektów kroków. Pełna lista kroków.
sequence.steps._ref
*Wymagane
Ciąg znaków. Identyfikator kroku. Numeryczny _ref aktualizuje istniejący krok; nienumeryczny _ref tworzy nowy krok.
sequence.steps.type
*Wymagane
Enum ciągu znaków. Typ kroku: e-mail, opóźnienie, wyzwalacz, cel, LinkedIn. Nie można go zmienić w istniejących krokach (numeryczny _ref).
sequence.steps.next
Ciąg znaków lub brak wartości. _ref kroku, do którego należy przejść po tym kroku (bloki liniowe: e-mail, LinkedIn, opóźnienie).
sequence.steps.yes
Ciąg znaków. ref kroku, do którego należy przejść po spełnieniu warunku wyzwalacza (tylko wyzwalacz).
sequence.steps.no
Ciąg znaków. ref kroku, do którego należy przejść, gdy warunek wyzwalacza nie zostanie spełniony (tylko wyzwalacz).
sequence.steps.waiting_type
*Wymagane, gdy podano delay / trigger
Enum ciągu znaków. Jednostka czasu: minuty, godziny, dni.
sequence.steps.waiting_val
*Wymagane, gdy podano delay / trigger
Liczba całkowita. Liczba jednostek czasu oczekiwania. Min. 1 dla kroków opóźnienie i wyzwalacz. Limity według jednostki: minuty ≤ 43200, godziny ≤ 720, dni ≤ 30.
sequence.steps.action
*Wymagane, gdy podano dla linkedin / trigger
Enum ciągu znaków. Działanie do wykonania lub zdarzenie do monitorowania. Zobacz obsługiwane wartości poniżej.
sequence.steps.goal_name
*Wymagane, gdy podano goal
Ciąg znaków. Etykieta tego kroku celu, np. Odpowiedź, Połączenie. Blok cel musi być ostatnim krokiem w swojej gałęzi — nie może mieć next ani być pierwszym krokiem sekwencji.
sequence.steps.content_slots
*Wymagane, gdy podano email
Liczba całkowita (min. 1, maks. 15). Liczba wariantów treści A/B.
sequence.steps.content
*Wymagane, gdy podano email przy aktualizacji istniejących kroków
Tablica obiektów. Metadane treści skopiowane z odpowiedzi GET; każdy element: {"id": , "plain_text": , "usage": "aktywny"}.
sequence.steps.subject
Ciąg znaków lub brak wartości. Temat e-maila lub InMail; obsługuje {{variables}}. Opcjonalne dla e-mail; wymagane dla kroku LinkedIn z action=in_mail.
sequence.steps.body
*Wymagane, gdy podano invite / message / in_mail
Ciąg znaków (HTML). Treść wiadomości dla działań na LinkedInie, które wysyłają tekst.
sequence.steps.value
*Wymagane, gdy podano endorse_skills / check_connection_level
Liczba całkowita (15) dla endorse_skills; tablica liczb całkowitych (prawidłowe poziomy stopnia połączenia) dla wyzwalacza check_connection_level.
Obsługiwane wartości dla sequence.steps.action
linkedinvisitOdwiedź profil potencjalnego klienta na LinkedInie.
linkedinlikePolub post na profilu potencjalnego klienta.
linkedinfollowObserwuj potencjalnego klienta na LinkedInie.
linkedininviteWyślij prośbę o połączenie (wymaga body).
linkedinmessageWyślij bezpośrednią wiadomość na LinkedInie (wymaga body).
linkedinin_mailWyślij wiadomość InMail na LinkedInie (wymaga body i subject; po niej musi następować wyzwalacz linkedin_in_mail_sent).
linkedinconnected_on_linkedinSprawdź, czy potencjalny klient zaakceptował prośbę o połączenie na LinkedInie.
linkedincheck_connection_levelSprawdź stopień połączenia potencjalnego klienta.
linkedinendorse_skillsZatwierdź umiejętności na profilu potencjalnego klienta (wymaga value 1–5).
triggeropenPoczekaj, aby sprawdzić, czy potencjalny klient otworzy e-mail.
triggerclickPoczekaj, aby sprawdzić, czy potencjalny klient kliknie link w e-mailu.
triggercalendlyPoczekaj, aby sprawdzić, czy potencjalny klient dokona rezerwacji przez Calendly (musi następować po kroku e-mailowym; maks. 30 dni).
triggerconnected_on_linkedinWyzwalacz systemowy. Wymagany po kroku LinkedIn connected_on_linkedin. Pole next kroku connected_on_linkedin musi wskazywać na ten wyzwalacz.
triggercheck_connection_levelRozgałęź na podstawie stopnia połączenia potencjalnego klienta na LinkedInie (wymaga value: tablica prawidłowych poziomów stopnia połączenia).
triggerlinkedin_in_mail_sentWyzwalacz systemowy. Wymagany po kroku LinkedIn in_mail. Pole next kroku in_mail musi wskazywać na ten wyzwalacz.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
                }
            ]
        }
    }
}
Parametry wyjściowe
success
Wartość logiczna. Prawda, gdy kampania została zaktualizowana.
data.id
ID zaktualizowanej kampanii.
data.status
Bieżący status kampanii.
data.title
Nazwa kampanii.
data.email_accounts
Tablica identyfikatorów kont e-mail nadawców przypisanych do kampanii.
data.linkedin_accounts
Tablica identyfikatorów kont LinkedIn przypisanych do kampanii.
data.priority
Priorytet kampanii (niski, średni, wysoki).
data.tracking
Ustawienia śledzenia e-maili (otwarcie, kliknięcie linku).
data.sending_settings
Ustawienia wysyłki zwracane dokładnie w formie zapisanej na serwerze po aktualizacji.
data.recipients
Listy odbiorców (list_id, black_list_id).
data.schedule_id
ID harmonogramu wysyłki przypisanego do kampanii lub brak wartości.
data.start_campaign_at
Data i godzina rozpoczęcia wysyłki kampanii.
data.complete_campaign_at
Data i godzina zakończenia wysyłki kampanii.
data.timezone
Identyfikator strefy czasowej, w której działa kampania.
data.complete_campaign_after_last_step
Czy kampania kończy się automatycznie po dostarczeniu ostatniego kroku.
data.archive_in_months
Okres automatycznej archiwizacji w miesiącach.
data.provider_matching
Czy dopasowanie dostawcy poczty e-mail jest włączone.
data.sequence
Schemat blokowy kampanii, zwracany z zachowaniem tej samej struktury po uzgodnieniu. Każdy krok e-mail jest wzbogacany o tablicę content opisującą pola treści (id, plain_text, usage).
data.deals
Ustawienia tworzenia transakcji, dostępne tylko wtedy, gdy tworzenie transakcji jest skonfigurowane w kampanii.

POSTZmień stan kampanii

Bezpłatne

Ta metoda pozwala zarządzać stanem kampanii — uruchamiać ją, wstrzymywać, kończyć lub archiwizować.

Żądanie
POSThttps://api.snov.io/v2/campaigns/{campaign_id}/action
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Unikalny identyfikator kampanii, której stan chcesz zmienić.
action
Stan, na który można przełączyć kampanię. Dozwolone wartości: start, wstrzymanie, wznowienie, zakończenie, zarchiwizowana.
Przykłady kodu
<?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())
Przykład odpowiedzi
{
  "success": true
}
Parametry wyjściowe
success
Może zwrócić wartość prawda lub fałsz w zależności od wyniku wykonania.
errors
Lista błędów, które wystąpiły podczas zmiany stanu kampanii.

DELETEUsuń kampanię

Ta metoda usuwa kampanię na podstawie jej ID. Usunięcie jest dozwolone tylko dla kampanii o statusie nowa (wersja robocza), zakończona lub zarchiwizowana — kampanii o statusie aktywna, wstrzymana lub zaplanowana nie można usunąć, dopóki nie zostaną najpierw zatrzymane.

Żądanie
DELETEhttps://api.snov.io/v2/campaigns/{campaign_id}
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii do usunięcia.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "success": true
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy kampania została usunięta.

Treść kroku e-mailowego

Te metody pozwalają zarządzać blokami treści (tematem i treścią wiadomości) kroków e-mailowych w sekwencji kampanii. Treść można modyfikować tylko wtedy, gdy kampania ma status nowa, wstrzymana lub zaplanowana. Każdy krok musi zawierać co najmniej jeden blok treści.

GETWyświetl wszystkie harmonogramy

Bezpłatne

Ta metoda wyświetla listę wszystkich harmonogramów kampanii.

Żądanie
GEThttps://api.snov.io/v2/campaigns/schedules
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
                }
            ]
        }
    ]
}
Parametry wyjściowe
id
Unikalny ID harmonogramu.
name
Nazwa harmonogramu.
timezone
Strefa czasowa harmonogramu.
days
Tablica możliwych dni i godzin wysyłki dla harmonogramu.
day
Dzień tygodnia.
enabled
Wskazuje prawda, jeśli wysyłanie jest dozwolone w danym dniu. Zwraca fałsz, jeśli wysyłanie w danym dniu jest niedozwolone.
start_time
Godzina rozpoczęcia harmonogramu w danym dniu.
end_time
Godzina zakończenia harmonogramu w danym dniu.

POSTUtwórz Treść Kroku E-mailowego

Bezpłatne

Ta metoda tworzy lub aktualizuje blok treści dla kroku e-mailowego w sekwencji kampanii. Jeśli blok treści o określonym content_id już istnieje, zostanie nadpisany. Treść można modyfikować tylko wtedy, gdy kampania ma status nowa, wstrzymana lub zaplanowana.

Żądanie
POSThttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/create
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii.
step_id
*Wymagane (ścieżka)
Liczba całkowita. ID kroku sekwencji e-mailowej.
content_id
*Wymagane
Liczba całkowita. ID bloku treści do zapisania. Ponowne przesłanie tego samego content_id nadpisuje istniejący blok.
subject
*Wymagane
Ciąg znaków. Temat e-maila. Obsługuje {{variables}}.
body
*Wymagane
Ciąg znaków (HTML). Treść e-maila.
plain_text
*Wymagane
Wartość logiczna. prawda wysyła e-mail jako zwykły tekst, fałsz wysyła jako HTML.
usage
*Wymagane
Ciąg znaków. Stan bloku treści. Dozwolone wartości: "aktywny", "wstrzymany".
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "success": true,
    "data": {
        "id": 11111,
        "subject": "Hey, I have something for you",
        "body": "<p>Hi {{first_name}}, ...</p>",
        "plain_text": false,
        "usage": "active"
    }
}
Parametry wyjściowe
success
Wartość logiczna. prawda, gdy żądanie zakończyło się powodzeniem.
data.id
Liczba całkowita. ID bloku treści.
data.subject
Ciąg znaków. Temat e-maila.
data.body
Ciąg znaków (HTML). Treść e-maila.
data.plain_text
Wartość logiczna. prawda, jeśli używany jest tryb zwykłego tekstu, fałsz, jeśli HTML.
data.usage
Ciąg znaków. Stan bloku treści. Dozwolone wartości: "aktywny", "wstrzymany".

GETPobierz Treść Kroku E-mailowego

Bezpłatne

Ta metoda zwraca blok treści kroku sekwencji e-mailowej na podstawie jego content_id.

Żądanie
GEThttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii.
step_id
*Wymagane (ścieżka)
Liczba całkowita. ID kroku sekwencji e-mailowej.
content_id
*Wymagane (ścieżka)
Liczba całkowita. ID bloku treści.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "id": 11111,
        "subject": "Hey, I have something for you",
        "body": "<p>Hi {{first_name}}, ...</p>",
        "plain_text": false,
        "usage": "active"
    }
}
Parametry wyjściowe
data.id
Liczba całkowita. ID bloku treści.
data.subject
Ciąg znaków. Temat e-maila.
data.body
Ciąg znaków (HTML). Treść e-maila.
data.plain_text
Wartość logiczna. prawda, jeśli używany jest tryb zwykłego tekstu, fałsz, jeśli HTML.
data.usage
Ciąg znaków. Stan bloku treści. Dozwolone wartości: "aktywny", "wstrzymany".

PATCHAktualizuj Treść Kroku E-mailowego

Bezpłatne

Ta metoda częściowo aktualizuje blok treści kroku sekwencji e-mailowej. Aktualizowane są tylko pola podane w treści żądania; pominięte pola pozostają bez zmian. Należy uwzględnić co najmniej jedno pole. Treść można modyfikować tylko wtedy, gdy kampania ma status nowa, wstrzymana lub zaplanowana.

Żądanie
PATCHhttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii.
step_id
*Wymagane (ścieżka)
Liczba całkowita. ID kroku sekwencji e-mailowej.
content_id
*Wymagane (ścieżka)
Liczba całkowita. ID bloku treści.
subject
Ciąg znaków. Temat e-maila. Obsługuje {{variables}}.
body
Ciąg znaków (HTML). Treść e-maila.
plain_text
Wartość logiczna. Prawda dla zwykłego tekstu, fałsz dla HTML.
usage
Ciąg znaków. Stan bloku treści. Dozwolone wartości: "aktywny", "wstrzymany".
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "success": true,
    "data": {
        "id": 11111,
        "subject": "Updated subject",
        "body": "<p>Hi {{first_name}}, ...</p>",
        "plain_text": false,
        "usage": "active"
    }
}
Parametry wyjściowe
success
Wartość logiczna. Prawda, gdy żądanie zakończyło się powodzeniem.
data.id
Liczba całkowita. ID bloku treści.
data.subject
Ciąg znaków. Temat e-maila.
data.body
Ciąg znaków (HTML). Treść e-maila.
data.plain_text
Wartość logiczna. Prawda dla trybu zwykłego tekstu, fałsz dla HTML.
data.usage
Ciąg znaków. Stan bloku treści. Dozwolone wartości: "aktywny", "wstrzymany".

DELETEUsuń Treść Kroku E-mailowego

Bezpłatne

Ta metoda usuwa blok treści z kroku sekwencji e-mailowej. Usunięcie ostatniego pozostałego bloku treści w kroku jest niedozwolone — każdy krok musi zawierać co najmniej jeden blok treści.

Żądanie
DELETEhttps://api.snov.io/v2/campaigns/{campaign_id}/steps/{step_id}/content/{content_id}
Parametry wejściowe
campaign_id
*Wymagane (ścieżka)
Liczba całkowita. ID kampanii.
step_id
*Wymagane (ścieżka)
Liczba całkowita. ID kroku sekwencji e-mailowej.
content_id
*Wymagane (ścieżka)
Liczba całkowita. ID bloku treści do usunięcia.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": {
        "success": true
    }
}
Parametry wyjściowe
data.success
Wartość logiczna. prawda, gdy blok treści został pomyślnie usunięty.

Zarządzanie odbiorcami

Te metody pozwalają zarządzać odbiorcami kampanii — sprawdzać i aktualizować ich statusy, przeglądać potencjalnych klientów, którzy ukończyli kampanię, oraz zarządzać listami Do-not-email, aby kontrolować, kto otrzymuje twoje kampanie.

GETSprawdź status odbiorcy

Bezpłatne

Ta metoda sprawdza, czy podane adresy e-mail są obecne jako odbiorcy w określonej kampanii, i zwraca ich bieżący status. Służy do deduplikacji przed dodaniem nowych odbiorców do kampanii — np. aby uniknąć kontaktowania się z potencjalnymi klientami, którzy są już zapisani do kampanii, ją zakończyli lub zrezygnowali z subskrypcji.

Żądanie
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/recipient
Parametry wejściowe
campaign_id
*Wymagane
Unikalny identyfikator kampanii.
emails[]
*Wymagane
Tablica adresów e-mail do sprawdzenia. Minimum 1, maksimum 100 na żądanie. Każdy adres e-mail musi być unikalny i mieć nie więcej niż 100 znaków.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
        }
    ]
}
Parametry wyjściowe
email
Adres e-mail z żądania (zwrócony w odpowiedzi).
exist
prawda, jeśli adres e-mail jest obecny jako odbiorca w kampanii, w przeciwnym razie fałsz.
status
Bieżący status odbiorcy w kampanii (np. do_sprawdzenia, aktywny, zakończony, rezygnacja_z_subskrypcji, przeniesiony). null, gdy istnieje ma wartość fałsz.

POSTZmień status odbiorcy

Bezpłatne

Zmień status odbiorcy w określonej kampanii.

Żądanie
POSThttps://api.snov.io/v1/change-recipient-status
Parametry wejściowe
email
*Wymagane
Adres e-mail potencjalnego klienta.
campaign_id
*Wymagane
ID kampanii. Możesz je znaleźć w adresie URL podczas wyświetlania informacji o kampanii (zobacz przykład).
status
*Wymagane
Może zawierać wartości Aktywny, Wstrzymany lub Anulowano subskrypcję. Nie możesz zmienić statusu odbiorców, jeśli ich status to Zakończony lub Przeniesiony.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "success": true
}
Parametry wyjściowe

Metoda zwracasuccess: true jeśli status potencjalnego klienta został pomyślnie zmieniony. Jeśli wystąpi jakikolwiek błąd, metoda zwróci success: false z opisem błędu.

GETWyświetl listę ukończonych potencjalnych klientów

Bezpłatne

Ta metoda zwraca potencjalnych klientów, dla których kampania została zakończona.

Żądanie
GEThttps://api.snov.io/v1/prospect-finished
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii do pobrania listy potencjalnych klientów.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "id": "88c268d404797d1001b4d72806207625",
        "prospectId": "9c2eb5b46bb5873e408684dd577d002354e4f7026f47bf8a592d659bba3d2dd0ff186b90dc7a5",
        "userName": "zach Jones",
        "userEmail": "zach@entselect.us",
        "campaign": "Zipari - Salesforce Developer",
        "hash": "f3967971cbab6e769b5f7e3457d00159"
    }
]
Parametry wyjściowe
id
Unikalny identyfikator żądania.
prospectId
Unikalny identyfikator potencjalnego klienta.
userName
Pełne imię i nazwisko potencjalnego klienta.
userEmail
Adres e-mail potencjalnego klienta.
campaign
Nazwa kampanii.

POSTDodaj do Listy „do not email”

Bezpłatne

Za pomocą tej metody możesz dodać adres e-mail lub domenę do Listy „Do-not-email”. Po dodaniu adresu e-mail/domeny do listy nie będzie można wysyłać na ten adres e-mail ani do tej domeny e-maili.

Żądanie
POSThttps://api.snov.io/v1/do-not-email-list
Parametry wejściowe
items
Adres e-mail lub domena, które chcesz dodać do swojej Listy „Do-not-email”.
listId
*Wymagane
Identyfikator Listy „Do-not-email”, do której należą adresy e-mail i domeny.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "success": true,
        "data": {
            "duplicates": []
        }
    }
]
Parametry wyjściowe
duplicates
Ten parametr pokazuje, które adresy e-mail/domeny zostały wcześniej dodane do Listy „Do-not-email”.

GETWyświetl wszystkie listy „Do-not-email”

Bezpłatne

Ta metoda zwraca listę wszystkich list „do-not-email”.

Żądanie
GEThttps://api.snov.io/v2/blacklists
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "data": [
        {
            "id": 8,
            "name": "Do-not-email List",
            "owner": "Rob Patison",
            "total": 100
        }
    ]
}
Parametry wyjściowe
id
Unikalny ID listy „Do-not-email”.
name
Nazwa listy.
owner
Imię i nazwisko osoby, która utworzyła listę.
total
Łączna liczba rekordów na liście (adresów e-mail i stron internetowych).

Analityka i raportowanie

Te metody tylko do odczytu zapewniają wgląd w wyniki kampanii — dostarczenia, otwarcia, kliknięcia i odpowiedzi. Używaj ich do monitorowania zaangażowania i eksportowania danych do analizy.

GETPobierz analitykę kampanii

Bezpłatne

Ta metoda wyświetla statystyki kampanii na podstawie zastosowanych filtrów.

Żądanie
GEThttps://api.snov.io/v2/statistics/campaign-analytics
Parametry wejściowe
campaign_id
ID kampanii. Możesz je znaleźć w adresie URL podczas wyświetlania informacji o kampanii (przykład). Jeśli pozostawisz to pole puste, otrzymasz dane dla wszystkich aktywnych kampanii w określonym przedziale czasu.

Aby uzyskać dane dla wielu kampanii, oddziel ich identyfikatory przecinkami.
sender_email
ID konta nadawcy e-maili. Możesz je znaleźć w adresie URL podczas wyświetlania lub edytowania informacji o koncie e-mail (przykład). Aby wyświetlić analitykę dla wielu kont e-mail, oddziel ich identyfikatory przecinkami.

Możesz też pozostawić ten parametr pusty, jeśli nie chcesz stosować filtra konta e-mail.
sender_linkedin
ID konta nadawcy na LinkedInie. Możesz je znaleźć w adresie URL podczas wyświetlania lub edytowania informacji o koncie na LinkedInie. Aby wyświetlić analitykę dla wielu kont, oddziel ich identyfikatory przecinkami.

Pozostaw ten parametr pusty, jeśli nie chcesz stosować filtra konta na LinkedInie.
campaign_owner
Aby wyświetlić dane kampanii dla konkretnego członka zespołu, wpisz jego adres e-mail. Aby filtrować według wielu właścicieli kampanii, podaj adresy e-mail rozdzielone przecinkami (bez spacji).

Przykład: example1@gmail.com,example2@gmail.com

Pamiętaj, że aby użyć tego filtra, twoje konto musi mieć włączone uprawnienie „Wyświetlanie rekordów zespołu”, a twój plan musi być na poziomie Pro lub wyższym.
date_from
*Wymagane
Data rozpoczęcia okresu, dla którego chcesz otrzymać statystyki. Format: yyyy-mm-dd.
date_to
*Wymagane
Data zakończenia okresu, dla którego chcesz otrzymać statystyki. Format: yyyy-mm-dd.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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%"
}
Parametry wyjściowe
total_contacted
Łączna liczba odbiorców, z którymi nawiązano kontakt przez e-mail lub LinkedIn (zaproszenie do kontaktów, wiadomość lub InMail).
emails_sent
Łączna liczba e-maili wysłanych w ramach kampanii.

Pamiętaj, że nie obejmuje to e-maili wysłanych poza kampaniami.
first_emails
Liczba pierwszych e-maili w sekwencji kampanii wysłanych w określonym przedziale czasu.
first_emails_rate
Procent pierwszych e-maili w stosunku do łącznej liczby wysłanych e-maili.
follow_ups
Liczba e-maili uzupełniających w sekwencji kampanii wysłanych w określonym przedziale czasu.
follow_ups_rate
Procent e-maili uzupełniających w stosunku do łącznej liczby wysłanych e-maili.
delivered
Liczba wysłanych e-maili, które nie zostały odrzucone.
delivered_rate
Procent e-maili, które nie zostały odrzucone, w stosunku do łącznej liczby wysłanych e-maili.
bounced
Liczba e-maili, które zostały odrzucone.
bounced_rate
Procent e-maili, które zostały odrzucone, w stosunku do łącznej liczby wysłanych e-maili.
contacted_by_email
Liczba odbiorców, którzy otrzymali co najmniej jeden e-mail, który nie został odrzucony.
email_opens
Liczba odbiorców, którzy otworzyli twój e-mail co najmniej raz.
email_opens_rate
Procent odbiorców, którzy otworzyli twój e-mail co najmniej raz, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
link_clicks
Liczba odbiorców, którzy kliknęli co najmniej jeden link w twoich kampaniach.
link_clicks_rate
Procent odbiorców, którzy kliknęli co najmniej jeden link w kampaniach, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
email_replies
Liczba odbiorców, którzy odpowiedzieli co najmniej raz.
email_replies_rate
Procent odbiorców, którzy odpowiedzieli co najmniej raz, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
unsubscribed
Liczba odbiorców, którzy kliknęli link „Anuluj subskrypcję” w twoich kampaniach, rezygnując z otrzymywania kolejnych e-maili.
unsubscribed_rate
Procent odbiorców, którzy kliknęli link „Anuluj subskrypcję” w twoich kampaniach, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
auto_replied
Liczba odbiorców, którzy wysłali automatyczną odpowiedź na e-maile z twojej kampanii.
auto_replied_rate
Procent odbiorców, którzy wysłali automatyczną odpowiedź, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
contacted_by_linkedin
Liczba odbiorców, do których wysłano co najmniej jedną wiadomość lub zaproszenie do kontaktów na LinkedInie.
linkedin_total_replies
Liczba odbiorców, którzy odpowiedzieli co najmniej raz na dowolną wiadomość wysłaną na LinkedInie (wiadomość na LinkedInie, wiadomość w zaproszeniu do kontaktów lub InMail).
linkedin_total_replies_rate
Procent odbiorców, którzy odpowiedzieli co najmniej raz na dowolną wiadomość wysłaną na LinkedInie (wiadomość na LinkedInie, wiadomość w zaproszeniu do kontaktów lub InMail).
connection_request_replies
Liczba odbiorców, którzy odpowiedzieli na wiadomość w zaproszeniu do kontaktów.
connection_request_replies_rate
Procent odbiorców, którzy odpowiedzieli na wiadomość w zaproszeniu do kontaktów, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
message_replies
Liczba odbiorców, którzy odpowiedzieli na zwykłą wiadomość na LinkedInie.
message_replies_rate
Procent odbiorców, którzy odpowiedzieli na zwykłą wiadomość na LinkedInie, w stosunku do wszystkich odbiorców, z którymi nawiązano kontakt.
in_mail_replies
Liczba odbiorców, którzy odpowiedzieli na wiadomość InMail na LinkedInie.
in_mail_replies_rate
Procent odbiorców, którzy odpowiedzieli na wiadomość InMail na LinkedInie.
connection_requests
Liczba zaproszeń do kontaktów wysłanych do potencjalnych klientów za pośrednictwem kampanii Snov.io.
accepted_requests
Liczba zaproszeń do kontaktów zaakceptowanych przez użytkowników LinkedIna.
accepted_requests_rate
Procent zaakceptowanych zaproszeń do kontaktów w stosunku do wszystkich wysłanych zaproszeń.
failed_connection_requests
Liczba zaproszeń do kontaktów na LinkedInie, które nie zostały wysłane, ponieważ:
  • adres URL potencjalnego klienta na LinkedInie nie istnieje
  • zaproszenie do kontaktów zostało już wcześniej wysłane i oczekuje na akceptację
  • masz już połączenie z potencjalnym klientem na LinkedInie
messages_sent
Liczba wysłanych wiadomości na LinkedInie.
linkedin_views
Liczba wyświetlonych profili potencjalnych klientów.
linkedin_likes
Liczba polubionych postów potencjalnych klientów na LinkedInie.
linkedin_follows
Liczba obserwowanych profili potencjalnych klientów.
in_mail_sent
Łączna liczba wysłanych wiadomości InMail.
interested
Liczba odbiorców, którzy wykazali zainteresowanie w swoich odpowiedziach.
interested_rate
Procent odbiorców, którzy wykazali zainteresowanie w swoich odpowiedziach.
maybe
Liczba odbiorców, którzy w swoich odpowiedziach nie wyrazili jednoznacznie ani zainteresowania, ani jego braku.
maybe_rate
Procent odbiorców, którzy w swoich odpowiedziach nie wyrazili jednoznacznie ani zainteresowania, ani jego braku.
not_interested
Liczba odbiorców, którzy w swoich odpowiedziach wykazali brak zainteresowania.
not_interested_rate
Procent odbiorców, którzy w swoich odpowiedziach wykazali brak zainteresowania.

GETWyświetl postęp kampanii

Bezpłatne

Ta metoda zwraca postęp i status kampanii.

Żądanie
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/progress
Parametry wejściowe
campaign_id
*Wymagane
ID kampanii. Możesz je znaleźć w adresie URL podczas wyświetlania informacji o kampanii (przykład).
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "status":"Active",
    "unfinished":1,
    "progress":"90%"
}
Parametry wyjściowe
progress
Procent odbiorców, którzy:
  • Dotarły do końca sekwencji
  • E-maile do nich zostały odrzucone, odpowiedzieli, wysłali automatyczną odpowiedź, anulowali subskrypcję, zostali usunięci lub przeniesieni z kampanii, więc kampania została dla nich zatrzymana.
unfinished
Liczba odbiorców w kampanii, którzy nie dotarli do końca sekwencji lub dla których sekwencja nie została zatrzymana.
status
Status kampanii. Dowiedz się więcej

GETPobierz raport aktywności odbiorców kampanii

Bezpłatne

Ta metoda zwraca szczegółowy raport aktywności wszystkich odbiorców kampanii — obejmujący zdarzenia wysłania, otwarcia, kliknięcia, odpowiedzi, odrzucenia i rezygnacji z subskrypcji — wraz ze szczegółami potencjalnych klientów. Odpowiada raportowi aktywności odbiorców dostępnym w interfejsie kampanii i nadaje się do synchronizowania aktywności kampanii z zewnętrznymi dashboardami lub systemami CRM.

Żądanie
GEThttps://api.snov.io/v2/campaigns/[campaignId]/recipients-activity
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii.
dateFrom
*Wymagane
Początek zakresu dat w formacie Y-m-d (UTC).
dateTo
*Wymagane
Koniec zakresu dat w formacie Y-m-d (UTC). Maksymalny zakres między dateFrom a dateTo wynosi 31 dni.
offset
Przesunięcie paginacji (domyślnie: 0).
limit
Liczba rekordów na stronę (domyślnie: 100, maksymalnie: 1000).
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
    }
}
Parametry wyjściowe
event_time
Czas zdarzenia w formacie ISO 8601 (UTC).
event_type
Typ zdarzenia: wysłanie, otwarcie, kliknięcie, odpowiedź, odrzucenie, rezygnacja z subskrypcji.
sender_email
Adres e-mail nadawcy (skrzynka e-mail kampanii).
email_subject
Temat e-maila w sekwencji kampanii.
recipient_email
Adres e-mail odbiorcy.
recipient_name
Pełne imię i nazwisko odbiorcy.
phone
Numer telefonu odbiorcy (z profilu potencjalnego klienta).
country
Kraj odbiorcy.
location
Lokalizacja odbiorcy (miasto, region).
industry
Branża firmy odbiorcy.
company
Nazwa firmy odbiorcy.
job_position
Stanowisko odbiorcy.
website
Strona internetowa firmy odbiorcy.
hq_phone
Numer telefonu do siedziby firmy odbiorcy.
total
Łączna liczba rekordów pasujących do żądania.
offset
Bieżące przesunięcie paginacji.
limit
Rozmiar strony użyty w odpowiedzi.
has_more
prawda, jeśli po bieżącej stronie są jeszcze kolejne rekordy.

GETWyświetl wysłane e-maile

Bezpłatne

Ta metoda wyświetla informacje o e-mailach wysłanych w ramach kampanii.

Żądanie
GEThttps://api.snov.io/v1/emails-sent
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii, dla której chcesz wyświetlić wysłane e-maile.
offset
W każdym żądaniu możesz pobrać maksymalnie 10 000 wysłanych e-maili. Jeśli w twojej kampanii wysłano więcej e-maili, użyj parametru offset, aby określić, ile wcześniejszych e-maili chcesz pominąć. Na przykład, jeśli w kampanii wysłano 20 000 e-maili i chcesz pobrać e-maile 10 001–20 000, ustaw offset na 10 000. Jeśli offset nie zostanie określony, otrzymasz ostatnie 10 000 e-maili wysłanych w ramach kampanii.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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"
    }
]
Parametry wyjściowe
sentDate
Dokładny czas wysłania e-maila.
userName
Pełne imię i nazwisko potencjalnego klienta, do którego wysłano e-mail.
userEmail
Adres e-mail potencjalnego klienta.
campaign
Nazwa kampanii.

GETPobierz informacje o otwarciach w kampanii

Bezpłatne

Ta metoda wyświetla informacje o otwartych e-mailach w kampanii.

Żądanie
GEThttps://api.snov.io/v1/get-emails-opened
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii, dla której chcesz wyświetlić informacje o otwarciach e-maili.
offset
W każdym żądaniu możesz pobrać maksymalnie 10 000 otwarć. Jeśli w twojej kampanii otwarto więcej e-maili, użyj parametru offset, aby określić, ile wcześniejszych otwarć chcesz pominąć. Na przykład, jeśli twoja kampania ma 20 000 otwarć i chcesz pobrać otwarcia 10 001–20 000, ustaw offset na 10 000. Jeśli offset nie zostanie określony, otrzymasz ostatnie 10 000 otwartych e-maili.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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": ""
    }
]
Parametry wyjściowe
campaignId
Unikalny identyfikator kampanii.
campaign
Nazwa kampanii.
prospectName
Pełne imię i nazwisko potencjalnego klienta, który otworzył e-mail.
emailSubject
Temat otwartego e-maila.
visitedAt
Dokładny czas otwarcia e-maila przez potencjalnego klienta.

GETSprawdź kliknięcia linków

Bezpłatne

Ta metoda zwraca informacje o wszystkich odbiorcach kampanii, którzy kliknęli link w jednym z e-maili kampanii.

Żądanie
GEThttps://api.snov.io/v1/get-emails-clicked
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii, dla której chcesz wyświetlić kliknięcia linków.
offset
W każdym żądaniu możesz pobrać maksymalnie 10 000 kliknięć. Jeśli twoja kampania ma więcej kliknięć, użyj parametru offset, aby określić, ile wcześniejszych kliknięć chcesz pominąć. Na przykład, jeśli twoja kampania ma 20 000 kliknięć i chcesz pobrać kliknięcia 10 001–20 000, ustaw offset na 10 000. Jeśli offset nie zostanie określony, otrzymasz ostatnie 10 000 e-maili, w których kliknięto link w ramach kampanii.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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": ""
    }
]
Parametry wyjściowe
campaignId
Unikalny identyfikator kampanii.
campaign
Nazwa kampanii.
prospectName
Pełne imię i nazwisko potencjalnego klienta, który kliknął link w e-mailu z kampanii.
prospectEmail
Adres e-mail potencjalnego klienta.
emailSubject
Temat e-maila zawierającego kliknięty link.
emailBody
Treść e-maila.
visitedAt
Dokładny czas kliknięcia linku w e-mailu przez potencjalnego klienta.

GETWyświetl wszystkie odpowiedzi w kampanii

Bezpłatne

Ta metoda wyświetla listę wszystkich odpowiedzi otrzymanych w ramach kampanii — zarówno odpowiedzi e-mail, jak i odpowiedzi na LinkedInie (odpowiedzi na zaproszenia do kontaktów, wiadomości na LinkedInie i wiadomości InMail). Każdy rekord reprezentuje unikalną parę (potencjalny klient, typ odpowiedzi); odpowiedzi w obrębie rekordu są sortowane chronologicznie, dzięki czemu wątek można czytać od góry do dołu.

Żądanie
GEThttps://api.snov.io/v2/campaigns/[campaign_id]/all-replies
Parametry wejściowe
campaign_id
*Wymagane
Unikalny identyfikator kampanii.
offset
Przesunięcie paginacji (domyślnie: 0).
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
                }
            ]
        }
    ]
}
Parametry wyjściowe
campaignId
Unikalny identyfikator kampanii.
campaign
Nazwa kampanii.
prospectId
Unikalny identyfikator potencjalnego klienta.
prospectName
Pełne imię i nazwisko potencjalnego klienta.
prospectEmail
Adres e-mail potencjalnego klienta.
linkedInProfile
Adres URL profilu potencjalnego klienta na LinkedInie (jeśli jest dostępny).
replyType
Typ odpowiedzi: e-mail, wiadomośćLinkedIn, zaproszenieLinkedIn, InMailLinkedIn.
receivedAt
Data i godzina najwcześniejszej odpowiedzi w tej parze (potencjalny klient, typ odpowiedzi).
replies[].subject
Temat odpowiedzi (pusty ciąg znaków w przypadku odpowiedzi na LinkedInie bez tematu).
replies[].message
Treść odpowiedzi.
replies[].receivedAt
Data i godzina otrzymania danej odpowiedzi.

GETWyświetl odpowiedzi e-mail w kampanii

Bezpłatne

Ta metoda zwraca odpowiedzi e-mail otrzymane w ramach kampanii, w tym imię i nazwisko potencjalnego klienta, jego ID, kampanię itp. Aby oprócz odpowiedzi e-mail uzyskać także odpowiedzi z LinkedIna (na zaproszenie do kontaktów, wiadomość bezpośrednią lub InMail), użyj metody Wyświetl wszystkie odpowiedzi w kampanii.

Żądanie
GEThttps://api.snov.io/v1/get-emails-replies
Parametry wejściowe
campaignId
*Wymagane
Unikalny identyfikator kampanii, dla której chcesz wyświetlić odpowiedzi.
offset
W każdym żądaniu możesz pobrać maksymalnie 10 000 odpowiedzi. Jeśli twoja kampania ma więcej odpowiedzi, użyj parametru offset, aby określić, ile wcześniejszych odpowiedzi chcesz pominąć. Na przykład, jeśli twoja kampania ma 20 000 odpowiedzi i chcesz pobrać odpowiedzi 10 001–20 000, ustaw offset na 10 000. Jeśli offset nie zostanie określony, otrzymasz ostatnie 10 000 otrzymanych odpowiedzi.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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": ""
    }
]
Parametry wyjściowe
campaignId
Unikalny identyfikator kampanii.
campaign
Nazwa kampanii.
prospectName
Pełne imię i nazwisko potencjalnego klienta.
emailSubject
Temat e-maila, na który otrzymano odpowiedź.
emailBody
Treść e-maila, na który otrzymano odpowiedź.

POSTDodaj potencjalnego klienta do listy

Bezpłatne

Dodaj potencjalnego klienta do określonej listy. Ta metoda będzie przydatna dla osób, które chcą zautomatyzować dodawanie potencjalnych klientów do list z aktywnymi kampaniami drip e-mail. Dzięki temu po automatycznym dodaniu potencjalnego klienta do wybranej listy kampania drip e-mail zostanie dla niego uruchomiona automatycznie.

Żądanie
POSThttps://api.snov.io/v1/add-prospect-to-list
Parametry wejściowe
email
Adres e-mail potencjalnego klienta.
fullName
Pełne imię i nazwisko potencjalnego klienta.
firstName
Imię potencjalnego klienta.
lastName
Nazwisko potencjalnego klienta.
phones
Tablica zawierająca numery telefonów potencjalnego klienta.
country
Kraj potencjalnego klienta. Nazwy krajów są zdefiniowanetutaj. Prosimy używać wyłącznie krajów z tej listy.
locality
Miejscowość potencjalnego klienta.
position
Stanowisko potencjalnego klienta.
companyName
Nazwa firmy potencjalnego klienta.
companySite
Strona internetowa firmy potencjalnego klienta. Prosimy użyć
http://example.com
formatu.
updateContact
Aktualizuje istniejącego potencjalnego klienta. Przyjmuje wartość true lub false.
  • Jeśli wartość to true i potencjalny klient z tym adresem e-mail już istnieje na jednej z list, system zaktualizuje istniejący profil.
  • Jeśli wartość to false, system nie zaktualizuje istniejącego profilu.
createDuplicates
Tworzy duplikat potencjalnego klienta. Przyjmuje wartość prawda lub fałsz.
  • Jeśli wartość to prawda i potencjalny klient z tym adresem e-mail już istnieje na jednej z list, system utworzy duplikat profilu.
  • Jeśli wartość to fałsz, system nie utworzy duplikatu profilu.

Tylko jeden parametr, updateContact lub createDuplicates, może mieć wartość prawda.
customFields[specialization]
Możesz dodawać niestandardowe wartości do wcześniej utworzonych pól niestandardowych. Aby to zrobić, podaj nazwę pola niestandardowego w [nawiasach].
socialLinks[linkedIn]
*Wymagane, jeśli email nie ma wartości
Link do profilu potencjalnego klienta w mediach społecznościowych. Podaj nazwę sieci społecznościowej w [nawiasach] (LinkedIn, Facebook lub X).
listId
*Wymagane
Identyfikator listy, do której należy potencjalny klient.
Przykłady kodu
<?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"
  }
}
Przykład odpowiedzi
{
    "success": true,
    "id": "0Y2QzowWL1rHpIptwaRp0Q==",
    "added": true,
    "updated": false
}
Parametry wyjściowe
success
To
true
jeśli potencjalny klient został pomyślnie dodany do listy.
id
Identyfikator dodanego potencjalnego klienta.
added
To
true
jeśli potencjalny klient został dodany do listy.
updated
To
true
jeśli dane istniejącego potencjalnego klienta zostały zaktualizowane.
errors
Wystąpił błąd podczas dodawania potencjalnego klienta do listy.

POSTZnajdź potencjalnego klienta według ID

Bezpłatne

Znajduj potencjalnych klientów ze swoich list według ID. Znając ID konkretnego potencjalnego klienta, możesz uzyskać pełne informacje na jego temat, w tym listy i kampanie, do których został dodany.

Żądanie
POSThttps://api.snov.io/v1/get-prospect-by-id
Parametry wejściowe
id
*Wymagane
Identyfikator potencjalnego klienta. Możesz go zobaczyć w odpowiedzi po dodaniu potencjalnego klienta za pomocąDodaj potencjalnego klienta do listy metody API lub w adresie URL podczas wyświetlania strony potencjalnego klienta (zobacz przykład).
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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": []
  }
}
Parametry wyjściowe
success
To
true
jeśli potencjalny klient został znaleziony
id
Unikalny identyfikator profilu
name
Pełne imię i nazwisko potencjalnego klienta
firstName
Imię potencjalnego klienta
lastName
Nazwisko potencjalnego klienta
industry
Branża wskazana w profilu potencjalnego klienta
country
Kraj potencjalnego klienta
locality
Miejscowość potencjalnego klienta
social
Linki do profili potencjalnego klienta w mediach społecznościowych
currentJobs
Tablica zawierająca informacje o obecnym stanowisku potencjalnego klienta
previousJobs
Tablica zawierająca informacje o poprzednich stanowiskach prospekta
lastUpdateDate
Data ostatniej aktualizacji profilu
lists
Listy, do których dodano potencjalnego klienta
campaigns
Lista kampanii, do których potencjalny klient został dodany jako odbiorca. Zawiera krótkie statystyki, takie jak status, liczba wysłanych wiadomości, otwarć i odpowiedzi.

POSTZnajdź potencjalnego klienta według adresu e-mail

Bezpłatne

Znajdź potencjalnego klienta na swoich listach według adresu e-mail. Wyszukując według adresu e-mail, otrzymasz listę wszystkich potencjalnych klientów powiązanych z tym adresem. Każdy element listy zawiera pełne informacje o potencjalnym kliencie, w tym listy i kampanie, do których został dodany.

Żądanie
POSThttps://api.snov.io/v1/get-prospects-by-email
Parametry wejściowe
email
*Wymagane
Adres e-mail potencjalnego klienta.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
  "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": []
    }
  ]
}
Parametry wyjściowe
success
To
true
jeśli potencjalny klient został znaleziony
id
Unikalny identyfikator profilu
name
Pełne imię i nazwisko potencjalnego klienta
firstName
Imię potencjalnego klienta
lastName
Nazwisko potencjalnego klienta
industry
Branża wskazana w profilu potencjalnego klienta
country
Kraj potencjalnego klienta
locality
Miejscowość potencjalnego klienta
social
Linki do profili potencjalnego klienta w mediach społecznościowych
currentJobs
Tablica zawierająca informacje o obecnym stanowisku potencjalnego klienta
previousJobs
Tablica zawierająca informacje o poprzednich stanowiskach potencjalnego klienta
lastUpdateDate
Data ostatniej aktualizacji profilu
lists
Listy, do których dodano potencjalnego klienta
campaigns
Lista kampanii, do których potencjalny klient został dodany jako odbiorca. Zawiera krótkie statystyki, takie jak status, liczba wysłanych wiadomości, otwarć i odpowiedzi.

GETZnajdź pola niestandardowe potencjalnego klienta

Bezpłatne

Ta metoda zwraca listę wszystkich pól niestandardowych utworzonych przez użytkownika, w tym nazwę pola, informację o tym, czy pole jest opcjonalne czy wymagane, oraz typ danych pola.

Żądanie
GEThttps://api.snov.io/v1/prospect-custom-fields
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
  [
    {
        "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"
    }
  ]
Parametry wyjściowe
key
Klucz pola w tablicy
customFields
.
label
Nazwa pola.
required
To
true
jeśli pole niestandardowe jest wymagane.
type
Typ danych pola niestandardowego (ciąg znaków, liczba lub data).

GETWyświetl listy użytkownika

Bezpłatne

Ta metoda zwraca wszystkie listy utworzone przez użytkownika. Możesz jej użyć, aby przejrzeć listy, które można wykorzystać w kampanii drip e-mail.

Żądanie
GEThttps://api.snov.io/v1/get-user-lists
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "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"
        }
    }
]

Parametry wyjściowe
id
Unikalny identyfikator listy użytkownika.
name
Nazwa listy
contacts
Liczba potencjalnych klientów na liście.
isDeleted
Status listy. Jest
true
jeśli lista została usunięta.
creationDate
Data i godzina utworzenia listy (obejmuje datę, godzinę i informacje o strefie czasowej).
deleteDate
Jeśli lista została usunięta, zawiera datę i godzinę jej usunięcia (obejmuje datę, godzinę i informacje o strefie czasowej).

POSTWyświetl potencjalnych klientów na liście

Bezpłatne

Ta metoda zwraca wszystkie dane potencjalnych klientów z określonej listy, w tym dane takie jak adresy e-mail i ich status.

Żądanie
POSThttps://api.snov.io/v1/prospect-list
Parametry wejściowe
listId
*Wymagane
Unikalny identyfikator listy.
page
Możesz wybrać, od której strony listy chcesz rozpocząć wyszukiwanie. To pole jest opcjonalne.
perPage
Ustaw maksymalną liczbę potencjalnych klientów, którzy mają zostać uwzględnieni w odpowiedzi. Maksymalna wartość to 5000.
Przykłady kodu
<?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)
Przykład odpowiedzi

Pamiętaj, że wyniki dotyczące potencjalnych klientów są wyświetlane w odwrotnej kolejności — od ostatniego do pierwszego.

{
    "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
                }
            ]
        }
    ]
}

Parametry wyjściowe
list
Tablica zawierająca informacje o liście i znajdujących się na niej potencjalnych klientach.
name
Nazwa listy.
contacts
Liczba potencjalnych klientów na liście.
creation_date
Data utworzenia listy (obejmuje datę, godzinę i informacje o strefie czasowej).
emailsCount
Liczba adresów e-mail na liście.
prospects
Lista potencjalnych klientów na liście.
id
Unikalny identyfikator potencjalnego klienta.
name
Pełne imię i nazwisko potencjalnego klienta.
emails
Lista adresów e-mail należących do potencjalnego klienta.

POSTUtwórz nową listę potencjalnych klientów

Bezpłatne

Użyj tej metody, aby tworzyć nowe listy potencjalnych klientów na swoim koncie.

Żądanie
POSThttps://api.snov.io/v1/lists
Parametry wejściowe
name
Nazwa nowej listy potencjalnych klientów.
Przykłady kodu
<?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)
Przykład odpowiedzi
[
    {
        "success": true,
        "data": {
            "id": 1234567
        }
    }
]
Parametry wyjściowe
id
ID utworzonej listy potencjalnych klientów.

GETPobierz listę pipeline’ów

Bezpłatne

Ta metoda wyświetla listę wszystkich pipeline’ów z sekcji CRM (Transakcje), w tym liczbę i łączną wartość transakcji w każdym pipeline’ie.

Żądanie
GEThttps://api.snov.io/v2/pipelines
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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"
        }
    ]
}
Parametry wyjściowe
id
Unikalny identyfikator pipeline’u.
name
Nazwa pipeline’u.
deals_count
Liczba transakcji obecnie znajdujących się w pipeline’ie.
deals_value
Łączna wartość wszystkich transakcji w pipeline’ie.
created_at
Data i godzina utworzenia pipeline’u w formacie ISO 8601.

GETPobierz listę etapów pipeline’u

Bezpłatne

Ta metoda wyświetla listę wszystkich etapów w określonym pipeline’ie z sekcji CRM (Transakcje).

Żądanie
GEThttps://api.snov.io/v2/pipelines/{pipeline_id}/stages
Parametry wejściowe
pipeline_id
Unikalny identyfikator pipeline’u, którego etapy chcesz pobrać.
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "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
        }
    ]
}
Parametry wyjściowe
id
Unikalny identyfikator etapu.
pipeline_id
ID pipeline’u, do którego należy ten etap.
name
Nazwa etapu.
order
Pozycja etapu w pipeline’ie.
deals_count
Liczba transakcji obecnie znajdujących się na tym etapie.
deals_value
Łączna wartość wszystkich transakcji na tym etapie.

GETSprawdź saldo użytkownika

Bezpłatne

Użyj tej metody, aby sprawdzić saldo kredytów.

Żądanie
GEThttps://api.snov.io/v1/get-balance
Parametry wejściowe
Ta metoda nie ma parametrów wejściowych
Przykłady kodu
<?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)
Przykład odpowiedzi
{
    "success": true,
    "data": {
        "balance": "25000.00",
        "teamwork": false,
        "unique_recipients_used": 0,
        "limit_resets_in": 29,
        "expires_in": 359
    }
}

Parametry wyjściowe
balance
Aktualne saldo kredytów użytkownika.
teamwork
Wartość prawda oznacza, że obecnie jesteś członkiem lub liderem zespołu, a fałsz — że nie należysz do zespołu.
recipients_used
Liczba unikalnych odbiorców wykorzystanych w tym miesiącu.
limit_resets_in
Liczba dni do zresetowania limitu.
expires_in
Liczba dni do końca subskrypcji.

Webhooki

Opis

Webhooki pozwalają otrzymywać powiadomienia o zdarzeniach, które miały miejsce na twoim koncie Snov.io.

Możesz używać webhooków, aby wywoływać endpoint (URL) na swoim serwerze za każdym razem, gdy w Snov.io wystąpi subskrybowane zdarzenie, i przesyłać dane w czasie rzeczywistym do swojej aplikacji.

Za każdym razem, gdy wystąpi zdarzenie, Snov.io wysyła żądanie HTTP z treścią JSON do określonego adresu URL (endpointu).

Możesz subskrybować webhooki i zarządzać nimi za pomocą zestawu wywołań API.

Obecnie obsługiwane obiekty i działania webhooków są wymienione poniżej:

Obiekt webhookaAkcjaPo uruchomieniu
campaign_email
wysłanyGdy dowolny e-mail zostanie wysłany do odbiorcy w dowolnej kampanii drip
first_sentGdy pierwszy e-mail zostanie wysłany do odbiorcy w dowolnej kampanii drip
otwartyGdy odbiorca otworzy dowolny e-mail z dowolnej kampanii drip
odbityGdy e-mail z kampanii zostanie odrzucony
clickedGdy odbiorca kliknie link w e-mailu z kampanii
campaign_reply
otrzymanyGdy odbiorca odpowie na dowolny e-mail w dowolnej kampanii
first_receivedGdy odbiorca po raz pierwszy odpowie na e-mail w dowolnej kampanii
autoreply_receivedGdy otrzymasz automatyczną odpowiedź na e-mail z kampani
campaign_li_reply
receivedGdy odbiorca wyśle kolejną odpowiedź na LinkedInie — na zaproszenie do kontaktów, wiadomość bezpośrednią lub InMail — w dowolnej kampanii
first_receivedGdy odbiorca wyśle pierwszą odpowiedź na LinkedInie — na zaproszenie do kontaktów, wiadomość bezpośrednią lub InMail — w dowolnej kampanii
campaign_li
connection_request_acceptedGdy odbiorca zaakceptuje zaproszenie do kontaktów na LinkedInie wysłane z kampanii
company
found_domains_by_namesGdy poprosisz o domenę firmy na podstawie jej nazwy
found_company_by_domainGdy wyszukujesz firmę według jej domeny
prospect
found_by_li_urlGdy poprosisz o informacje z profilu potencjalnego klienta na podstawie jego adresu URL na LinkedInie
found_emails_by_name_by_domainGdy wyszukujesz adres e-mail potencjalnego klienta
campaign_finishedGdy kampania zostanie zakończona dla odbiorcy (status: Zakończony)
unsubscribedGdy odbiorca kampanii zrezygnuje z subskrypcji twoich e-maili
found_company_by_domainGdy wyszukujesz potencjalnych klientów według domeny firmy
email_verification
verifiedGdy poprosisz o weryfikację adresu e-mail
email
found_emails_by_domainGdy wyszukujesz wszystkie adresy e-mail według domeny
found_generic_contacts_by_domainGdy wyszukujesz ogólne adresy e-mail według domeny
found_prospect_emailsGdy wyszukujesz adresy e-mail potencjalnych klientów
database_search
task_resultGdy wyszukujesz potencjalnego klienta lub firmę

Limity: użytkownicy planu premium mogą utworzyć maksymalnie 50 webhooków.

Zasady ponawiania: webhook zostaje uznany za pomyślny, jeśli w ciągu 3 sekund otrzymamy w odpowiedzi status HTTP z zakresu 200–299.

Jeśli otrzymamy inny status HTTP lub wystąpi przekroczenie limitu czasu, podejmiemy siedem prób ponowienia z coraz dłuższymi odstępami, maksymalnie do 38 godzin od zdarzenia, które uruchomiło webhook:

Jeśli wszystkie próby ponowienia zakończą się niepowodzeniem, webhook zostanie dezaktywowany.

  • 1.: natychmiast po zdarzeniu
  • 2.: 20 minut po ostatniej próbie (20 minut po zdarzeniu)
  • 3.: 40 minut po ostatniej próbie (1 godzinę po zdarzeniu)
  • 4.: 60 minut po ostatniej próbie (2 godziny po zdarzeniu)
  • 5.: 4 godziny po ostatniej próbie (6 godzin po zdarzeniu)
  • 6.: 8 godzin po ostatniej próbie (14 godzin po zdarzeniu)
  • 7.: 24 godziny po ostatniej próbie (38 godzin po zdarzeniu)

GETWyświetl wszystkie webhooki

Ta metoda API pozwala uzyskać listę webhooków na twoim koncie.
Żądanie
GEThttps://api.snov.io/v2/webhooks
Nagłówek żądania

Typ zawartości: application/json

Parametry wejściowe
Ta metoda nie ma parametrów wejściowych.
Przykład odpowiedzi
{
    "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
    }
}
Parametry wyjściowe
Odpowiedź zwraca kolekcję modeli webhooków. Właściwości modelu są wymienione poniżej:
ParametrTyp danychTyp danych
data
arrayKolekcja modeli webhooków
id
intID Webhooka
end_point
stringRzeczywisty adres URL podany podczas dodawania webhooka, na który będzie on wysyłany
event_object
stringObiekt, na którym wykonywane jest działanie
event_action
stringDziałanie na obiekcie
created_at
intData utworzenia webhooka w formacie Unix Timestamp
status
stringStatus webhooka: aktywny, dezaktywowany
meta
objectPowiązane dane
webhooks_count
intŁączna liczba webhooków na twoim koncie (maks. 50)
user_id
intTwój ID użytkownika

POSTDodaj webhook

Ta metoda API pozwala utworzyć subskrypcję webhooka i otrzymywać powiadomienia o zdarzeniach pod określony adres URL endpointu.
Żądanie
POSThttps://api.snov.io/v2/webhooks
Nagłówek żądania

Typ zawartości: application/json

Parametry wejściowe
event_object
obiekt, na którym wykonywane jest działanie (lista obsługiwanych obiektów)
event_action
działanie wykonywane na obiekcie (lista obsługiwanych działań)
endpoint_url
adres URL, na który wysyłany jest webhook
Przykład żądania
{
  "event_object": "campaign_email",
  "event_action": "sent",
  "endpoint_url": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/"
}
Przykład odpowiedzi
{
    "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
    }
}
Parametry wyjściowe
Odpowiedź zwraca model dodanego webhooka. Właściwości modelu są wymienione poniżej:
ParametrTyp danychTyp danych
data
objectDane webhooka
id
intID Webhooka
end_point
stringRzeczywisty adres URL podany podczas dodawania webhooka, na który będzie on wysyłany
event_object
stringObiekt, na którym wykonywane jest działanie
event_action
stringDziałanie na obiekcie
created_at
intData utworzenia webhooka w formacie Unix Timestamp
status
stringStatus webhooka: aktywny, dezaktywowany
meta
objectPowiązane dane
user_id
intTwój ID użytkownika

PUTZmień status webhooka

Zmienia status wybranej subskrypcji webhooka.

Uwzględnij unikalną wartość „id” wybranego webhooka na końcu adresu URL żądania.

Użyj metody Wyświetl wszystkie webhooki, aby uzyskać wartości id swoich webhooków.

Żądanie
PUThttps://api.snov.io/v2/webhooks/webhook_id
Nagłówek żądania

Typ zawartości: application/json

Parametry wejściowe
status
aktywny lub dezaktywowany
Przykład żądania
{
    https://api.snov.io/v2/webhooks/14
    "status": "deactivated"
}
Przykład odpowiedzi
{
    "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
    }
}
Parametry wyjściowe
Odpowiedź zwraca model dodanego webhooka. Właściwości modelu są wymienione poniżej:
ParametrTyp danychTyp danych
data
objectDane webhooka
id
intID Webhooka
end_point
stringRzeczywisty adres URL podany podczas dodawania webhooka, na który będzie on wysyłany
event_object
stringObiekt, na którym wykonywane jest działanie
event_action
stringDziałanie na obiekcie
created_at
intData utworzenia webhooka w formacie Unix Timestamp
status
stringStatus webhooka: aktywny, dezaktywowany
meta
objectPowiązane dane
user_id
intTwój ID użytkownika

DELETEUsuń webhook

Usuwa wybrany webhook.

Uwzględnij unikalną wartość „id” wybranego webhooka na końcu adresu URL żądania.

Użyj metody Wyświetl wszystkie webhooki, aby uzyskać wartości id swoich webhooków.

Żądanie
DELETEhttps://api.snov.io/v2/webhooks/webhook_id
Nagłówek żądania

Typ zawartości: application/json

Przykład żądania
{
    https://api.snov.io/v2/webhooks/8
}
Przykład odpowiedzi
{
    "data": {
        "success": true
    }
}
Parametry wyjściowe
Odpowiedź zwraca kolekcję modeli webhooków. Właściwości modelu są wymienione poniżej:
ParametrTyp danychTyp danych
success
booleanWskazuje, czy webhook został usunięty