Snov.io API

Introduction

Our service's features are available with our simple REST API. Integrate with Snov.io API to sync your lead generation processes. Snov.io API allows to retrieve email addresses from our database for particular domains, get a list of all emails from a particular domain, find email addresses by first name, last name and domain, as well as verify emails.

Note, the API rate is limited to 60 requests per minute.

Authentication

You need to generate an access token to authenticate future requests. When making a request, please specify this access token in the Authorization field.

Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4

Here is an example for token generation.

Request
POSThttps://app.snov.io/oauth/access_token
Input Parameters
grant_type
Will always be "
client_credentials
"
client_id
Your id is available in the account settings https://app.snov.io/api-setting
client_secret
Your secret key is available in account settings https://app.snov.io/api-setting
Code examples
<?php
function getAccessToken()
{
    $params = [
        'grant_type'    => 'client_credentials',
        'client_id'     => 'c57a0459f6t141659ea75cccb393c5111',
        'client_secret' => '77cbf92b71553e85ce3bfd505214f40b'
    ];

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/oauth/access_token',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/oauth/access_token', data=params)
resText = res.text.encode('ascii','ignore')

return json.loads(resText)['access_token']
Response
{
"access_token":"3yUyQZdks0Ej7T2fXzjUWzwlTcO4dWisKkeMpESz",
"token_type":"Bearer",
"expires_in":3600
}
Output Parameters
access_token
Your new access token
token_type
Will always be Bearer
expires_in
Token expiration time (in seconds)
API methods
Email Count

Free

With this API method, you can find out the number of email addresses from a certain domain in our database. It`s completely free, so you don`t need credits to use it!

Request
POSThttps://app.snov.io/restapi/get-domain-emails-count
Input Parameters
domain
The name of the domain for which you`d like to know the number of emails in our database.
Code examples
<?php
function getEmailCount()
{
    $token = getAccessToken();

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

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-domain-emails-count',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/restapi/get-domain-emails-count', data=params)

return json.loads(res.text)
Response
{
"domain":"octagon.com",
"webmail":false,
"result":1369
}
Output Parameters
domain
The name of the domain for which you`d like to know the number of emails in our database.
webmail
Is "
true
" if the domain you`re searching is webmail.
result
A total number of email addresses we have found for this domain. We can`t provide results for webmail domains, so the result for webmail will always be
0
.
Domain Search

2 credits per request

Enter a domain name and Snov.io will return all the email addresses on the domain.
If there is any additional information about the email owner available in the database, we will add it as well.
Each response returns up to 100 emails. If it does not return at least one email, you will not be charged for the request.
Request
POSThttps://app.snov.io/restapi/get-domain-emails-with-info
Input Parameters
domain
The name of the domain from which you want to find the email addresses. For example, "snov.io".
type
It can contain different values - "
all
", "
personal
" or "
generic
" . A generic email address is a role-based email address, for example - contact@snov.io.

A personal email address is the email of the actual person working at the company.

limit
Set the limit to specify the number of email addresses to return. Each response returns up to 100 email addresses.
offset
Use offset to specify the number of email addresses to skip in the search. The default is
0
.
Code examples
<?php
function getDomainSearch()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'domain'       => 'octagon.com',
        'type'         => 'all',
        'limit'        => 100
    ];

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-domain-emails-with-info',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

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

    return $res;

}
?>
def get_domain_search():
token = get_access_token()
params = {'access_token':token,
        'domain':'octagon.com',
          'type': 'all',
          'limit': 100
}

res = requests.post('https://app.snov.io/restapi/get-domain-emails-with-info', data=params)

return json.loads(res.text)
Response
{
"domain":"octagon.com",
"webmail":false,
"result":100,
"limit":100,
"companyName":"Octagon",
"emails":[
{
"email":"ben.gillespie@octagon.com",
"type":"prospect",
"status":"verified",
"firstName":"Ben",
"lastName":"Gillespie",
"position":"Senior Account Executive",
"sourcePage":"https://www.linkedin.com/pub/ben-gillespie/7/73/809"
},
...
]
}
Output Parameters
domain
The domain name for which the API has provided the email addresses.
webmail
Is "
true
" if the domain you`re searching is webmail.
result
The number of email addresses we have found for this domain. We can`t provide results for webmail domains, so the result for webmail will always be
0
.
limit
Specifies the maximum number of email addresses to return.
companyName
The company name used to find the email addresses.
emails
The array of domain emails retrieved in the search.
email
A specific email address retrieved in the search.
type
Can contain "
prospect
" or "
email
" values. If the returned type is "
prospect
" , Snov.io found additional information about the email owner.
status
Email`s verification status. Email`s status can be "
verified
" or "
notVerified
".
firstName
The email owner`s first name.
lastName
The email owner`s last name.
position
The email owner`s current job position.
sourcePage
The source page of retrieved personal data.
Email Verifier

Free

Check if the provided email addresses are valid and deliverable. API endpoint will return the email verification results. If we haven’t verified a certain email address before, the results will not be returned to you. In this case, the API will return a “not_verified” identifier and you will not be charged credits for this email. You should use the Add Emails for Verification method to push this email address for verification, after which you will be able to get the email verification results using this endpoint.

Request
POSThttps://app.snov.io/restapi/get-emails-verification-status
Input Parameters
emails
The email addresses you need to verify.
Code examples
<?php
function getEmailVerifier()
{
    $token = getAccessToken();
    $emails = ['gavin.vanrooyen@octagon.com', 'lizi.hamer@octagon.com'];

    $emailsQuery = http_build_query(
        [
            'emails' => $emails
        ]
    );
    $params = ['access_token' => $token];

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-emails-verification-status?' . $emailsQuery,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

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

    return $res;

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

res = requests.post('https://app.snov.io/restapi/get-emails-verification-status?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com', data=params)

return json.loads(res.text)
Response
{
"gavin.vanrooyen@octagon.com":{
"status":{
"identifier":"not_verified",
"description":"Email is not verified, try to send it for verification"
},
"data":[
]
},
"lizi.hamer@octagon.com":{
"data":{
"email":"lizi.hamer@octagon.com",
"isValidFormat":true,
"isDisposable":false,
"isWebmail":true,
"isGibberish":false,
"smtpStatus":"valid"
},
"status":{
"identifier":"complete",
"description":"Email verification is completed"
}
}
}

This method will return data for each requested email address. The response contains an email verification status and verification results.

Output Parameters
status
The Email verification status. Contains identifier and description.
identifier
Can contain the following values: "
complete
", "
in_progress
", or "
not_verified
". If the identifier is "
not_verified
", "
data
" will be empty.
description
Here you will see a text description of the verification status.
data
Contains further verification results - "
email
", "
isValidFormat
", "
isWebmail
", "
isGibberish
".
email
The email address that has been verified.
isValidFormat
Is "
true
" if the format of email is correct, i.e. it contains valid symbols in the correct order.
isDisposable
Is "
true
" if we find that this email address is from a disposable email service.
isWebmail
Is "
true
" if this email address is from a webmail.
isGibberish
Is "
true
" if this email address has been automatically generated.
smtpStatus
Can return "
valid
", "
not_valid
" or "
unknown
". If the value is "
unknown
"we can not provide an SMTP status for this email address.
Add Emails for Verification

0.5 credit per email address

If you've never verified a certain email address before, you should push it for verification using this API method. After performing this action, you can receive the verification results using the Email Verifier.

Request
POSThttps://app.snov.io/restapi/add-emails-to-verification
Input Parameters
emails
A list of email addresses you need to add to the verification queue. Each request can contain up to 10 emails.
Code examples
<?php
function addEmailsForVerification()
{
    $token = getAccessToken();
    $emails = ['gavin.vanrooyen@octagon.com', 'lizi.hamer@octagon.com'];

    $emailsQuery = http_build_query(
        [
            'emails' => $emails
        ]
    );
    $params = ['access_token' => $token];

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/add-emails-to-verification?' . $emailsQuery,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

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

    return $res;

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

res = requests.post('https://app.snov.io/restapi/add-emails-to-verification?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com', data=params)

return json.loads(res.text)
Response
{
"gavin.vanrooyen@octagon.com":{
"sent":true
},
"lizi.hamer@octagon.com":{
"sent":true
}
}

If an email address is successfully added to the queue, the method returns "sent":true.

Email Finder

1 credit per request

This API method finds email addresses using the person`s first and last name, and a domain name. If we don`t have this email address in our database, we won`t be able to provide the results to you right away. To speed up the process, you can use the Add Names To Find Emails method to push this email address for search. After that, try the Email Finder method again.

Request
POSThttps://app.snov.io/restapi/get-emails-from-names
Input Parameters
firstName
The email address owner`s first name.
lastName
The email address owner`s last name.
domain
The domain name of the company that is used in the email address.
Code examples
<?php
function getEmailFinder()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'domain'       => 'octagon.com',
        'firstName'    => 'gavin',
        'lastName'     => 'vanrooyen'
    ];

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-emails-from-names',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

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

    return $res;

}
?>
def get_email_finder():
token = get_access_token()
params = {'access_token':token,
          'domain':'octagon.com',
          'firstName': 'gavin',
          'lastName':'vanrooyen'
}

res = requests.post('https://app.snov.io/restapi/get-emails-from-names', data=params)

return json.loads(res.text)
Response
{
"params":{
"firstName":"gavin",
"lastName":"vanrooyen",
"domain":"octagon.com"
},
"data":{
"firstName":"gavin",
"lastName":"vanrooyen",
"emails":[
{
"email":"Gavin@octagon.com",
"emailStatus":"valid"
}
]
},
"status":{
"identifier":"complete",
"description":"Emails search is completed"
}
}
Output Parameters
status
Use the values in this object to detect the status of the process.
identifier
Can contain the following values: "
complete
", "
in_progress
", or "
not_found
". If the identifier is "
not_found
" the response will contain an empty array of emails.
description
Here you will see a text description of the email finding status.
data
Contains the search result.
firstName
The email address owner`s first name.
lastName
The email address owner`s last name.
emails
The array of email addresses with their statuses. Value "
emailStatus
" can contain: "
valid
" or "
unknown
".
Add Names to Find Emails

1 credit per request

If Snov.io does not have the emails you are looking for in its database and can't provide these email addresses via the Email Finder, you can try to push the request for email search using this method. If an email is found, you can collect it by using the free Email Finder request again.

Request
POSThttps://app.snov.io/restapi/add-names-to-find-emails
Request
firstName
The email address owner`s first name.
lastName
The email address owner`s last name.
domain
The domain name of the company that is used in the email address.
Code examples
<?php
function getAddNamesToFindEmails()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'domain'       => 'octagon.com',
        'firstName'    => 'gavin',
        'lastName'     => 'vanrooyen'
    ];


    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/add-names-to-find-emails',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => true
    ];

    $ch = curl_init();

    curl_setopt_array($ch, $options);

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

    return $res;

}
?>
def add_names_to_find_emails():
token = get_access_token()
params = {'access_token':token,
          'domain':'octagon.com',
          'firstName': 'gavin',
          'lastName':'vanrooyen'
}

res = requests.post('https://app.snov.io/restapi/add-names-to-find-emails', data=params)

return json.loads(res.text)
Response
{
"firstName":"gavin",
"lastName":"vanrooyen",
"domain":"octagon.com",
"sent":true
}

If the email request was successfully added to the queue, the method returns "sent":true.

Get Profile with Email

1 credit per request

Provide an email address and Snov.io will return all the profile information connected to the provided email address owner from the database.
If we find no information about the email owner in our database, you will not be charged for the request.
Request
POSThttps://app.snov.io/restapi/get-profile-by-email
Input Parameters
email
The email address of the person you want to find additional information on.
Code examples
<?php
function getProfileByEmail()
{
    $token = getAccessToken();

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

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-profile-by-email',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/restapi/get-profile-by-email', data=params)

return json.loads(res.text)
Response
{
"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"
}
Output Parameters
id
A unique profile identifier.
source
The source of retrieved personal data.
name
The email address owner`s full name.
firstName
The person`s first name.
lastName
The person`s last name.
logo
The person`s profile photo.
industry
The person`s industry as indicated in the source.
country
The person`s country as indicated in the source.
locality
The person`s locality as indicated in the source.
social
Links to the person`s social profiles.
currentJobs
An array containing information about the person`s current job position(s).
previousJobs
An array containing information about the person`s previous job position(s).
lastUpdateDate
The date of the last profile update in the database.
Add Prospect to List

Free

Add prospect to a specific list. This method will be useful for those who want to automate adding prospects to lists with active email drip campaigns. This way after a prospect is automatically added to a chosen list, an email drip campaign will be started for them automatically.

Request
POSThttps://app.snov.io/restapi/add-prospect-to-list
Input Parameters
email
(Required)
The prospect’s email address.
fullName
The prospect’s full name.
firstName
The prospect’s first name.
lastName
The prospect’s last name.
country
The prospect’s country. The country names are defined here: here. Please, only use countries from this list.
locality
The prospect’s locality.
position
The prospect’s job title.
companyName
The name of the prospect’s company.
companySite
The prospect’s company website. Please, use the
http://example.com
format.
updateContact
Updates an existing prospect. Can contain "
true
", or "
false
".If"
true
"and a prospect with this email address already exists in one of the lists, the system will update the existing profile. If "
false
" , the system will not update the existing profile.
customFields[phone number]
You can add your own custom fields. Specify the name of the custom field in the [brackets].
social[linkedin]
A link to the prospect’s social media profile. Specify the name of the social network in the [brackets] (LinkedIn, Facebook, or Twitter)
listId
(Required)
The identifier of the list the prospect belongs to.
Code examples
<?php
function addProspectToList()
{
    $token = getAccessToken();

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

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/add-prospect-to-list',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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',
          'country':'United States',
          'locality':'Woodbridge, New Jersey',
          'social[linkedin]':'https://www.linkedin.com/in/johndoe/&social',
          'social[twiiter]':'https://twitter.com/johndoe&social',
          'customFields[phone number]':'+ 1 888 2073333',
          'position':'Vice President of Sales',
          'companyName':'GoldenRule',
          'companySite':'https://goldenrule.com',
          'updateContact':1,
          'listId':'12345'
}

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

return json.loads(res.text)
Response
{
    "success": true,
    "response": {
        "id": "0Y2QzowWL1rHpIptwaRp0Q==",
        "added": true,
        "updated": false,
        "errors": ""
    }
}
Output Parameters
success
Is "
true
" if the prospect was successfully added to the list.
id
Added prospect’s identifier.
added
Is "
true
" if the prospect was added to the list.
updated
Is "
true
" if the existing prospect’s data has been updated.
errors
There’s been an error in adding the prospect to the list.
Find Prospect by ID

Free

Find prospects from your lists by id. Knowing the id of a specific prospect you can get full information on the prospect, including the lists and campaigns they’ve been added to.

Request
POSThttps://app.snov.io/restapi/get-prospect-by-id
Input Parameters
Id
(Required)
The prospect’s id. You can see it in the response when you add a prospect via Add Prospect to List API method or in the URL when you view prospect’s page (see an example).
Code examples
<?php
function getProspectById()
{
    $token = getAccessToken();

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

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-prospect-by-id',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/restapi/get-prospect-by-id', data=params)

return json.loads(res.text)
Response
{
  "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": []
  }
}
Output Parameters
success
Is "
true
" if the prospect was found
id
Unique profile identifier
name
Prospect’s full name
firstName
Prospect’s first name
lastName
Prospect’s last name
industry
Industry as indicated in the prospect’s profile
country
Prospect’s country
locality
Prospect’s locality
social
Links to prospect’s social profiles
currentJobs
Array contains information about the prospect’s current job title
previousJobs
Array contains information about the prospect’s previous job titles
lastUpdateDate
Date of last profile update
lists
Lists that the prospect has been added to
campaigns
List of campaigns this prospect has been added to as a recipient. Contains short statistics such as status, number of sent messages, opens and replies.
Find Prospect by Email

Free

Find prospect from your lists by email address. When you search by email, you receive a list of all prospects tied to this email address. Every element of the list contains full information on the prospect, including the lists and campaigns they’ve been added to.

Request
POSThttps://app.snov.io/restapi/get-prospect-by-email
Input Parameters
email
(Required)
The prospect’s email address.
Code examples
<?php
function getProspectsByEmail()
{
    $token = getAccessToken();

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

    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/get-prospects-by-email',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/restapi/get-prospects-by-email', data=params)

return json.loads(res.text)
Response
{
  "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": []
    }
  ]
}
Output Parameters
success
Is "
true
" if the prospect was found
id
Unique profile identifier
name
Prospect’s full name
firstName
Prospect’s first name
lastName
Prospect’s last name
industry
Industry as indicated in the prospect’s profile
country
Prospect’s country
locality
Prospect’s locality
social
Links to prospect’s social profiles
currentJobs
Array contains information about the prospect’s current job title
previousJobs
Array contains information about the prospect’s previous job titles
lastUpdateDate
Date of last profile update
lists
Lists that the prospect has been added to
campaigns
List of campaigns this prospect has been added to as a recipient. Contains short statistics such as status, number of sent messages, opens and replies.
Change recipient’s status

Free

Change the status of a recipient in a specific campaign.

Request
POSThttps://app.snov.io/restapi/change-recipient-status
Input Parameters
email
(Required)
The prospect’s email address.
campaign_id
(Required)
The campaign’s id. You can find it in the URL when you view campaign info (show an example).
status
(Required)
New status for the recipient. Can contain Active, Paused, Finished, Unsubscribed, Auto-replied, Replied, Replied from another email. You can not change the recipients' status if their status is Finished or Moved.
Code examples
<?php
function changeRecipientStatus()
{
    $token = getAccessToken();

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


    $options = [
        CURLOPT_URL            => 'https://app.snov.io/restapi/change-recipient-status',
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $params,
        CURLOPT_RETURNTRANSFER => 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://app.snov.io/restapi/change-recipient-status', data=params)

return json.loads(res.text)
Response
{
  "success": true
}
Output Parameters

Method returns "success: true" if the prospect’s status has been successfully changed. If any error occurs, the method will return "success: false" and error description.