API de Snov.io
Las funciones de Snov.io se pueden utilizar a través de nuestra sencilla API REST. Integra con la API de Snov.io para sincronizar tus leads, encontrar emails, gestionar prospectos y más. La tasa de la API está limitada a 60 solicitudes por minuto.
Los usuarios de Snov.io con un plan gratuito pueden probar la funcionalidad de la API sin tener que actualizar poniéndose en contacto con nosotros en help@snov.io.
Autenticación
Es necesario generar un token de acceso para autenticar futuras solicitudes. Al realizar una solicitud, especifica este token de acceso en el campo Autorización.
Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4 |
Este es un ejemplo de generación de tokens.
POST | https://api.snov.io/v1/oauth/access_token |
grant_type | Siempre será client_credentials |
client_id | Tu identificación está disponible en la configuración de la cuentahttps://app.snov.io/account#/api |
client_secret | Tu clave secreta está disponible en la configuración de la cuentahttps://app.snov.io/account#/api |
<?php function getAccessToken() { $params = [ 'grant_type' => 'client_credentials', 'client_id' => 'c57a0459f6t141659ea75cccb393c5111', 'client_secret' => '77cbf92b71553e85ce3bfd505214f40b' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/oauth/access_token', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res['access_token']; } ?>
def get_access_token(): params = { 'grant_type':'client_credentials', 'client_id':'c57a0459f6t141659ea75cccb393c111', 'client_secret': '77cbf92b71553e85ce3bfd505214f40b' } res = requests.post('https://api.snov.io/v1/oauth/access_token', data=params) resText = res.text.encode('ascii','ignore') return json.loads(resText)['access_token']
{ | |||
| |||
} |
access_token | Tu nuevo token de acceso |
token_type | Siempre será Bearer |
expires_in | Tiempo de expiración del token (en segundos) |
Métodos API
GETBúsqueda de dominio V.2
1 crédito por cada 10 emails/prospectosEscribe un nombre de dominio y Snov.io le devolverá todas las direcciones de email del dominio.
Si hay alguna información adicional sobre el propietario del email disponible en la base de datos, también la añadiremos.
Cada respuesta devuelve hasta 100 emails. Si no devuelve al menos un email, no se le cobrará la solicitud.
GET | https://api.snov.io/v2/domain-emails-with-info |
domain | El nombre del dominio del que quieres encontrar las direcciones de email. Por ejemplo, "snov.io". |
type | Puede contener diferentes valores - all
,personal o generic . Una dirección de email genérica es una dirección de email basada en la función, por ejemplocontact@snov.io.Una dirección de email personal es el email de la persona real que trabaja en la empresa. |
limit | Establece el límite para especificar el número de direcciones de email a devolver. Cada respuesta devuelve hasta 100 direcciones de email. |
lastId | Para recoger más correos electrónicos que los establecidos en el parámetro de entrada Límite, en tu próxima solicitud indica el id de la última dirección de correo electrónico recogida en la solicitud anterior. De este modo, se omitirán los correos electrónicos recogidos anteriormente. Ten en cuenta que lastId es un parámetro obligatorio. El valor por defecto es 0
. |
positions | Utiliza este parámetro para filtrar los prospectos por puesto de trabajo, por ejemplo, "Desarrollador de software". Para filtrar por varios puestos, escribe una serie de puestos necesarios. |
<?php function getDomainSearch() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'domain' => 'octagon.com', 'type' => 'all', 'limit' => 100, 'lastId' => 0, 'positions' => ['Software Developer','QA'] ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-emails-with-info?'.$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_domain_search(): token = get_access_token() params = { 'access_token': token, 'domain': 'octagon.com', 'type': 'all', 'limit': 100, 'lastId': 0, 'positions[]': ['Software Developer','QA'] } res = requests.get('https://api.snov.io/v2/domain-emails-with-info', params=params) return json.loads(res.text)
{ "success": true, "domain": "octagon.com", "webmail": false, "result": 84, "lastId": 1823487525, "limit": 100, "companyName": "Octagon", "emails": [ { "email": "ben.gillespie@octagon.com", "firstName": "Ben", "lastName": "Gillespie", "position": "Senior Account Executive", "sourcePage": "https://www.linkedin.com/pub/ben-gillespie/7/73/809", "companyName": "Octagon", "type": "prospect", "status": "verified" } ] }
domain | El nombre de dominio para el que la API ha proporcionado las direcciones de email. |
webmail | Es true si el dominio que buscas es webmail. |
result | El número de direcciones de email que hemos encontrado para este dominio. No podemos proporcionar resultados para dominios de webmail, por lo que el resultado para webmail será siempre 0
. |
limit | Especifica el número máximo de direcciones de email a devolver. |
companyName | El nombre de la empresa utilizado para encontrar las direcciones de email. |
emails | La matriz de emails del dominio recuperados en la búsqueda. |
email | Una dirección de email específica recuperada en la búsqueda. |
type | Puede contener prospect o email valores. Si el tipo devuelto es prospect Snov.io ha encontrado información adicional sobre el propietario del email. |
status | Estado de verificación del email. El estado del email puede ser verified o notVerified . |
firstName | El nombre del propietario del email. |
lastName | El apellido del propietario del email. |
position | El puesto de trabajo actual del propietario del email. |
sourcePage | La página de origen de los datos personales recuperados. |
lastId | ID del último correo electrónico recogido de la respuesta anterior. |
POSTCuenta de email
GratisCon este método de la API, puedes averiguar el número de direcciones de email de un determinado dominio en nuestra base de datos. Es completamente gratuito, por lo que no necesitas créditos para utilizarlo.
POST | https://api.snov.io/v1/get-domain-emails-count |
domain | El nombre del dominio para el que deseas conocer el número de emails en nuestra base de datos. |
<?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)
{ | ||||
| ||||
} |
domain | El nombre del dominio para el que deseas conocer el número de emails en nuestra base de datos. |
webmail | Es true si el dominio que buscas es webmail. |
result | Número total de direcciones de emails que hemos encontrado para este dominio. No podemos proporcionar resultados para dominios de webmail, por lo que el resultado para webmail siempre será 0
. |
POSTEmail Finder
GratisEste método de la API encuentra direcciones de correo electrónico utilizando el nombre y el apellido de la persona y un nombre de dominio. Si no tenemos esta dirección de correo electrónico en nuestra base de datos, no podremos proporcionarte los resultados inmediatamente. Para acelerar el proceso, puede utilizar el Añadir nombres para encontrar correos electrónicos método para impulsar esta dirección de correo electrónico para la búsqueda. Después de eso, intenta el método de búsqueda de correo electrónico de nuevo.
Límites: Si envías demasiadas peticiones en una hora puedes ver el siguiente mensaje de error: "Hay demasiados prospectos procesando. Por favor, inténtalo más tarde"
El límite de búsqueda en una hora depende de tu plan:
- Starter - 200 solicitudes/hora
- Pro 5K - 400 solicitudes/hora
- Pro 20K - 600 solicitudes/hora
- Pro 50K - 800 solicitudes/hora
- Pro 100K - 1.000 solicitudes/hora
POST | https://api.snov.io/v1/get-emails-from-names |
firstName | El nombre del propietario de la dirección de correo electrónico. |
lastName | El apellido del propietario de la dirección de correo electrónico. |
domain | El nombre de dominio de la empresa que se utiliza en la dirección de correo electrónico. |
<?php function getEmailFinder() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'domain' => 'octagon.com', 'firstName' => 'gavin', 'lastName' => 'vanrooyen' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-from-names', 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_finder(): token = get_access_token() params = {'access_token':token, 'domain':'octagon.com', 'firstName': 'gavin', 'lastName':'vanrooyen' } res = requests.post('https://api.snov.io/v1/get-emails-from-names', data=params) return json.loads(res.text)
{ | |||||||||||||
| |||||||||||||
| |||||||||||||
| |||||||||||||
} |
status | Utiliza los valores de este objeto para detectar el estado del proceso. |
identifier | Puede contener los siguientes valores: complete
,in_progress
, o not_found . Si el identificador es not_found la respuesta contendrá una matriz vacía de correos electrónicos. |
description | Aquí verás una descripción de texto del estado de búsqueda del correo electrónico. |
data | Contiene el resultado de la búsqueda. |
firstName | El nombre del propietario de la dirección de correo electrónico. |
lastName | Apellido del propietario de la dirección de correo electrónico. |
emails | La matriz de direcciones de correo electrónico con sus estados. El valor emailStatus puede contener: valid o unknown
. |
POSTAñade nombres para encontrar emails
1 crédito por solicitudSi Snov.io no tiene los correos electrónicos que buscas en su base de datos y no puede proporcionar estas direcciones de correo electrónico a través del Email Finder puede tratar de impulsar la solicitud de búsqueda de correo electrónico utilizando este método. Si se encuentra un correo electrónico, puedes recogerlo utilizando la aplicación gratuita Email Finder nueva solicitud.
Límites: Si envías demasiadas peticiones en una hora puedes ver el siguiente mensaje de error: "Hay demasiados prospectos procesando. Por favor, inténtalo más tarde"
El límite de búsqueda en una hora depende de tu plan:
- Starter - 200 solicitudes/hora
- Pro 5K - 400 solicitudes/hora
- Pro 20K - 600 solicitudes/hora
- Pro 50K - 800 solicitudes/hora
- Pro 100K - 1.000 solicitudes/hora
POST | https://api.snov.io/v1/add-names-to-find-emails |
firstName | El nombre del propietario de la dirección de correo electrónico. |
lastName | El apellido del propietario de la dirección de correo electrónico. |
domain | El nombre de dominio de la empresa que se utiliza en la dirección de correo electrónico. |
<?php function getAddNamesToFindEmails() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'domain' => 'octagon.com', 'firstName' => 'gavin', 'lastName' => 'vanrooyen' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/add-names-to-find-emails', 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_names_to_find_emails(): token = get_access_token() params = {'access_token':token, 'domain':'octagon.com', 'firstName': 'gavin', 'lastName':'vanrooyen' } res = requests.post('https://api.snov.io/v1/add-names-to-find-emails', data=params) return json.loads(res.text)
{ | ||||||
| ||||||
} |
Si la solicitud de correo electrónico se ha añadido con éxito a la cola, el método devuelve "sent":true.
POSTAñadir URL a la búsqueda de prospectos
1 crédito por solicitudEncuentra prospectos por URL social. Para recibir los resultados, utiliza el botón Obtén el prospecto con el método de URL.
POST | https://api.snov.io/v1/add-url-for-search |
url | Un enlace al perfil de redes sociales del prospecto. Especifica el nombre de la red social entre [corchetes] (LinkedIn o X). |
<?php function addUrlForSearch() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'url' => 'https://www.linkedin.com/in/johndoe/&social' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/add-url-for-search', 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_url_for_search(): token = get_access_token() params = {'access_token':token, 'url':'https://www.linkedin.com/in/elie-ohayon-aaab7341' } res = requests.post('https://api.snov.io/v1/add-url-for-search', data=params) return json.loads(res.text)
{ "success": true }
success | Es true si el prospecto se ha añadido con éxito a la lista de búsqueda. |
message | Ha habido un error al añadir el prospecto a la lista. |
POSTObtén un prospecto con URL
GratisProporcionar la URL social del prospecto y Snov.io devolverá la información completa sobre el prospecto con las direcciones de correo electrónico encontradas. Previamente debes utilizar el Añade la URL para buscar el método de prospección. De lo contrario, el resultado no se mostrará.
POST | https://api.snov.io/v1/get-emails-from-url |
url | Un enlace al perfil de redes sociales del prospecto. Especifica el nombre de la red social entre [corchetes] (LinkedIn o X). |
<?php function getEmailsFromUrl() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'url' => 'https://www.linkedin.com/in/john-doe-123456/' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-from-url', 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_emails_from_url(): token = get_access_token() params = {'access_token':token, 'url':'https://www.linkedin.com/in/elie-ohayon-aaab7341' } res = requests.post('https://api.snov.io/v1/get-emails-from-url', data=params) return json.loads(res.text)
{ "success": true, "data": [ { "id": "xusD3-T_K5IktGoaa8Jc8A==", "name": "Gavin Vanrooyen", "firstName": "John", "lastName": "Doe", "sourcePage": "https://www.linkedin.com/in/john-doe-123456/", "source": "linkedIn", "industry": "Entertainment", "country": "United States", "locality": "Greater Atlanta Area", "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" } ], "social": [], "emails": [ { "email": "johndoe@octagon.com", "status": "valid" } ] } ] }
success | Es true si se encuentra el prospecto |
id | Identificador único del perfil |
name | Nombre completo del prospecto |
firstName | Primer nombre del prospecto |
lastName | Apellido del prospecto |
industry | Sector de actividad indicado en el perfil del prospecto |
country | País de prospecto |
locality | Ubicación del prospecto |
skills | Habilidades del prospecto |
social | Enlaces a los perfiles sociales de los prospectos |
currentJobs | La matriz contiene información sobre el puesto de trabajo actual de prospecto |
previousJobs | La matriz contiene información sobre los cargos anteriores del prospecto |
lastUpdateDate | Fecha de la última actualización del perfil |
emails | Correo electrónico del prospecto con el estado actual |
POSTObtén el perfil con el email
1 crédito por solicitudProporcionar una dirección de correo electrónico y Snov.io devolverá toda la información del perfil conectado al propietario de la dirección de correo electrónico proporcionada de la base de datos.
Si no encontramos información sobre el propietario del correo electrónico en nuestra base de datos, no se le cobrará por la solicitud.
POST | https://api.snov.io/v1/get-profile-by-email |
email | La dirección de correo electrónico de la persona sobre la que desea encontrar información adicional. |
<?php function getProfileByEmail() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-profile-by-email', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def get_profile_by_email(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com' } res = requests.post('https://api.snov.io/v1/get-profile-by-email', data=params) return json.loads(res.text)
{ "success": true, "id": 301592, "source": "linkedIn", "name": "Lizi Hamer", "firstName": "Lizi", "lastName": "Hamer", "logo": "https://app.snov.io/img/peoples/010fcf23c70dfa68d880545ec89a9215.jpg", "industry": null, "country": "Singapore", "locality": "Singapore", "social": [ { "link": "https://www.linkedin.com/in/lizihamer/", "type": "linkedIn" }, { "link": "https://twitter.com/LiziHamer", "type": "twitter" } ], "currentJobs": [ { "companyName": "Octagon", "position": "Regional Creative Director", "socialLink": "https://www.linkedin.com/company/165282", "site": "www.octagon.com", "locality": "Greater New York City Area", "state": "Connecticut", "city": "Stamford", "street": "290 Harbor Dr", "street2": "2nd Floor", "postal": "06902", "founded": "1983", "startDate": "2016-01-31", "endDate": null, "size": "1-10", "industry": "Marketing and Advertising", "companyType": "Public Company", "country": "United States" }, { "companyName": "SisuGirls", "position": "Co Founder", "socialLink": "https://www.linkedin.com/company/3841118", "site": "http://www.sisugirls.org", "locality": null, "state": "SG", "city": "Singapore", "street": "33-03 Hong Leong Building", "street2": null, "postal": null, "founded": "2014", "startDate": "2015-07-31", "endDate": null, "size": "1-10", "industry": "Health, Wellness and Fitness", "companyType": null, "country": "Singapore" } ], "previousJobs": [ { "companyName": "Fusion Co-innovation Labs", "position": "Creative Entrepreneur", "socialLink": null, "site": null, "locality": null, "state": null, "city": null, "street": null, "street2": null, "postal": null, "founded": null, "startDate": "2013-05-31", "endDate": "2013-10-31", "size": null, "industry": null, "companyType": null, "country": null }, { "companyName": "Russell Commission", "position": "Youth Advisory Board Member", "socialLink": null, "site": null, "locality": null, "state": null, "city": null, "street": null, "street2": null, "postal": null, "founded": null, "startDate": "2004-06-30", "endDate": "2006-06-30", "size": null, "industry": null, "companyType": null, "country": null } ], "lastUpdateDate": "2018-02-07 10:12:28" }
id | Un identificador de perfil único. |
source | La fuente de los datos personales recuperados. |
name | El nombre completo del propietario de la dirección de correo electrónico. |
firstName | El nombre de la persona. |
lastName | El apellido de la persona. |
logo | La foto de perfil de la persona. |
industry | El sector de la persona indicado en la fuente. |
country | El país de la persona como se indica en la fuente. |
locality | La localidad de la persona como se indica en la fuente. |
social | Enlaces a los perfiles sociales de la persona. |
currentJobs | Una matriz que contiene información sobre el o los puestos de trabajo actuales de la persona. |
previousJobs | Una matriz que contiene información sobre los puestos de trabajo anteriores de la persona. |
lastUpdateDate | La fecha de la última actualización del perfil en la base de datos. |
POSTEmail Verifier
GratisComprueba si las direcciones de correo electrónico proporcionadas son válidas y entregables. El punto final API devolverá los resultados de la verificación del correo electrónico. Si no hemos verificado una determinada dirección de correo electrónico antes, no se devolverán los resultados. En este caso, la API devolverá un identificador "no_verificable" y no se cobrarán créditos por este correo electrónico. Deberías usar el Añade emails para verificación para impulsar esta dirección para la verificación, después de lo cual serás capaz de obtener los resultados de verificación de email utilizando este criterio de valoración.
Límites: Si envías demasiadas peticiones en una hora puedes ver el siguiente mensaje de error: "Hay demasiados prospectos procesando. Por favor, inténtalo más tarde"
El límite de búsqueda en una hora depende de tu plan:
- Starter - 500 emails/hora
- Pro 5K - 1000 emails/hora
- Pro 20K - 1400 emails/hora
- Pro 50K - 2000 emails/hora
- Pro 100K - 4000 emails/hora
POST | https://api.snov.io/v1/get-emails-verification-status |
emails | Las direcciones de email que debes verificar. |
<?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://api.snov.io/v1/get-emails-verification-status?' . $emailsQuery, 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_verifier(): token = get_access_token() params = {'access_token':token, } res = requests.post('https://api.snov.io/v1/get-emails-verification-status?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com', data=params) return json.loads(res.text)
{ | |||||||||||||||||||||
| |||||||||||||||||||||
| |||||||||||||||||||||
} |
Este método devolverá datos para cada dirección de email solicitada. La respuesta contiene un estado de verificación y los resultados de la verificación.
status | El estado de Email verification. Contiene el identificador y la descripción. |
identifier | Puede contener los siguientes valores: complete
,in_progress
, o not_verified
. Si el identificador es not_verified
,data estará vacío. |
description | Aquí verás una descripción de texto del estado de verificación. |
data | Contiene otros resultados de verificación - email
,isValidFormat
,isWebmail
,isGibberish
,isCatchall
,isGreylist
,isBannedError
,isConnectionError
. |
email | La dirección de email que ha sido verificada. |
isValidFormat | Es true si el formato del email es correcto, es decir, si contiene símbolos válidos en el orden correcto. |
isDisposable | Es true si comprobamos que esta dirección de email es de un servicio de email desechable. |
isWebmail | Es true si esta dirección de email es de un webmail. |
isGibberish | Es true si esta dirección de email se ha generado automáticamente. |
smtpStatus | Puede devolver valid
,not_valid
,greylisted o unknown (también conocido como "no verificable"). Puedes saber más sobre los estados del correo electrónico aquí. |
isCatchall | Es true si el correo electrónico pertenece a un servidor de correo electrónico con una configuración general, lo que significa que acepta correos electrónicos incluso si el destinatario está inactivo o no existe. |
isGreylist | Es true si el servidor de dominio emplea tecnología de lista gris y bloquea nuestros intentos de verificar el correo electrónico incluso cuando utilizamos métodos de omisión. |
isBannedError | Es true cuando no podemos obtener respuesta del servidor a nuestra solicitud de conexión. |
isConnectionError | Es true cuando ocurre un error en el lado del servidor de un cliente durante nuestro intento de establecer una conexión. |
Si obtienes un greylisted smtpStatus, significa que no podemos verificar temporalmente este correo electrónico y que continuaremos con los intentos de validarlo.Puedes volver a enviar esta solicitud de API después de una breve pausa (normalmente de 15 minutos a 1 hora) para recibir los resultados correctos. Recuerda que no cobramos por los correos electrónicos con estado greylisted hasta que terminemos de validarlos y recibamos un estado SMTP definitivo - valid o not_valid . |
POSTAñade emails para verificación
1 crédito por dirección de correo electrónicoSi nunca has verificado una determinada dirección de correo electrónico antes, debes empujarla para su verificación utilizando este método de la API. Después de realizar esta acción, puedes recibir los resultados de la verificación utilizando el método Email Verifier.
Límites: Si envías demasiadas peticiones en una hora puedes ver el siguiente mensaje de error: "Hay demasiados prospectos procesando. Por favor, inténtalo más tarde"
El límite de búsqueda en una hora depende de tu plan:
- Starter - 500 emails/hora
- Pro 5K - 1000 emails/hora
- Pro 20K - 1400 emails/hora
- Pro 50K - 2000 emails/hora
- Pro 100K - 4000 emails/hora
POST | https://api.snov.io/v1/add-emails-to-verification |
emails | Una lista de direcciones de correo electrónico que debes añadir a la cola de verificación. Cada solicitud puede contener hasta 10 correos electrónicos. |
<?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://api.snov.io/v1/add-emails-to-verification?' . $emailsQuery, 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_emails_for_verification(): token = get_access_token() params = {'access_token': token } res = requests.post('https://api.snov.io/v1/add-emails-to-verification?emails[]=gavin.vanrooyen@octagon.com&emails[]=lizi.hamer@octagon.com', data=params) return json.loads(res.text)
{ | |||||
| |||||
| |||||
} |
Si una dirección de correo electrónico se añade con éxito a la cola, el método devuelve "sent":true.
GETGet campaign analytics
GratisThis method shows campaign statistics based on the applied filters.
GET | https://api.snov.io/v2/statistics/campaign-analytics |
campaign_id | Campaign ID. You can find it in the URL when you view the campaign info (example).
If you leave this field empty, you’ll get data for all active campaigns within the specified time period. To get data for multiple campaigns, separate IDs with commas. |
sender_email | Email sender account ID. You can find it in the URL when viewing or editing the email account info (example).
To see analytics for multiple email accounts, separate IDs with commas. Alternatively, leave this parameter empty if you don’t want to apply an email account filter. |
sender_linkedin | LinkedIn sender account ID. You can find it in the URL when viewing or editing the LinkedIn account info. To see analytics for multiple accounts, separate IDs with commas. Leave this parameter empty if you don’t want to apply a LinkedIn account filter. |
campaign_owner | To view campaign data for a specific team member, enter their email address. To filter by multiple campaign owners, list the email addresses separated by commas (no spaces). Example: example1@gmail.com,example2@gmail.com Please note that to use this filter, your account must have the ‘View team records’ permission enabled, and you need to be on a Pro plan or higher. |
date_from | The start date of the period for which you want to receive statistics. Format: yyyy-mm-dd. Leave empty to receive statistics for all time. |
date_to | The end date of the period for which you want to receive statistics. Format: yyyy-mm-dd. Leave empty to receive statistics for all time. |
<?php
function getCampaignAnalytics()
{
$token = getAccessToken();
$campaignIds = [1, 2];
$senderEmailIds = [21, 22];
$senderLinkedInIds = [31, 32, 33];
$ownerEmails = ['owner1@email.loc', 'owner2@email.loc'];
$params = [
'access_token' => $token,
'campaign_id' => implode(',', $campaignIds),
'sender_email' => implode(',', $senderEmailIds),
'sender_linkedin' => implode(',', $senderLinkedInIds),
'campaign_owner' => implode(',', $ownerEmails),
'date_from' => '2024-06-15',
'date_to' => '2024-09-15',
];
$params = http_build_query($params);
$options = [
CURLOPT_URL => 'https://api.snov.io/v2/statistics/campaign-analytics?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true
];
$ch = curl_init();
curl_setopt_array($ch, $options);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
return $res;
}
?>
def get_campaign_analytics():
token = get_access_token()
campaign_ids = [1, 2]
sender_email_ids = [21, 22]
sender_linkedin_ids = [31, 32, 33]
owner_emails = ['owner1@email.loc', 'owner2@email.loc']
params = {
'access_token': token,
'campaign_id': ','.join(map(str, campaign_ids)),
'sender_email': ','.join(map(str, sender_email_ids)),
'sender_linkedin': ','.join(map(str, sender_linkedin_ids)),
'campaign_owner': ','.join(owner_emails),
'date_from': '2024-06-15',
'date_to': '2024-09-15',
}
res = requests.get('https://api.snov.io/v2/statistics/campaign-analytics', params=params)
return json.loads(res.text)
{ "total_contacted": 255, "emails_sent": 446, "first_emails": 299, "first_emails_rate": "67%", "follow_ups": 147, "follow_ups_rate": "33%", "delivered": 363, "delivered_rate": "81%", "bounced": 83, "bounced_rate": "19%", "contacted_by_email": 233, "email_opens": 130, "email_opens_rate": "56%", "link_clicks": 100, "link_clicks_rate": "43%", "email_replies": 29, "email_replies_rate": "12%", "unsubscribed": 4, "unsubscribed_rate": "2%", "auto_replied": 13, "auto_replied_rate": "6%", "contacted_by_linkedin": 23, "linkedin_total_replies": 15, "linkedin_total_replies_rate": "65%", "connection_request_replies": 8, "connection_request_replies_rate": "53%", "message_replies": 7, "message_replies_rate": "47%", "connection_requests": 19, "accepted_requests": 11, "accepted_requests_rate": "58%", "failed_connection_requests": 4, "messages_sent": 6, "linkedin_views": 11, "linkedin_likes": 1, "linkedin_follows": 3 }
total_contacted | Total number of recipients that were contacted by email or LinkedIn (connection request, message or InMail). |
emails_sent | Total number of emails sent via campaigns. Note that this does not include emails sent outside of campaigns. |
first_emails | Number of first emails in a campaign sequence that were sent within the indicated time period. |
first_emails_rate | Percentage of first emails out of the total emails sent. |
follow_ups | Number of follow-up emails in a campaign sequence that were sent within the indicated time period. |
follow_ups_rate | Percentage of follow-up emails out of the total emails sent. |
delivered | Number of sent emails that didn’t bounce. |
delivered_rate | Percentage of emails that didn’t bounce out of total emails sent. |
bounced | Number of emails that bounced. |
bounced_rate | Percentage of emails that bounced out of total emails sent. |
contacted_by_email | Number of recipients that received at least one email that didn’t bounce. |
email_opens | Number of recipients who opened your email at least once. |
email_opens_rate | Percentage of recipients who opened your email at least once out of all recipients contacted. |
link_clicks | Number of recipients who clicked on at least one link in your campaigns. |
link_clicks_rate | Percentage of recipients who clicked on at least one link in campaigns out of all recipients contacted. |
email_replies | Number of recipients who replied at least once. |
email_replies_rate | Percentage of recipients who replied at least once out of all recipients contacted. |
unsubscribed | Number of recipients who clicked the Unsubscribe link in your campaigns, opting out of receiving further emails. |
unsubscribed_rate | Percentage of recipients who clicked the Unsubscribe link in your campaigns out of all recipients contacted. |
auto_replied | Number of recipients who auto-replied to your campaign emails. |
auto_replied_rate | Percentage of recipients who auto-replied out of all recipients contacted. |
contacted_by_linkedin | Number of recipients to whom you sent at least one message or connection request on LinkedIn. |
linkedin_total_replies | Number of recipients who replied at least once to any of the messages sent on LinkedIn (LinkedIn messages, connection request messages and InMail). |
linkedin_total_replies_rate | Percentage of recipients who replied at least once to any of the messages sent on LinkedIn (LinkedIn messages, connection request messages and InMail). |
connection_request_replies | Number of recipients who replied to a connection request message. |
connection_request_replies_rate | Percentage of recipients who replied to a connection request message out of all recipients contacted. |
message_replies | Number of recipients who replied to a regular LinkedIn message. |
message_replies_rate | Percentage of recipients who replied to a regular LinkedIn message out of all recipients contacted. |
connection_requests | Number of connection requests sent to prospects via Snov.io campaigns. |
accepted_requests | Number of connection requests that were accepted by LinkedIn members. |
accepted_requests_rate | Percentage of connection requests that were accepted out of all requests sent. |
failed_connection_requests | Number of LinkedIn connection requests that were not sent because:
|
messages_sent | Number of LinkedIn messages sent. |
linkedin_views | Number of prospect profiles viewed. |
linkedin_likes | Number of prospect posts liked on LinkedIn. |
linkedin_follows | Number of prospect profiles followed. |
GETView campaign progress
GratisThis method returns the campaign progress and status.
GET | https://api.snov.io/v2/campaigns/[campaign_id]/progress |
campaign_id *Requerido | Campaign ID. You can find it in the URL when you view the campaign info (example). |
<?php
function getCampaignProgress()
{
$token = getAccessToken();
$campaignId = 1;
$params = [
'access_token' => $token,
];
$params = http_build_query($params);
$options = [
CURLOPT_URL => "https://api.snov.io/v2/campaigns/$campaignId/progress?" . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true
];
$ch = curl_init();
curl_setopt_array($ch, $options);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
return $res;
}
?>
def get_campaign_progress():
token = get_access_token()
campaign_id = 1
params = {
'access_token': token,
}
res = requests.get(f"https://api.snov.io/v2/campaigns/{campaign_id}/progress", params=params)
return json.loads(res.text)
{ "status":"Active", "unfinished":1, "progress":"90%" }
progress | Percentage of recipients who:
|
unfinished | Number of recipients in the campaign who didn’t reach the end of the sequence or for whom the sequence wasn’t stopped. |
status | Campaign status. Learn more |
POSTCambia el estado del destinatario
GratisCambiar el estado de un destinatario en una campaña específica.
POST | https://api.snov.io/v1/change-recipient-status |
email *Requerido | La dirección de correo electrónico del prospecto. |
campaign_id *Requerido | El identificador de la campaña. Puedes encontrarlo en la URL cuando veas la información de la campaña (mostrar un ejemplo). |
status *Requerido | Puede contener Activo, Pausado o No suscrito. No puedes cambiar el estado de los destinatarios si su estado es Finalizado o Movido. |
<?php function changeRecipientStatus() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com', 'campaign_id' => '179025', 'status' => 'Paused' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/change-recipient-status', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def change_recipient_status(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com', 'campaign_id': '179025', 'status':'Paused' } res = requests.post('https://api.snov.io/v1/change-recipient-status', data=params) return json.loads(res.text)
{ "success": true }
El método devuelve success: true si el estado del prospecto ha sido cambiado con éxito. Si se produce algún error, el método devolverá success: false con una descripción del error.
GETVer lista de prospectos completados
GratisEste método devuelve los prospectos para los que se ha completado la campaña.
GET | https://api.snov.io/v1/prospect-finished |
campaignId *Requerido | El identificador único de la campaña para recuperar la lista de prospectos. |
<?php function finishedProspects() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/prospect-finished?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/prospect-finished', data=params) return json.loads(res.text)
[ { "id": "88c268d404797d1001b4d72806207625", "prospectId": "9c2eb5b46bb5873e408684dd577d002354e4f7026f47bf8a592d659bba3d2dd0ff186b90dc7a5", "userName": "zach Jones", "userEmail": "zach@entselect.us", "campaign": "Zipari - Salesforce Developer", "hash": "f3967971cbab6e769b5f7e3457d00159" } ]
id | Identificador único de la solicitud. |
prospectId | Identificador único del prospecto. |
userName | Nombre completo del prospecto. |
userEmail | Dirección de email del prospecto. |
campaign | Nombre de la campaña. |
GETVer las respuestas de la campaña
GratisEste método devuelve las respuestas de la campaña con toda la información, incluyendo el nombre del prospecto, el ID, la campaña, etc.
GET | https://api.snov.io/v1/get-emails-replies |
campaignId *Requerido | Identificador único de la campaña de la que quieres ver las respuestas. |
offset | Puedes recopilar hasta 10.000 respuestas por cada solicitud. Si tu campaña tiene más respuestas, utiliza el desplazamiento para indicar cuántas respuestas anteriores deseas omitir. Por ejemplo, si tu campaña tiene 20.000 respuestas y deseas solicitar respuestas 10.001-20.000, configura el desplazamiento como 10.000. Si el desplazamiento no se especifica, recibirás las últimas 10.000 respuestas recibidas. |
<?php function campaignReplies() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-replies?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-replies', data=params) return json.loads(res.text)
[ { "visitedAt": { "date": "2020-07-14 13:10:46.000000", "timezone_type": 3, "timezone": "UTC" }, "campaignId": 1234567, "campaign": "My top campaign", "prospectId": "7a941739b09f1187532d52a684df545f3a223e432c7f53662264db8d33db80ee5fc19e573416a", "prospectFirstName": "John", "prospectLastName": "Doe", "prospectName": "John Doe", "sourcePage": null, "source": "copy", "locality": null, "industry": "Airlines/Aviation", "country": null, "prospectEmail": "Johndoe@snov.io", "hash": "6745f8162ecadbe325693345d1a53976", "emailSubject": "\"Special content for you\"", "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"", "skills": "", "links": null, "customFields": null, "id": "f676edc5de58f341dc7bf4e75c0c8580", "customField_fdfd": "", "customField_рпа": "" } ]
campaignId | Identificador único de la campaña. |
campaign | Nombre de la campaña. |
prospectName | Nombre completo del prospecto. |
emailSubject | Línea de asunto del correo electrónico que recibió una respuesta. |
emailBody | Contenido del correo electrónico que ha recibido respuesta. |
GETObtén información sobre la apertura de la campaña
GratisEste método muestra la información sobre los correos electrónicos abiertos en la campaña.
GET | https://api.snov.io/v1/get-emails-opened |
campaignId *Requerido | Identificador único de la campaña de la que deseas ver información sobre las aperturas de los correos electrónicos. |
offset | Puedes recopilar hasta 10.000 aperturas por cada solicitud. Si tu campaña tiene más correos electrónicos abiertos, usa el desplazamiento para indicar cuántas aperturas anteriores deseas omitir. Por ejemplo, si tu campaña tiene 20.000 aperturas y quieres solicitar las aperturas 10.001-20.000, configura el desplazamiento como 10.000. Si el desplazamiento no está especificado, recibirás los últimos 10.000 correos electrónicos abiertos. |
<?php function emailsOpen() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-opened?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-opened', data=params) return json.loads(res.text)
[ { "visitedAt": { "date": "2020-01-08 21:48:14.000000", "timezone_type": 3, "timezone": "UTC" }, "campaignId": 1234567 "campaign": "My top campaign", "prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3", "prospectFirstName": "John", "prospectLastName": "Doe", "prospectName": "John Doe", "sourcePage": null, "source": "copy", "locality": null, "industry": null, "country": null, "prospectEmail": "Johndoe@snov.io", "hash": "20b1aeb0e2949fdf7e58363f84b7aff1", "emailSubject": "\"Special content for you\"", "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"", "skills": "", "links": null, "customFields": null, "id": "c2a67a47d59745f548ea7b0213c3a81d", "customField_Phone": "" } ]
campaignId | Identificador único de la campaña. |
campaign | Nombre de la campaña. |
prospectName | Nombre completo del prospecto que abrió un email. |
emailSubject | Línea de asunto del correo electrónico que se abrió. |
visitedAt | Hora exacta en que el prospecto abrió el correo electrónico. |
GETComprobar los clics del link
GratisEste método devuelve información sobre todos los destinatarios de la campaña que han hecho clic en un link en uno de los correos electrónicos de la campaña.
GET | https://api.snov.io/v1/get-emails-clicked |
campaignId *Requerido | Identificador único de la campaña para la que desea ver los clics de los links. |
offset | Puedes recopilar hasta 10.000 clics por cada solicitud. Si tu campaña tiene más clics, utiliza el desplazamiento para indicar cuántos clics anteriores quieres omitir. Por ejemplo, si tu campaña tiene 20.000 clics y deseas solicitar los clics del 10.001 al 20.000, establece el desplazamiento en 10.000. Si el desplazamiento no se especifica, recibirás los últimos 10.000 correos electrónicos que hicieron clic en un enlace dentro de la campaña. |
<?php function emailsClicked() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-clicked?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-clicked', data=params) return json.loads(res.text)
[ { "visitedAt": { "date": "2020-01-08 21:48:14.000000", "timezone_type": 3, "timezone": "UTC" }, "campaignId": 1234567 "campaign": "My top campaign", "prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3", "prospectFirstName": "John", "prospectLastName": "Doe", "prospectName": "John Doe", "sourcePage": null, "source": "copy", "locality": null, "industry": null, "country": null, "prospectEmail": "Johndoe@snov.io", "hash": "20b1aeb0e2949fdf7e58363f84b7aff1", "emailSubject": "\"Special content for you\"", "emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"", "skills": "", "links": null, "customFields": null, "id": "c2a67a47d59745f548ea7b0213c3a81d", "customField_Phone": "" } ]
campaignId | Identificador único de la campaña. |
campaign | Nombre de la campaña. |
prospectName | Nombre completo del prospeccto que hizo clic en un link de un correo electrónico de la campaña. |
prospectEmail | Dirección de email del prospecto. |
emailSubject | Línea de asunto del correo electrónico que contenía un link cliqueado. |
emailBody | Contenidos del correo electrónico. |
visitedAt | La hora exacta en que el prospecto hizo clic en un link del correo electrónico. |
GETVer correos electrónicos enviados
GratisEste método muestra la información sobre los correos electrónicos enviados en la campaña.
GET | https://api.snov.io/v1/emails-sent |
campaignId *Requerido | Identificador único de la campaña para la que deseas ver los correos electrónicos enviados. |
offset | Puedes recopilar hasta 10.000 correos electrónicos enviados por cada solicitud. Si tu campaña envió más correos electrónicos, utiliza el desplazamiento para indicar cuántos correos electrónicos anteriores quieres omitir. Por ejemplo, si tu campaña ha enviado 20.000 correos electrónicos y deseas solicitar los correos electrónicos del 10.001 al 20.000, establece el desplazamiento en 10.000. Si el desplazamiento no se especifica, recibirás los últimos 10.000 correos electrónicos que se enviaron dentro de la campaña. |
<?php function emailsSended() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/emails-sent?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/emails-sent', data=params) return json.loads(res.text)
[ { "sentDate": { "date": "2020-07-06 06:58:10.000000", "timezone_type": 3, "timezone": "UTC" }, "userName": "John Doe", "userEmail": "johndoe@snov.io", "campaign": "Test", "hash": "be8fd412b793c15ccab9f1a6573d6595", "id": "010f091d81860753a19867ba1dd805d1" }, { "sentDate": { "date": "2020-07-06 06:56:44.000000", "timezone_type": 3, "timezone": "UTC" }, "userName": "Mister Smith", "userEmail": "mistersmith@snov.io", "campaign": "Test", "hash": "55bb20def471e630c539935cb0efcbf8", "id": "00e3df8427477a21d64bbe959ff95471" } ]
sentDate | Hora exacta en que se envió el correo electrónico. |
userName | Nombre completo del prospecto al que se envió el correo electrónico. |
userEmail | Dirección de email del prospecto. |
campaign | Nombre de la campaña. |
GETVer todas las campañas
GratisEste método muestra la lista de todas las campañas de los usuarios.
GET | https://api.snov.io/v1/get-user-campaigns |
No hay parámetros de entrada para este método |
<?php function userCampaigns() { $token = getAccessToken(); $params = [ 'access_token' => $token ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-user-campaigns?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() headers = {'Authorization': token} url = 'https://api.snov.io/v1/get-user-campaigns' response = requests.request('GET', url, headers=headers) return json.loads(res.text)
[ { "id": 237945, "campaign": "New Campaign", "list_id": 8512947, "status": "Paused", "created_at": 1639469976, "updated_at": 1639470026, "started_at": 1639470021, "hash": "e272be8f9a6894f5b5894fe2ef77095e" }, { "id": 237956, "campaign": "Test campaign", "list_id": 7654321, "status": "Draft", "created_at": 1638808262, "updated_at": 1638808262, "started_at": null, "hash": "f97fce248b77e9a1ae770b21c7bd783d" } ]
id | Identificador único de la campaña del usuario. |
campaign | Nombre de la campaña. |
list_id | Identificador único de la lista de prospectos utilizada en la campaña. |
status | Estado de la campaña. |
created_at | Fecha y hora de creación de la campaña en el formato de Unix Timestamp. |
updated_at | Fecha y hora de la última actualización de la campaña en formato Unix Timestamp. |
started_at | Fecha y hora de lanzamiento de la campaña en el formato de Unix Timestamp. |
POSTAñadir a la lista de No enviar email
GratisUtilizando este método puedes añadir un correo electrónico o un dominio a tu Lista de no enviar email. Una vez que este correo electrónico/dominio se haya añadido a la lista, no podrás enviarle correos electrónicos.
POST | https://api.snov.io/v1/do-not-email-list |
items | Correo electrónico o dominio que deseas añadir a tu lista de No enviar email. |
listId *Requerido | El identificador de la Lista de No enviar emails al que pertenecen los emails y los dominios. |
<?php function addToBlackList() { $token = getAccessToken(); $params = [ 'access_token' => $token ]; $data = http_build_query([ 'items' => [ 'gavin.vanrooyen@octagon.com', 'octagon.com' ] ]); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/do-not-email-list?'. $data, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); } ?>
def do_not_email_list(): token = get_access_token() params = { 'access_token':token, 'items[]':['gavin.vanrooyen@octagon.com','octagon.com'] } res = requests.post('https://api.snov.io/v1/do-not-email-list', data=params) return json.loads(res.text)
[ { "success": true, "data": { "duplicates": [] } } ]
duplicates | Este parámetro muestra qué correos electrónicos/dominios han sido añadidos previamente a la lista de No enviar email. |
POSTAñade el prospecto a la lista
GratisAgregar un prospecto a una lista específica. Este método será útil para aquellos que quieran automatizar la adición de prospectos a las listas con campañas activas por email. De esta manera, después de que un prospecto se agregue automáticamente a una lista elegida, se iniciará automáticamente una campaña para ellos.
POST | https://api.snov.io/v1/add-prospect-to-list |
email *Requerido | La dirección de correo electrónico del prospecto. |
fullName | El nombre completo del prospecto. |
firstName | El nombre del prospecto. |
lastName | El apellido del prospecto. |
phones | Arreglo con números de teléfono de prospectos. |
country | El país del prospecto. Los nombres de los países se definen aquí. Por favor, utiliza solo los países de esta lista. |
locality | La ubicación del prospecto. |
position | El cargo del prospecto. |
companyName | El nombre de la empresa del prospecto. |
companySite | La página web de la empresa del prospecto. Por favor, utiliza el http://example.com formato. |
updateContact | Actualiza un prospecto existente. Puede contener true
, o false
. Si true y un prospecto con esta dirección de correo electrónico ya existe en una de las listas, el sistema actualizará el perfil existente. Si false , el sistema no actualizará el perfil existente. |
customFields[specialization] | Puede añadir valores personalizados en campos personalizados previamente creados. Para ello, especifica el nombre del campo personalizado entre los [brackets]. |
socialLinks[linkedIn] | Un enlace al perfil de redes sociales del prospecto. Especifica el nombre de la red social entre [corchetes] (LinkedIn, Facebook o X). |
listId *Requerido | El identificador de la lista a la que pertenece el prospecto. |
<?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', '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)
{ "success": true, "id": "0Y2QzowWL1rHpIptwaRp0Q==", "added": true, "updated": false }
success | Es true si el prospecto se ha añadido con éxito a la lista. |
id | Se ha añadido el identificador de los prospectos. |
added | Es true si el prospecto se ha añadido a la lista. |
updated | Es true si se han actualizado los datos del prospecto existente. |
errors | Ha habido un error al añadir el prospecto a la lista. |
POSTEncuentra el prospect por el ID
GratisEncuentra prospectos de tus listas por id. Conociendo el id de un prospecto específico puedes obtener información completa sobre el mismo, incluyendo las listas y campañas a las que ha sido añadido.
POST | https://api.snov.io/v1/get-prospect-by-id |
id *Requerido | El identificador del prospecto. Se puede ver en la respuesta cuando se añade un prospecto a través de Añade el prospecto a la lista método API o en la URL al ver la página del prospecto (ver un ejemplo). |
<?php function getProspectById() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'id' => 'xusD3-T_K5IktGoaa8Jc8A==' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-prospect-by-id', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def getProspectById(): token = get_access_token() params = {'access_token':token, 'id':'xusD3-T_K5IktGoaa8Jc8A==' } res = requests.post('https://api.snov.io/v1/get-prospect-by-id', data=params) return json.loads(res.text)
{ "success": true, "data": { "id": "xusD3-T_K5IktGoaa8Jc8A==", "name": "Gavin Vanrooyen", "firstName": "Gavin", "lastName": "Vanrooyen", "industry": "Entertainment", "country": "United States", "locality": "Greater Atlanta Area", "social": [ { "link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-8090738\/", "type": "linkedIn" } ], "lastUpdateDate": { "date": "2019-09-11 12:37:58.000000", "timezone_type": 3, "timezone": "UTC" }, "currentJob": [ { "companyName": "Octagon", "position": "Senior Brand Director", "socialLink": "https:\/\/www.linkedin.com\/company\/659312", "site": "http:\/\/octagon.com", "locality": "United States", "state": null, "city": null, "street": null, "street2": null, "postal": null, "founded": null, "startDate": "2018-07-31", "endDate": null, "size": "1-10", "industry": "Entertainment", "companyType": "Public Company", "country": "United States" } ], "previousJob": [ { "companyName": "UPS", "position": "Manager, Sponsorships and Events", "socialLink": "https:\/\/www.linkedin.com\/company\/152322", "site": "http:\/\/www.ups.com\/", "locality": "United States", "state": "GA", "city": "Atlanta", "street": "55 Glenlake Parkway, NE", "street2": null, "postal": "30328", "founded": "1907", "startDate": null, "endDate": null, "size": "10001+", "industry": "Logistics and Supply Chain", "companyType": "Public Company", "country": "United States" } ], "lists": [ { "id": 1250344, "name": "People List" } ], "campaigns": [] } }
success | Es true si se encuentra el prospecto |
id | Identificador único del perfil |
name | Nombre completo del prospecto |
firstName | Primer nombre del prospecto |
lastName | Apellido del prospecto |
industry | Sector de actividad indicado en el perfil del prospecto |
country | País de prospecto |
locality | Ubicación de prospecto |
social | Enlaces a los perfiles sociales de los prospectos |
currentJobs | La matriz contiene información sobre el puesto de trabajo actual de prospecto |
previousJobs | La matriz contiene información sobre los cargos anteriores del prospecto |
lastUpdateDate | Fecha de la última actualización del perfil |
lists | Listas a las que se ha añadido el prospecto |
campaigns | Lista de campañas a las que se ha añadido este prospecto como destinatario. Contiene breves estadísticas como el estado, el número de mensajes enviados, las aperturas y las respuestas. |
POSTEncuentra el prospecto por el email
GratisEncuentra prospectos de sus listas por dirección de correo electrónico. Cuando buscas por correo electrónico, recibes una lista de todos los prospectos vinculados a esta dirección de correo electrónico. Cada elemento de la lista contiene información completa sobre el prospecto, incluyendo las listas y las campañas a las que ha sido añadido.
POST | https://api.snov.io/v1/get-prospects-by-email |
email *Requerido | La dirección de correo electrónico del prospecto. |
<?php function getProspectsByEmail() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-prospects-by-email', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def getProspectsByEmail(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com' } res = requests.post('https://api.snov.io/v1/get-prospects-by-email', data=params) return json.loads(res.text)
{ "success": true, "data": [ { "id": "xusD3-T_K5IktGoaa8Jc8A==", "name": "Gavin Vanrooyen", "firstName": "Gavin", "lastName": "Vanrooyen", "industry": "Entertainment", "country": "United States", "locality": "Greater Atlanta Area", "social": [ { "link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-809073755\/", "type": "linkedIn" } ], "lastUpdateDate": { "date": "2019-09-11 12:37:58.000000", "timezone_type": 3, "timezone": "UTC" }, "currentJob": [ { "companyName": "Octagon", "position": "Senior Brand Director", "socialLink": "https:\/\/www.linkedin.com\/company\/659333", "site": "http:\/\/octagon.com", "locality": "United States", "state": null, "city": null, "street": null, "street2": null, "postal": null, "founded": null, "startDate": "2018-07-31", "endDate": null, "size": "1-10", "industry": "Entertainment", "companyType": "Public Company", "country": "United States" } ], "previousJob": [ { "companyName": "UPS", "position": "Manager, Sponsorships and Events", "socialLink": "https:\/\/www.linkedin.com\/company\/1523574", "site": "http:\/\/www.ups.com\/", "locality": "United States", "state": "GA", "city": "Atlanta", "street": "55 Glenlake Parkway, NE", "street2": null, "postal": "30328", "founded": "1907", "startDate": null, "endDate": null, "size": "10001+", "industry": "Logistics and Supply Chain", "companyType": "Public Company", "country": "United States" } ], "lists": [ { "id": 1250344, "name": "People List" } ], "campaigns": [] } ] }
success | Es true si se encuentra el prospecto |
id | Identificador único del perfil |
name | Nombre completo del prospecto |
firstName | Nombre del prospecto |
lastName | Apellido del prospecto |
industry | Sector de actividad indicado en el perfil del prospecto |
country | País del prospecto |
locality | Ubicación del prospecto |
social | Enlaces a los perfiles sociales de los prospectos |
currentJobs | La matriz contiene información sobre el cargo actual del cliente potencial |
previousJobs | La matriz contiene información sobre los títulos de trabajo anteriores del cliente potencial |
lastUpdateDate | Fecha de la última actualización del perfil |
lists | Listas a las que se ha añadido el prospecto |
campaigns | Lista de campañas a las que se ha añadido este prospecto como destinatario. Contiene breves estadísticas como el estado, el número de mensajes enviados, las aperturas y las respuestas. |
GETEncuentra los campos personalizados del prospecto
GratisEste método devuelve una lista de todos los campos personalizados creados por el usuario, incluyendo el nombre de los campos, si el campo es opcional u obligatorio, y el tipo de datos del campo.
GET | https://api.snov.io/v1/prospect-custom-fields |
No hay parámetros de entrada para este método |
<?php function customFields() { $token = getAccessToken(); $params = [ 'access_token' => $token, ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/prospect-custom-fields?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def custom_fields(): token = get_access_token() params = {'access_token':token } res = requests.get('https://api.snov.io/v1/prospect-custom-fields', data=params) return json.loads(res.text)
[ { "key": "customFields['company']", "label": "company", "required": false, "type": "string" }, { "key": "customFields['Project name']", "label": "Project name", "required": false, "type": "string" }, { "key": "customFields['SEO']", "label": "SEO", "required": false, "type": "string" } ]
key | La clave del campo en la matriz customFields . |
label | El nombre del campo. |
required | Es true si el campo personalizado es obligatorio. |
type | El tipo de datos del campo personalizado (cadena, número o fecha). |
GETVer listas de usuarios
GratisEste método devuelve todas las listas creadas por el usuario. Puedes utilizar este método para revisar las listas que se pueden utilizar para una campaña por email.
GET | https://api.snov.io/v1/get-user-lists |
No hay parámetros de entrada para este método |
<?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', data=params) return json.loads(res.text)
[ { "id": 1818597, "name": "FirstSend", "contacts": 1, "isDeleted": false, "creationDate": { "date": "2020-04-07 08:25:44.000000", "timezone_type": 3, "timezone": "UTC" }, "deletionDate": null }, { "id": 1505383, "name": "All prospects", "contacts": 10, "isDeleted": true, "creationDate": { "date": "2019-12-17 15:07:30.000000", "timezone_type": 3, "timezone": "UTC" }, "deletionDate": { "date": "2020-02-17 14:05:44.000000", "timezone_type": 3, "timezone": "UTC" } }, { "id": 1479070, "name": "EMAIL", "contacts": 13, "isDeleted": true, "creationDate": { "date": "2019-12-06 10:51:01.000000", "timezone_type": 3, "timezone": "UTC" }, "deletionDate": { "date": "2020-02-17 14:05:48.000000", "timezone_type": 3, "timezone": "UTC" } } ]
id | Identificador único de la lista de usuarios. |
name | Nombre de la lista |
contacts | El número de prospectos en la lista. |
isDeleted | Estado de la lista. Es true si la lista ha sido borrada. |
creationDate | La fecha y la hora de creación de la lista (incluye información sobre la fecha, la hora y la zona horaria). |
deleteDate | Si la lista se ha eliminado, contiene la fecha y la hora de la supresión de la lista (incluye información sobre la fecha, la hora y la zona horaria). |
POSTVer prospectos en la lista
GratisEste método devuelve todos los datos de los prospectos en una lista específica, incluyendo los datos del prospecto como las direcciones de correo electrónico y su estado.
POST | https://api.snov.io/v1/prospect-list |
listId *Requerido | El identificador único de la lista. |
page | Puedes elegir en qué página de la lista quieres empezar tu búsqueda. Este campo es opcional. |
perPage | Puedes elegir en qué página de la lista quieres terminar tu búsqueda. Este campo es opcional. El valor máximo es 100. |
<?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)
Ten en cuenta que los resultados de los prospectos se muestran en orden inverso, del último al primero.
{ "success": true, "list": { "name": "Lead LIST", "contacts": 3, "creationDate": { "date": "2020-05-19 17:34:39.000000", "timezone_type": 3, "timezone": "UTC" }, "emailsCount": [] }, "prospects": [ { "id": "226db935fc93422496fda5d5209e8cbf77cc77ec685891706028009b86608f7ce5877a3faf", "name": "Andrew Garfiled", "firstName": "Andrew", "lastName": "Garfiled", "emails": [ { "email": "andrewexp@exp.com", "probability": 99, "isVerified": null, "jobStatus": "any", "domainType": "linkedin_email", "isValidFormat": null, "isDisposable": null, "isWebmail": null, "isGibberish": null, "smtpStatus": null } ] }, { "id": "f20d30219b039d1408d837a748a1e2ab843c97e65080f6cf8fa7d948477d9093d87413f05f", "name": "John Doe", "firstName": "John", "lastName": "Doe", "emails": [ { "email": "johndoe@gmail.com", "probability": 99, "isVerified": null, "jobStatus": "any", "domainType": "linkedin_email", "isValidFormat": true, "isDisposable": false, "isWebmail": true, "isGibberish": false, "smtpStatus": 3 } ] } ] }
list | Una matriz con información sobre la lista y los prospectos en ella. |
name | El nombre de la lista. |
contacts | El número de prospectos en la lista. |
creation_date | La fecha de creación de la lista (incluye la fecha, la hora y la información de la zona horaria). |
emailsCount | El número de correos electrónicos de la lista. |
prospects | Una lista de prospectos en la lista. |
id | Un identificador único del prospecto. |
name | El nombre completo de un prospecto. |
emails | Una lista de correos electrónicos pertenecientes al prospecto. |
POSTCrear una nueva lista de prospectos
GratisUtiliza este método para crear nuevas listas de prospectos en tu cuenta.
POST | https://api.snov.io/v1/lists |
name | El nombre de la nueva lista de prospectos. |
<?php function createNewList() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'name' => 'New list' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/lists', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); } ?>
def add_prospect_list(): token = get_access_token() params = { 'access_token':token, 'name':'New list' } res = requests.post('https://api.snov.io/v1/lists', data=params) return json.loads(res.text)
[ { "success": true, "data": { "id": 1234567 } } ]
id | El ID de la lista de prospectos creada. |
GETConsulta el saldo del usuario
GratisUtiliza este método para comprobar tu saldo de crédito.
GET | https://api.snov.io/v1/get-balance |
No hay parámetros de entrada para este método |
<?php function getBalance() { $token = getAccessToken(); $params = [ 'access_token' => $token, ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-balance?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def get_balance(): token = get_access_token() headers = {'authorization':token } res = requests.get('https://api.snov.io/v1/get-balance', headers=headers) return json.loads(res.text)
{ "success": true, "data": { "balance": "25000.00", "teamwork": false, "unique_recipients_used": 0, "limit_resets_in": 29, "expires_in": 359 } }
balance | Saldo actual del usuario en créditos. |
teamwork | Es verdadero si actualmente es miembro o líder de un equipo, falso si no forma parte de un equipo. |
recipients_used | Número de destinatarios únicos utilizados este mes. |
limit_resets_in | Días hasta el reinicio del límite. |
expires_in | Días hasta el final de la suscripción. |
Webhooks
Los webhooks le permiten recibir notificaciones de eventos que sucedieron en su cuenta de Snov.io.
Puede usar webhooks para llamar al punto final (URL) en su servidor cada vez que ocurre un evento suscrito en Snov.io y enviar datos en tiempo real a su aplicación.
Cada vez que ocurre un evento, Snov.io envía una solicitud HTTP con un cuerpo JSON al punto final de URL especificado.
Puedes suscribirte y gestionar los webhooks a través de un conjunto de llamadas a la API.
Los objetos y acciones de webhook admitidos actualmente se enumeran a continuación:
Objeto de webhook | Acción | cuando se activa |
---|---|---|
campaign_email | sent | Cuando se envía cualquier email al destinatario en cualquier campaña |
first_sent | Cuando se envía el primer email al destinatario en cualquier campaña | |
opened | Cuando un destinatario abre cualquier email de cualquier campaña | |
campaign_reply | received | Cuando el destinatario responde a cualquier correo electrónico de cualquiera de las campañas |
first_received | Cuando el destinatario responde al correo electrónico por primera vez en cualquiera de las campañas |
Límites: los usuarios del plan premium pueden crear hasta 50 webhooks.
Política de reintento: el webhook tiene éxito si recibimos un estado HTTP del rango 200-299 en respuesta dentro de los 3 segundos.
Si obtenemos cualquier otro estado HTTP o se produce un tiempo de espera, hacemos siete intentos de reintento con intervalos crecientes hasta 38 horas después del evento que dispararó un webhook:
Si todos los reintentos son infructuosos, el webhook se desactiva.
- 1º: inmediatamente después del evento
- 2º: 20 minutos después del último intento (20 minutos después del evento
- 3º: 40 minutos después del último intento (1 hora después del evento)
- 4º: 60 minutos después del último intento (2 horas después del evento)
- 5º: 4 horas después del último intento (6 horas después del evento)
- 6º: 8 horas después del último intento (14 horas después del evento)
- 7º: 24 horas después del último intento (38 horas después del evento)
GETListar todos los webhooks
GET | https://api.snov.io/v2/webhooks |
Content-Type: application/json |
Este método no tiene parámetros de entrada. |
{ "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 } }
Parámetro | Tipo de datos | Tipo de datos |
---|---|---|
data | array | Colección de modelos de webhook |
id | int | Webhook ID |
end_point | string | La URL real que proporcionó al agregar el webhook y adónde se enviará |
event_object | string | El objeto sobre el que se realiza la acción. |
event_action | string | Acción sobre el objeto |
created_at | int | Fecha de creación del webhook en formato Unix Timestamp |
status | string | Estado del webhook: activo, desactivado |
meta | object | Datos relacionados |
webhooks_count | int | Número total de webhooks en su cuenta (máximo 50) |
user_id | int | Tu identificación de usuario |
POSTAgregar webhook
POST | https://api.snov.io/v2/webhooks |
Content-Type: application/json |
event_object | el objeto en el que se realiza la acción (lista de objetos admitidos) |
event_action | la acción realizada sobre el objeto (lista de acciones admitidas) |
endpoint_url | la dirección URL donde se envía el webhook |
{ "event_object": "campaign_email", "event_action": "sent", "endpoint_url": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/" }
{ "data": { "id": 17, "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/", "event_object": "campaign_email", "event_action": "sent", "created_at": 1656057947, "status": "active" }, "meta": { "user_id": 1313777 } }
Parámetro | Tipo de datos | Tipo de datos |
---|---|---|
data | object | datos de webhook |
id | int | Webhook ID |
end_point | string | La URL real que proporcionó al agregar el webhook y adónde se enviará |
event_object | string | El objeto sobre el que se realiza la acción. |
event_action | string | Acción sobre el objeto |
created_at | int | Fecha de creación del webhook en formato Unix Timestamp |
status | string | Estado del webhook: activo, desactivado |
meta | object | Datos relacionados |
user_id | int | Tu identificación de usuario |
PUTCambiar el estado del webhook
Incluye el valor de "id" único del webhook elegido al final de la dirección URL de la solicitud.
Utiliza el método "Lista de todos los webhooks" para obtener los valores de identificación de tus webhooks.
PUT | https://api.snov.io/v2/webhooks/webhook_id |
Content-Type: application/json |
status | Activo o desactivado |
{ https://api.snov.io/v2/webhooks/14 "status": "deactivated" }
{ "data": { "id": 14, "end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abqqqpcz/", "event_object": "campaign_email", "event_action": "sent", "created_at": 1655890563, "status": "deactivated" }, "meta": { "user_id": 1313777 } }
Parámetro | Tipo de datos | Tipo de datos |
---|---|---|
data | object | datos de webhook |
id | int | Webhook ID |
end_point | string | La URL real que proporcionó al agregar el webhook y adónde se enviará |
event_object | string | El objeto sobre el que se realiza la acción. |
event_action | string | Acción sobre el objeto |
created_at | int | Fecha de creación del webhook en formato Unix Timestamp |
status | string | Estado del webhook: activo, desactivado |
meta | object | Datos relacionados |
user_id | int | Tu identificación de usuario |
DELETEEliminar un webhook
Incluye el valor de "id" único del webhook elegido al final de la dirección URL de la solicitud.
Utiliza el método "Lista de todos los webhooks" para obtener los valores de identificación de tus webhooks.
DELETE | https://api.snov.io/v2/webhooks/webhook_id |
Content-Type: application/json |
{ https://api.snov.io/v2/webhooks/8 }
{ "data": { "success": true } }
Parámetro | Tipo de datos | Tipo de datos |
---|---|---|
success | boolean | Indica si se elimina el webhook |