Snovio API

Introduction

Snovio's features are available through our simple REST API. Integrate with Snovio API to sync your processes of lead generation. Snovio API allows to retrieve info about the number of email addresses for particular domains from our database, get lists of all emails associated with a domain, find email addresses by first name, last name and domain name, 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 and token type in the Authorization header. Here's an example of an Authorization header:

Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4

Here is an example for token generation.

Request
POST https://app.snov.io/oauth/access_token
Parameters
grant_type
Will be always “
client_credentials
client_id
Your id available in account setting https://app.snov.io/api-setting
client_secret
Your secret key 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);
    //response should be like {"access_token":"WaNfY5dIQ7fCrmtJBpkh6hrSQjuN3EKaHa0tu1FA","token_type":"Bearer","expires_in":3600}

    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    /**
     * response like this "AdWYoOOatq6nsFMfMd6ZpXFkccWV9f1O5wzZuW1J"
     */
    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')


# response will be like this
#bxXvDsQhR4TduWjOqaEOtQwSpd6Fafe4xwrilmV1


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

This API method provides the number of email addresses collected for a particular domain or for one company from our database. It’s free and does not require credits.

Request
POST https://app.snov.io/restapi/get-domain-emails-count?domain=octagon.com
Parameters
domain
The domain name for which you’d like to know how many email addresses we have.
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);
    /**
     * response will be like this
     * array:3 [
     * "domain" => "octagon.com"
     * "webmail" => false
     * "result" => 6393
     * ]
     */

    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)

# response will be like this
#{u'webmail': False, u'domain': u'octagon.com', u'result': 6393}

return json.loads(res.text)
Response
{
"domain":"octagon.com",
"webmail":false,
"result":1369
}
Attributes
domain
The domain name for which you’d like to know how many email addresses we have.
webmail
Is "
true
" if this domain is webmail.
result
Total number of email addresses we have found for this domain. We can not provide results for webmail domains, so result will always be
0
.
Domain Search

Enter a domain name and Snovio will return all email addresses associated with the domain along with other available information. If there is any information about the email owner in our database, this method will also retrieve it. Each response returns up to 100 emails. It costs 2 credits per request. If API method does not return at least one email, you will not be charged for the request.

Request
POST https://app.snov.io/restapi/get-domain-emails-with-info?domain=octagon.com&type=all&limit=100
Parameters
domain
Domain name from which you want to find the email addresses. For example, "snov.io".
type
Can contain value “
all
”, “
personal
” or “
generic
”. A "
generic
" email address is a role-based email address, like contact@snov.io. "Personal" email address is the address of someone working in the company.
limit
Specifies the max number of email addresses to return. Each response gives up to 100 emails.
offset
Specifies the number of email addresses to skip. The default is
0
.
Code examples
<?php
function getDomainSearch()
{
    $token = getAccessToken();

    $params = [
        'access_token' => $token,
        'domain'       => 'octagon.com',
        'type'         => 'all',//may be personal or  generic
        '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);
    /**
     * array:7 [
     * "domain" => "octagon.com"
     * "webmail" => false
     * "result" => 100
     * "limit" => 100
     * "offset" => 0
     * "companyName" => "Octagon"
     * "emails" => array:100 [ 
     * 0 => array:3 [
     * "email" => "Emily.Hejlik@octagon.com"
     * "type" => "email"
     * "status" => "verified"
     * ]
     * other 99
     * ]
     * ]
     */

    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)
#
#
# response will be like this
#{u'domain': u'octagon.com', u'companyName': u'Octagon', u'webmail': False, u'limit': 100, u'result': 100, u'offset': 0, u'emails': [{u'status': u'verified', u'type': u'email', u'email': u'Emily.Hejlik@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'scott.brinser@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'franco.granello@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Raton33487OctagonShahumrick.shahum@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'anthony.garstang@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'gkamorine.adams@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'glamorine.adams@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'galexander@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'george.alexander@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'george@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'info.spain@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'Alicia@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'baseball@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'opportunities@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'mark.deleiburne@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'ausinfo@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'sginfo@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Aykan.Azar@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'germany@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'hola_spain@octagon.com'}, {u'status': u'verified', u'firstName': u'Tom', u'lastName': u'Gayner', u'sourcePage': u'https://uk.linkedin.com/pub/tom-gayner/54/640/2b', u'type': u'prospect', u'email': u'hello@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'recruitment@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'firstcall@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Basketball@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Entertainment@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'broadcast@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'coaches@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'football@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'golf@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'soccer@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'oas@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'wealthmanagement@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'speakers@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'tennis@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'BMWResortDrivingTour@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Symone.Cardoso@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'winnie.tsang@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'bessy.chan@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'eleana.leung@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'info@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'socar@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'race@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'maria.bellanca@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'yvonne.white@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'kathy.mak@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Aeroflot.info@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'heather.breen@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Lesley.Baker@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'annye.degrand@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Libby.peacock@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Stevie.Patnode@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'aitor.jimenez@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'kim.king@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'andy.bush@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'mireia.sola@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'kgaffney@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Kay.Gaffney@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'kay@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'jgarner@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Justin.Garner@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'justin@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'sgay@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Sherman.Gay@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'sherman@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'jgeary@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'jennifer.geary@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'jennifer@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'GGlashoff@octagon.com'}, {u'status': u'verified', u'firstName': u'Garrett', u'lastName': u'Glashoff', u'sourcePage': u'https://www.linkedin.com/pub/garrett-glashoff/2a/902/888', u'position': u'Account Executive', u'type': u'prospect', u'email': u'Garrett.Glashoff@octagon.com'}, {u'status': u'verified', u'type': u'email', u'email': u'garrett@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'bgoodman@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'Brittney.Goodman@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'brittney@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'lgordon@octagon.com'}, {u'status': u'notVerified', u'type': u'email', u'email': u'LESLIE.GORDON@octagon.com'},
# {u'status': u'notVerified', u'type': u'email', u'email': u'leslie@octagon.com'},
#  {u'status': u'notVerified', u'type': u'email', u'email': u'ngriffith@octagon.com'},
#  ...other 97 elements
# {u'status': u'notVerified', u'type': u'email', u'email': u'hunter@octagon.com'}]}
#

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"
},
...
]
}
Attributes
domain
The domain name for which we have provided email addresses.
webmail
Is "
true
" if this domain is webmail.
result
Number of email addresses we have for this domain. We can not provide results for webmail domains, it will always equal
0
.
limit
Specifies the max number of email addresses to return.
companyName
The company name which will be used to find the email addresses.
emails
The array of domain emails.
email
Email address in searched domain.
type
Can contain values "
prospect
" or "
email
". If type is prospect method will return prospect information about email’s owner.
status
Email verification status. Can be "
verified
" or "
notVerified
".
firstName
Person's first name.
lastName
Person's last name.
position
Person's Current Position.
sourcePage
Source page of retrieved personal data.
Email Verifier

API method checks if the provided email addresses are valid and deliverable. API endpoint returns email verification results. Verification costs 0.5 credit per email address. If we haven't verified an email address before, the results will not be returned to you immediately, and the API method will return identifier "not_verified" for this email. You will not be charged for this verification attempt. You can use Add Emails for Verification method to push this email address for verification, and get email verification results using this endpoint.

Request
POST https://app.snov.io/restapi/get-emails-verification-status?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com
Parameters
emails
Array of 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);

    /**
     * response will be like this
     *         array:2 [
     * "gavin.vanrooyen@octagon.com" => array:2 [ 
     * "data" => array:6 [
     * "email" => "gavin.vanrooyen@octagon.com"
     * "isValidFormat" => true
     * "isDisposable" => false
     * "isWebmail" => false
     * "isGibberish" => false
     * "smtpStatus" => "not_valid"
     * ]
     * "status" => array:2 [
     * "identifier" => "complete"
     * "description" => "Email verification is completed"
     * ]
     * ]
     * "lizi.hamer@octagon.com" => array:2 []
     * ]
     */
    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)

# response will be like this
#{u'gavin.vanrooyen@octagon.com': {
#   u'status': {u'identifier': u'complete', u'description': u'Email verification is completed'},
#  u'data': {u'smtpStatus': u'not_valid', u'isValidFormat': True, u'isGibberish': False, u'isDisposable': False,
#           u'isWebmail': False, u'email': u'gavin.vanrooyen@octagon.com'}}, u'lizi.hamer@octagon.com': {
# u'status': {u'identifier': u'complete', u'description': u'Email verification is completed'},
#'data': {u'smtpStatus': u'valid', u'isValidFormat': True, u'isGibberish': False, u'isDisposable': False,
#         u'isWebmail': False, u'email': u'lizi.hamer@octagon.com'}}}
#

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

Method returns data for each requested email address. Request contains status of email verification and result of verification.

Attributes
status
Use values in this object to detect the status of the email verification process.
identifier
Can contain following values: "
complete
", "
in_progress
", "
not_verified
". If identifier is "
not_verified
" object "
date
" will be empty.
description
Text description of verification status.
data
Object contains results of email verification.
email
Email address for verification.
isValidFormat
Is “
true
” if this domain is webmail.
isDisposable
Is “
true
” if we find this email address from a disposable email service.
isWebmail
Is “
true
” if we find this email from a webmail.
isGibberish
Is “
true
” if we find this is an automatically generated email address.
smtpStatus
Returns value "
valid
","
not_valid
" or "
unknown
". If value is "
unknown
" we can not provide smtp status for this email.
Add Emails for Verification

If Snovio didn’t provide result of verification with Email Verifier endpoint, try to push this email for verification using following API method. It’s free and does not require credits. Then you can receive a result of email verification using Add emails for Verification endpoint.

Request
POST https://app.snov.io/restapi/add-emails-to-verification?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com
Parameters
emails
List of email address you need to add to the queue for verification.
Each request will receive up to 10 emails.
Code examples
<?php
function addEmailsForVerification()
{
    $token = getAccessToken();
    $emails = ['gavin.vanrooyen@octagon.com', 'lizi.hamer@octagon.com'];
    //https://app.snov.io/restapi/add-emails-to-verification?emails[]=gavin.vanrooyen@octagon.com&emails[]=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);

    /**
     * response will be like this
     * array:2 [
     * "gavin.vanrooyen@octagon.com" => array:1 [ 
     * "sent" => true
     * ]
     * "lizi.hamer@octagon.com" => array:1 [▶]
     * ]
     */
    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)

# response will be like this
#{u'gavin.vanrooyen@octagon.com': {u'sent': True}, u'lizi.hamer@octagon.com': {u'sent': True}}


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

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

Email Finder

This API method finds email addresses using first, last name and domain name. It costs 1 credit for a single request. If Snovio can’t provide the result to you immediately, API method will return identifier: "not_found" and this email request will not be charged. You can use method to push this email address for search. Then you can get retrieved email address using this endpoint.

Request
POST https://app.snov.io/restapi/get-emails-from-names?firstName=gavin&lastName=vanrooyen&domain=octagon.com
Parameters
firstName
Person's first name.
lastName
Person's last name.
domain
Domain name of the company, used for emails.
Code examples
<?php
function getEmailFinder()
{
    $token = getAccessToken();

    //https://app.snov.io/restapi/get-emails-from-names?firstName=gavin&lastName=vanrooyen&domain=octagon.com

    $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);

    /**
     * response will be like this
     *
     * array:3 [
     * "params" => array:4 [
     * "access_token" => "mljiXgJoaoFR76TEVfmWi0XQIMte4BqU9pFv2zj6"
     * "domain" => "octagon.com"
     * "firstName" => "gavin"
     * "lastName" => "vanrooyen"
     * ]
     * "data" => array:3 [
     * "firstName" => "gavin"
     * "lastName" => "vanrooyen"
     * "emails" => array:1 [
     * 0 => array:2 [
     * "email" => "gavin-vanrooyen@octagon.com"
     * "emailStatus" => "not_valid"
     * ]
     * ]
     * ]
     * "status" => array:2 [
     * "identifier" => "complete"
     * "description" => "Emails search is completed"
     * ]
     * ]
     */
    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)

# response will be like this
#{u'status': {u'identifier': u'complete', u'description': u'Emails search is completed'},
# u'data': {u'lastName': u'vanrooyen', u'emails': [{u'email': u'gavin-vanrooyen@octagon.com', u'emailStatus': u'not_valid'}], u'firstName': u'gavin'},
# u'params': {u'access_token': u'R2zDbvza563UVSsddsHfHhNHpMShU9exw70clLIE', u'lastName': u'vanrooyen', u'domain': u'octagon.com', u'firstName': u'gavin'}}

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"
}
}
Attributes
status
Use values in this object to detect the status of the email searching process.
identifier
Can contain following values: "
complete
", "
in_progress
", "
not_found
". If identifier is "
not_found
" response will contain empty emails array.
description
Status description.
data
Object contains searching result.
firstName
Person's first name.
lastName
Person's last name.
emails
The array of email addresses with their statuses. Value "
emailStatus
" can contain: "
valid
" or "
unknown
".
Add Names to Find Emails

If Snovio didn’t provide email address for person via Email Finder try to push this request for email search using this endpoint. It’s free and does not require credits. Then you can select retrieved emails using Email Finder endpoint.

Request
POST https://app.snov.io/restapi/add-names-to-find-emails?firstName=gavin&lastName=vanrooyen&domain=octagon.com
Parameters
firstName
Person's first name.
lastName
Person's last name.
domain
Domain name of the company, used for emails.
Code examples
<?php
function getAddNamesToFindEmails()
{
    $token = getAccessToken();

    //https://app.snov.io/restapi/add-names-to-find-emails?firstName=gavin&lastName=vanrooyen&domain=octagon.com

    $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);
    dd('res222', $res);
    /**
     * response will be like this
    array:5 [
    "access_token" => "vubixBcVv9mCg2bjdUBwOgSBVMTtT5kL07wl51ml"
    "domain" => "octagon.com"
    "firstName" => "gavin"
    "lastName" => "vanrooyen"
    "sent" => true
    ]
     */
    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)

#response will be like this
#
#{u'access_token': u'MQb23KlEh8EyvPypp2Rg7OJHtl8kzDFa6JLuBFHy', u'lastName': u'vanrooyen', u'domain': u'octagon.com', u'sent': True, u'firstName': u'gavin'}

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

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

Get profile by email

You provide an email address and Snovio returns all profile information connected to the email address owner. It costs 1 credit per request. If there is no information about the email owner in our database, you will not be charged for the request.

Request
POST https://app.snov.io/restapi/get-profile-by-email?gavin.vanrooyen@octagon.com
Parameters
email
Email address for profile search
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",
        "indusstry": "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",
        "indusstry": "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,
        "indusstry": 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,
        "indusstry": null,
        "companyType": null,
        "country": null
    }
],
"lastUpdateDate": "2018-02-07 10:12:28"
}
Attributes
id
Unique profile identifier
source
Source of retrieved personal data
name
Person’s full name
firstName
Person’s first name
lastName
Person's last name
logo
Person’s profile image
industry
Industry from person’s profile
country
Person’s country
locality
Person’s locality
social
Links to person’s social profiles
currentJobs
Array contains information about person’s current job positions
previousJobs
Array contains information about person’s previous job positions
lastUpdateDate
Date of last profile update