Snov.io API
用户可以通过我们简单的 REST API 使用 Snov.io 功能。 与 Snov.io API 集成以同步您的潜在客户、查找邮箱地址、管理潜在客户等。 API 速率限制为每分钟 60 个请求。
如果您使用的是免费套餐,可与我们预约个人演示以申请测试权限。开始前请告知您的具体目标,以便我们更好地理解您的需求。
Snov.io 的 API 用例
- 丰富您的潜在客户列表,扩展销售团队数据
根据姓名或公司域名查找真实邮箱地址 —— 非常适合扩展潜在客户列表或丰富现有数据。 - 自动将新注册用户加入到营销活动中
将您的注册和活动注册表单与 Snov.io API 连接起来,即可实时将新的潜在客户添加到您的营销活动中。 - 保持客户数据库整洁
将邮箱验证功能接入到您的客户关系管理(CRM)或客户开发工具中,以便即时验证新潜在客户的邮箱地址,确保现有客户数据始终有效。 - 使用领英 URL 自动填写潜在客户信息
将基本的领英会员 URL 转换为丰富的、可直接用于 CRM 的个人资料。告别手动数据输入 —— 迎接高质量潜在客户。 - 实时分享营销结果
从您的营销中提取实时数据,导入精美仪表板或幻灯片中。为您的利益相关者提供他们需要的分析,且无需繁琐的操作。 - 遵守“禁止发送邮件”列表相关规定
自动将潜在客户添加到禁止发送邮件列表,避免意外触达。非常适合销售团队保持一致,尊重退订请求,并遵守数据隐私规则。
将这些方法 —— 以及更多 —— 集成到您的工作流程中。借助我们灵活的 API,几乎可以实现无限的应用场景。
认证
您需要生成访问口令以认证未来的请求。发出请求时,请在“授权”字段中指定此访问口令。
| Authorization: Bearer QSlHffXmCAILIOHNGXToq4LsP2yX64VQhEBZ7Ei4 |
这是口令生成的示例。
| POST | https://api.snov.io/v1/oauth/access_token |
grant_type | 将始终是 client_credentials |
client_id | 您的 ID 在帐户设置中可用 https://app.snov.io/account/api |
client_secret | 您的密钥在帐户设置中可用 https://app.snov.io/account/api |
<?php function getAccessToken() { $params = [ 'grant_type' => 'client_credentials', 'client_id' => 'c57a0459f6t141659ea75cccb393c5111', 'client_secret' => '77cbf92b71553e85ce3bfd505214f40b' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/oauth/access_token', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res['access_token']; } ?>
def get_access_token(): params = { 'grant_type':'client_credentials', 'client_id':'c57a0459f6t141659ea75cccb393c111', 'client_secret': '77cbf92b71553e85ce3bfd505214f40b' } res = requests.post('https://api.snov.io/v1/oauth/access_token', data=params) resText = res.text.encode('ascii','ignore') return json.loads(resText)['access_token']
| { | |||
| |||
| } |
access_token | 您的新访问口令 |
token_type | 将始终是 Bearer |
expires_in | 口令到期时间(秒) |
API 方法
POST域名搜索
每个唯一搜索请求需消耗 1 个点数,每个潜在客户资料邮箱地址需消耗 1 个点数输入域名,Snov.io 将提供公司信息、邮箱地址和潜在客户资料。
每个 POST 请求需消耗 1 个点数。如果没有结果,则不会扣除您的额度。
| POST | https://api.snov.io/v2/domain-search/start |
domain | 您想获取公司信息的域名。例如,“snov.io”。 |
<?php function companyInfoSearch() { $token = getAccessToken(); $params = [ 'domain' => 'snov.io', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def company_info_search(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'domain': 'snov.io', } res = requests.post('https://api.snov.io/v2/domain-search/start', params=params, headers=headers) return json.loads(res.text)
{
"data": [],
"meta": {
"domain": "snov.io",
"task_hash": "6f15de14db954c761f8e7507547b3bd7"
},
"links": {
"result": "https://api.snov.io/v2/domain-search/result/6f15de14db954c761f8e7507547b3bd7"
}
}
domain | 您正在检索公司信息的域名。 |
task_hash | 您启动的搜索任务的唯一 ID。它会自动添加到您的下一次请求 URL 中,以便接收结果。 |
result | 用于接收公司信息的请求 URL。 |
| GET | https://api.snov.io/v2/domain-search/result/{task_hash} |
<?php function companyInfoResult() { $token = getAccessToken(); $task_hash = 'b10e4c47693dbf87cc8de16edcc8ae22'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/result/$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def company_info_result(): token = get_access_token() task_hash = '86586db9ac64ae5471eb18fc71b0dd5e' headers = {'authorization': f'Bearer {token}'} res = requests.get(f'https://api.snov.io/v2/domain-search/result/{task_hash}', headers=headers) return json.loads(res.text)
{
"data": {
"company_name": "Snov.io",
"city": "New York",
"founded": "2017",
"website": "snov.io",
"hq_phone": "13477050819",
"industry": "Computer Software",
"size": "51-200",
"related_domains": [
"snov.me",
"snov.com",
"snov.nl",
"snov.com.ua",
"snov.cl"
]
},
"meta": {
"domain": "snov.io",
"task_hash": "6f15de14db954c761f8e7507547b3bd7",
"prospects_count": 196,
"emails_count": 108,
"generic_contacts_count": 9
},
"links": {
"prospects": "https://api.snov.io/v2/domain-search/prospects/start?domain=snov.io",
"domain_emails": "https://api.snov.io/v2/domain-search/domain-emails/start?domain=snov.io",
"generic_contacts": "https://api.snov.io/v2/domain-search/generic-contacts/start?domain=snov.io"
},
"status": "completed"
}
company_name | 与域名相关的公司名称。 |
city | 公司总部所在城市。 |
founded | 公司成立年份。 |
website | 公司网站地址。 |
hq_phone | 公司总部的电话号码。 |
industry | 公司所在行业。 |
size | 公司员工数量。 |
related_domains | 与您请求数据的域名具有相同 SLD (二级域名) 的域名。 |
domain | API 已提供公司信息的域名。 |
task_hash | 您启动搜索任务的唯一 ID。 |
prospects_count | 从您的请求中检索到的潜在客户资料数量。 |
emails_count | 从您的请求中检索到的域名邮箱地址数量。 |
generic_contacts_count | 从您的请求中检索到的通用邮箱地址数量。 |
prospects | 请求包含完整潜在客户资料的列表的 URL。 |
domain_emails | 请求包含域名邮箱地址的列表的 URL。 |
generic_contacts | 请求包含通用公司邮箱地址的列表的 URL。 |
status | 请求状态。可以是已完成或进行中。 |
| POST | https://api.snov.io/v2/domain-search/prospects/start |
domain | 您要查找潜在客户资料的域名。例如,“snov.io”。 |
positions[] | 使用此参数可按职位筛选潜在客户,例如“软件开发人员”。要按多个职位进行筛选,请输入包含所需职位的数组,并以逗号分隔。 每次搜索请求最多可以筛选 10 个职位。 |
page | 包含潜在客户资料的页码。每页最多显示 20 个资料。 如果未指定页码,则默认返回第一页。 |
<?php function prospectsSearch() { $token = getAccessToken(); $params = [ 'domain' => 'snov.io', 'page' => 1, 'positions' => ['Web developer','QA Engineer'] ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($params), CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def prospects_search(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'domain': 'snov.io', 'page': 1, 'positions[]': ['Web developer', 'QA Engineer'] } res = requests.post('https://api.snov.io/v2/domain-search/prospects/start', params=params, headers=headers) return json.loads(res.text)
{
"data": [],
"meta": {
"domain": "snov.io",
"tab": "prospects",
"task_hash": "3384369c16aad810f58609a40ad65089",
"page": 1,
"positions": [
"Web developer",
"QA Engineer"
]
},
"links": {
"result": "https://api.snov.io/v2/domain-search/prospects/result/3384369c16aad810f58609a40ad65089"
}
}
domain | 您正在检索潜在客户资料的域名。 |
tab | 显示您请求的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动的搜索任务的唯一 ID。它会自动添加到您的下一次请求 URL 中,以便接收结果。 |
page | 包含潜在客户资料的页码。每页最多显示 20 个资料。 |
positions | 用于筛选结果的职位信息。 |
result | 用于接收潜在客户资料的请求 URL。 |
| GET | https://api.snov.io/v2/domain-search/prospects/result/{task_hash} |
<?php function prospectsResult() { $token = getAccessToken(); $task_hash = '3384369c16aad810f58609a40ad65089'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/prospects/result/$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def prospects_result(): token = get_access_token() task_hash = '3384369c16aad810f58609a40ad65089' headers = {'authorization': f'Bearer {token}'} res = requests.get(f'https://api.snov.io/v2/domain-search/prospects/result/{task_hash}', headers=headers) return json.loads(res.text)
{
"data": [
{
"first_name": "John",
"last_name": "Doe",
"position": "Web developer",
"source_page": "https://www.linkedin.com/in/john-doe/",
"search_emails_start": "https://api.snov.io/v2/domain-search/prospects/search-emails/start/41627edbfff8ba9c0819a1aa51d232baf3fa1763e5813dc86e027ccbbefd7a16b0522391086776b8764c94d02bab1257df392"
}
],
"meta": {
"domain": "snov.io",
"tab": "prospects",
"task_hash": "3384369c16aad810f58609a40ad65089",
"page": 1,
"positions": [
"Web developer",
"QA Engineer"
],
"total_count": 18
},
"links": {
"next": ""
},
"status": "completed"
}
first_name | 潜在客户的名字。 |
last_name | 潜在客户的姓氏。 |
position | 潜在客户的职位。 |
source_page | 检索到的个人数据的源页面。 |
search_emails_start | 用于您下一次搜索潜在客户邮箱地址的请求 URL。 |
domain | 您正在检索潜在客户资料的域名。 |
tab | 显示您获得的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动搜索任务的唯一 ID。 |
page | 包含潜在客户资料的页码。每页最多显示 20 个资料。 |
positions | 用于筛选结果的职位信息。 |
total_count | 找到的潜在客户资料总数。 |
next | 用于您检索下一页结果的请求 URL。每页最多包含 20 个潜在客户。 |
status | 请求状态。可以是已完成或进行中。 |
| POST | https://api.snov.io/v2/domain-search/prospects/search-emails/start/{prospect_hash} |
<?php function searchProspectEmailsStart() { $token = getAccessToken(); $headers = [ 'Authorization: Bearer ' . $token, ]; $task = '41627edbfff8ba9c0819a1aa51d232baf3fa1763e5813dc86e027ccbbefd7a16b0522391086776b8764c94d02bab1257df392'; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/prospects/search-emails/start/$task', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def search_prospect_emails_start(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} res = requests.post(f'https://api.snov.io/v2/domain-search/prospects/search-emails/start/' f'a811d72df2e52bd447621c4a1326e540102f3b70ba39a81bd597020ed0b9f812ee8de7e0f4ecad312716d03576fdf0af6d8277e1', headers=headers) return json.loads(res.text)
{
"data": [],
"meta": {
"task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
},
"links": {
"result": "https://api.snov.io/v2/domain-search/prospects/search-emails/result/5e846a1d80d95f66cfb30250a7c1881f"
}
}
task_hash | 您启动搜索任务的唯一 ID。 |
result | 用于您下次请求检索潜在客户邮箱地址的 URL。 |
| GET | https://api.snov.io/v2/domain-search/prospects/search-emails/result/{task_hash} |
<?php function searchProspectEmailsResult() { $token = getAccessToken(); $task_hash = '5e846a1d80d95f66cfb30250a7c1881f'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/prospects/search-emails/result/$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def search_prospect_emails_result(): token = get_access_token() task_hash = '7f1df5bd8bca6f66e38dad0ffb30ba4c' headers = {'authorization': f'Bearer {token}'} res = requests.get(f'https://api.snov.io/v2/domain-search/prospects/search-emails/result/{task_hash}', headers=headers) return json.loads(res.text)
{
"data": {
"searching_date": "2025-01-01 11:11:11",
"emails": [
{
"email": "example@snov.io",
"smtp_status": "valid"
}
]
},
"meta": {
"task_hash": "5e846a1d80d95f66cfb30250a7c1881f"
},
"links": [],
"status": "completed"
}
searching_date | 搜索邮箱地址的日期。 |
emails | 潜在客户邮箱地址。 |
smtp_status | 可返回有效或未知 (又称无法验证)。您可以在此处了解有关邮箱地址状态的更多信息。 |
task_hash | 您启动搜索任务的唯一 ID。 |
status | 请求状态。可以是已完成或进行中。 |
| POST | https://api.snov.io/v2/domain-search/domain-emails/start |
domain | 您要查找其域名邮箱地址的公司域名。例如,“snov.io”。 |
<?php function domainEmailsSearch() { $token = getAccessToken(); $params = [ 'domain' => 'snov.io', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/domain-emails/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def domain_emails_search(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'domain': 'snov.io' } res = requests.post('https://api.snov.io/v2/domain-search/domain-emails/start', params=params, headers=headers) return json.loads(res.text)
{
"data": [],
"meta": {
"domain": "snov.io",
"tab": "emails",
"task_hash": "36fce9ac2667a827f6c5ab954e288bed",
"next": ""
},
"links": {
"result": "https://api.snov.io/v2/domain-search/domain-emails/result/36fce9ac2667a827f6c5ab954e288bed"
}
}
domain | 您正在检索邮箱地址的域名。 |
tab | 显示您请求的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动的搜索任务的唯一 ID。它会自动添加到您的下一次请求 URL 中,以便接收结果。 |
next | 下一个页面请求的 ID (如果有的话)。如果没有更多页面可用,则此字段将为空。 |
result | 用于接收域名邮箱地址的请求 URL。 |
| GET | https://api.snov.io/v2/domain-search/domain-emails/result/{task_hash} |
<?php function domainEmailsResult() { $token = getAccessToken(); $task_hash = '36fce9ac2667a827f6c5ab954e288bed'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/domain-emails/result/$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def domain_emails_result(): token = get_access_token() task_hash = '36fce9ac2667a827f6c5ab954e288bed' headers = {'authorization': f'Bearer {token}'} res = requests.get(f'https://api.snov.io/v2/domain-search/domain-emails/result/{task_hash}', headers=headers) return json.loads(res.text)
{
"data": [
{
"email": "admin@snov.io"
},
{
"email": "help@snov.io"
}
],
"meta": {
"domain": "snov.io",
"tab": "emails",
"task_hash": "36fce9ac2667a827f6c5ab954e288bed",
"next": "4ae6ca51c056c584db03c618dfe80dedb82ec37ab4667fa189386c82288a7422e8f4ab1010d84a13f2728d8f1b12b2ff139e3cb81108dc48",
"total_count": 108
},
"links": {
"next": "https://api.snov.io/v2/domain-search/domain-emails/start?domain=snov.io&next=4ae6ca51c056c584db03c618dfe80dedb82ec37ab4667fa189386c82288a7422e8f4ab1010d84a13f2728d8f1b12b2ff139e3cb81108dc48"
},
"status": "completed"
}
email | 域名邮箱地址: 请注意,这些邮箱地址未经验证。要验证它们,请使用邮箱地址验证工具。 |
domain | 您正在检索邮箱地址的域名。 |
tab | 显示您获得的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动搜索任务的唯一 ID。 |
next | 将 ID 添加到请求 URL 中,以便访问下一页邮箱地址 (如果存在的话)。 |
total_count | 找到的域名邮箱地址总数。 |
next | 用于检索下一页结果(如果存在)的请求 URL。每页最多包含 50 个邮箱地址。 |
status | 请求状态。可以是已完成或进行中。 |
| POST | https://api.snov.io/v2/domain-search/generic-contacts/start |
domain | 您要查找通用邮箱地址的公司域名。例如,“snov.io”。 |
<?php function genericContactsSearch() { $token = getAccessToken(); $params = [ 'domain' => 'snov.io', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/generic-contacts/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def generic_contacts_search(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'domain': 'snov.io' } res = requests.post('https://api.snov.io/v2/domain-search/generic-contacts/start', params=params, headers=headers) return json.loads(res.text)
{
"data": [],
"meta": {
"domain": "snov.io",
"tab": "service",
"task_hash": "0e36e43b9b91a9b20d14b82c1ee141f2",
"next": ""
},
"links": {
"result": "https://api.snov.io/v2/domain-search/generic-contacts/result/0e36e43b9b91a9b20d14b82c1ee141f2"
}
}
domain | 您正在检索通用邮箱地址的域名。 |
tab | 显示您请求的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动的搜索任务的唯一 ID。它会自动添加到您的下一次请求 URL 中,以便接收结果。 |
next | 下一个页面请求的 ID (如果有的话)。如果没有更多页面可用,则此字段将为空。 |
result | 用于接收通用邮箱地址的请求 URL。 |
| GET | https://api.snov.io/v2/domain-search/generic-contacts/result/{task_hash} |
<?php function genericContactsResult() { $token = getAccessToken(); $task_hash = '0e36e43b9b91a9b20d14b82c1ee141f2'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/domain-search/generic-contacts/result/$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def generic_contacts_result(): token = get_access_token() task_hash = '0e36e43b9b91a9b20d14b82c1ee141f2' headers = {'authorization': f'Bearer {token}'} res = requests.get(f'https://api.snov.io/v2/domain-search/generic-contacts/result/{task_hash}', headers=headers) return json.loads(res.text)
{
"data": [
{
"email": "orders@snov.io"
},
{
"email": "sales@snov.io"
}
],
"meta": {
"domain": "snov.io",
"tab": "service",
"task_hash": "0e36e43b9b91a9b20d14b82c1ee141f2",
"next": "",
"total_count": 9
},
"links": {
"next": ""
},
"status": "completed"
}
email | 通用联系人的邮箱地址: 请注意,这些邮箱地址未经验证。要验证它们,请使用邮箱地址验证工具。 |
domain | 您正在检索通用邮箱地址的域名。 |
tab | 显示您获得的结果类型。 prospects表示您正在查找潜在客户资料。 emails显示域名邮箱地址。 service显示您正在获取通用邮箱地址。 |
task_hash | 您启动搜索任务的唯一 ID。 |
next | 将 ID 添加到请求 URL 中,以便访问下一页邮箱地址 (如果存在的话)。 |
total_count | 在该域名下找到的通用邮箱地址总数。 |
next | 用于检索下一页结果(如果存在)的请求 URL。每页最多包含 50 个邮箱地址。 |
status | 请求状态。可以是已完成或进行中。 |
POST检查可用邮箱数量
免费使用此 API 方法,您可以在我们的数据库中了解来自某个域名的邮箱地址数量。它完全免费,因此您不需要任何信用点数!
| POST | https://api.snov.io/v1/get-domain-emails-count |
domain | 您想知道我们数据库中邮箱地址数量的域名的名称。 |
<?php function getEmailCount() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'domain' => 'octagon.com', ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-domain-emails-count', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def get_email_count(): token = get_access_token() params = {'access_token':token, 'domain':'octagon.com' } res = requests.post('https://api.snov.io/v1/get-domain-emails-count', data=params) return json.loads(res.text)
| { | ||||
| ||||
| } |
domain | 您想知道我们数据库中邮箱地址数量的域名的名称。 |
webmail | 是 true 如果您正在搜索的域名是webmail。 |
result | 我们已找到该域的电子邮箱地址总数。我们无法提供网络邮件域的结果,因此网络邮件的结果将始终是 0
. |
POST根据姓名和域名查找邮箱
每个有效或未知状态的邮箱地址均需消耗 1 个点数。输入潜在客户的姓名和公司域名,Snov.io 将返回其经过验证的邮箱地址。
| POST | https://api.snov.io/v2/emails-by-domain-by-name/start |
发送此请求的最简单方法是通过原始 JSON 主体。如果您更喜欢使用参数,这里有一个示例
rows | 包含潜在客户详细信息(名字、姓氏和域名)的对象数组。 每个请求最多可以包含 10 个对象。 |
first_name | 潜在客户的名字。 |
last_name | 潜在客户的姓氏。 |
domain | 潜在客户所在公司的域名。 |
webhook_url | 输入您的 Webhook URL,以便即时接收结果,而无需查询任务队列(不依赖 hash task)。 |
<?php function emailsByDomainByNameSearch() { $token = getAccessToken(); $headers = [ 'Authorization: Bearer ' . $token, ]; $params = [ 'rows' => [ [ 'first_name' => 'John', 'last_name' => 'Doe', 'domain' => 'yourdomain.com', ], [ 'first_name' => 'John', 'last_name' => 'Doe', 'domain' => 'yourdomain.com', ] ], 'webhook_url' => 'https://hooks.yourdomain.com', ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/emails-by-domain-by-name/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($params), CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def emails_by_domain_by_name_search(): token = get_access_token() headers = { 'authorization': f'Bearer {token}', 'Content-Type': 'application/json' } payload = json.dumps({ 'rows': [ { 'first_name': 'John', 'last_name': 'Doe', 'domain': 'yourdomain.com' }, { 'first_name': 'Jane', 'last_name': 'Doe', 'domain': 'yourdomain.com' }, ], 'webhook_url': 'https://hooks.yourdomain.com' }) res = requests.post('https://api.snov.io/v2/emails-by-domain-by-name/start', data=payload, headers=headers) return json.loads(res.text)
{
"data": {
"task_hash": "005ffad65aad581943cf65a45112ca7a"
},
"meta": {
"rows": [
{
"first_name": "John",
"last_name": "Doe",
"domain": "yourdomain.com"
},
{
"first_name": "Jane",
"last_name": "Doe",
"domain": "yourdomain.com"
}
]
}
}
task_hash | 您启动搜索任务的唯一 ID。 |
first_name | 潜在客户的名字。 |
last_name | 潜在客户的姓氏。 |
domain | 潜在客户所在公司的域名。 |
| GET | https://api.snov.io/v2/emails-by-domain-by-name/result |
task_hash | 您从上一个请求中收到的唯一请求 ID。 |
<?php function emailsByDomainByNameResult() { $token = getAccessToken(); $task_hash = '475d03ac6f98c124349b0f2efb506702'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/emails-by-domain-by-name/result?task_hash=$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def emails_by_domain_by_name_result(): token = get_access_token() task_hash = '0d0c862099b22bdf300b8c8e67754e49' headers = {'authorization': f'Bearer {token}'} params = {'task_hash': task_hash} res = requests.get(f'https://api.snov.io/v2/emails-by-domain-by-name/result', params=params, headers=headers) return json.loads(res.text)
{
"status": "completed",
"data": [
{
"people": "John Doe",
"result": [
{
"email": "john.doe@yourdomain.com",
"smtp_status": "valid",
"is_valid_format": true,
"is_disposable": false,
"is_webmail": false,
"is_gibberish": false
}
]
},
{
"people": "Jane Doe",
"result": [
{
"email": "jane.doe@yourdomain.com",
"smtp_status": "unknown",
"is_valid_format": true,
"is_disposable": false,
"is_webmail": false,
"is_gibberish": false,
"unknown_status_reason": "catchall"
}
]
}
],
"meta": {
"rows": [
{
"domain": "yourdomain.com",
"last_name": "Doe",
"first_name": "John"
},
{
"domain": "yourdomain.com",
"last_name": "Doe",
"first_name": "Jane"
}
],
"task_hash": "af50fb238757ad092ad6e57e130b0dea"
}
}
status | 请求的状态。可能是completed或in_progress。 如果用于搜索的账户没有足够的点数,您可能会收到 not_enough_credits 状态。 |
people | 潜在客户的全名。 |
email | 潜在客户的邮箱地址。 |
smtp_status | 可能会返回 valid 或 unknown(即无法验证)。 要了解未知状态的原因,请检查unknown_status_reason参数。 |
is_valid_format | 显示邮箱格式是否有效。可能的值为 false 或 true。 |
is_disposable | 指示邮箱是否为临时或一次性,返回值为false或true。 |
is_webmail | 如果返回值为true,则表示您正在搜索的邮箱是 Webmail。 |
is_gibberish | 显示所提供的邮箱地址是否包含随机或无意义的字符。可能返回的值为 false 或 true。 |
unknown_status_reason | 如果经过验证的邮箱具有未知的 smtp_status,您可以在此找到更详细的原因。 Banned:高送达风险 —— 此邮箱地址无法 100% 确认其有效性。 Catchall:发件人声誉风险 —— 该邮箱为全接收邮箱。 Connection_error:可能存在退信风险 —— 收件方存在技术问题。 Greylist: 送达风险 —— 该邮件服务器使用灰名单过滤器。 |
domain | 潜在客户所在公司的域名。 |
first_name | 潜在客户的名字。 |
last_name | 潜在客户的姓氏。 |
task_hash | 此搜索任务的唯一 ID。 |
POST根据公司名称查找域名
每找到 1 个域名地址需消耗 1 个点数输入公司名称,Snov.io 将返回其域名地址。
| POST | https://api.snov.io/v2/company-domain-by-name/start |
names[] | 您希望获取域名的公司名称数组。 要检索多个公司的域名,请将每个公司作为单独参数添加。例如: names[] | Snov.io names[] | Sendpulse 您最多可以同时提供 10 个公司名称。 |
webhook_url | 输入您的 Webhook URL,以便即时接收结果,而无需查询任务队列(不依赖 hash task)。 |
<?php function companyDomainByNameStart() { $token = getAccessToken(); $params = [ 'names' => ['Snov.io','SendPulse'], 'webhook_url' => 'https://hooks.yourdomain.com', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/company-domain-by-name/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($params), CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def company_domain_by_name_start(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'webhook_url': 'https://hooks.yourdomain.com', 'names[]': ['Snov.io', 'Sendpulse'] } res = requests.post('https://api.snov.io/v2/company-domain-by-name/start', params=params, headers=headers) return json.loads(res.text)
{
"data": {
"task_hash": "959c0f60facb8629bba746e091a26f7b"
},
"meta": {
"names": [
"Snov.io",
"Sendpulse"
]
}
}
task_hash | 您启动搜索任务的唯一 ID。 |
names | 您提供的公司名称数组。 |
| GET | https://api.snov.io/v2/company-domain-by-name/result?task_hash={hash_from_1} |
task_hash | 您从上一个请求中收到的唯一请求 ID。 |
<?php function companyDomainByNameResult() { $token = getAccessToken(); $task_hash = '48c156a785cfc1f3b0edab2cc28b3774'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/company-domain-by-name/result?task_hash=$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def company_domain_by_name_result(): token = get_access_token() task_hash = '959c0f60facb8629bba746e091a26f7b' headers = {'authorization': f'Bearer {token}'} params = { 'task_hash': task_hash } res = requests.get(f'https://api.snov.io/v2/company-domain-by-name/result', params=params, headers=headers) return json.loads(res.text)
{
"status": "completed",
"data": [
{
"name": "Snov.io",
"result": {
"domain": "snov.io"
}
},
{
"name": "Sendpulse",
"result": {
"domain": "sendpulse.com"
}
}
],
"meta": {
"names": [
"Snov.io",
"Sendpulse"
],
"task_hash": "959c0f60facb8629bba746e091a26f7b"
}
}
status | 请求的状态。可能是completed或in_progress。 |
name | 您请求域名地址的公司名称。 |
domain | 公司域名。 |
names | 您提供的公司名称数组。 |
task_hash | 此搜索任务的唯一 ID。 |
POST从 URL 获取领英个人资料信息
每提供 1 个潜在客户的个人资料信息需消耗 1 个点数输入领英会员的 URL,Snov.io 将检索其完整的个人资料信息。
| POST | https://api.snov.io/v2/li-profiles-by-urls/start |
urls[] | 您希望获取完整个人资料信息的领英个人资料 URL 数组。 要同时检索多个领英会员的个人资料信息,请将每个 URL 作为单独的参数添加。 您最多可以同时提供 10 个领英 URL。 |
webhook_url | 输入您的 Webhook URL,以便即时接收结果,而无需查询任务队列(不依赖 hash task)。 |
<?php function linkedInProfilesByUrlsStart() { $token = getAccessToken(); $params = [ 'urls' => ['https://www.linkedin.com/in/oleksii-kratko-6a0544187/','https://www.linkedin.com/in/atahualpamaia/'], 'webhook_url' => 'https://hooks.yourdomain.com', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/li-profiles-by-urls/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($params), CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def linkedin_profiles_by_urls_start(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'urls[]': ['https://www.linkedin.com/in/atahualpamaia/', 'https://www.linkedin.com/in/oleksii-kratko-6a0544187/'], 'webhook_url': 'https://hooks.yourdomain.com', } res = requests.post('https://api.snov.io/v2/li-profiles-by-urls/start', params=params, headers=headers) return json.loads(res.text)
{
"data": {
"task_hash": "ef005a4f6d82e7e88384de7c72ee198d"
},
"meta": {
"urls": [
"https://www.linkedin.com/in/john-doe-32a416248/",
"https://www.linkedin.com/in/john-doe-04bb56b1/",
"https://www.linkedin.com/in/john-jungwoo-do/"
]
}
}
task_hash | 您启动搜索任务的唯一 ID。 |
urls | 您正在请求信息的个人资料 URL。 |
| GET | https://api.snov.io/v2/li-profiles-by-urls/result |
task_hash | 您从上一个请求中收到的唯一请求 ID。 |
<?php function linkedInProfilesByUrlsResult() { $token = getAccessToken(); $task_hash = 'ef005a4f6d82e7e88384de7c72ee198d'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/li-profiles-by-urls/result?task_hash=$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def linkedin_profiles_by_urls_result(): token = get_access_token() task_hash = '879788bd889b0b9aa447278ce184e2ad' headers = {'authorization': f'Bearer {token}'} params = { 'task_hash': task_hash } res = requests.get(f'https://api.snov.io/v2/li-profiles-by-urls/result', params=params, headers=headers) return json.loads(res.text)
{
"status": "completed",
"data": [
{
"url": "https://www.linkedin.com/in/john-doe-32a416248/",
"result": {
"name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"industry": "Internet",
"location": "Chicago, Illinois, United States",
"country": "United States",
"positions": [
{
"name": "Stealth Startup",
"title": "CEO",
"linkedin_url": "https://www.linkedin.com/company/18583501",
"url": "https://www.linkedin.com/in/ruhbirsingh/",
"industry": "Computer Software",
"country": "India",
"location": "Gurugram, Haryana, India"
},
{
"name": "TikTok",
"title": "Influencer",
"linkedin_url": "https://www.linkedin.com/company/33246798",
"url": "https://www.tiktok.com/about?lang=en",
"industry": "Entertainment",
"country": "United States",
"location": "Los Angeles, California, United States"
}
]
}
},
{
"url": "https://www.linkedin.com/in/john-doe-04bb56b1/",
"result": []
},
{
"url": "https://www.linkedin.com/in/john-jungwoo-do/",
"result": {
"name": "John Do",
"first_name": "John",
"last_name": "Do",
"location": "Vancouver, British Columbia, Canada",
"country": "Canada",
"skills": [
"communication",
"java"
],
"positions": [
{
"name": "UBC Electrical and Computer Engineering",
"title": "Undergraduate Research Assistant",
"linkedin_url": "https://www.linkedin.com/company/15134449",
"url": "http://www.ece.ubc.ca",
"industry": "Higher Education",
"country": "Canada",
"location": "Vancouver, British Columbia, Canada"
},
{
"name": "The University of British Columbia",
"title": "Undergraduate Teaching Assistant",
"linkedin_url": "https://www.linkedin.com/company/4373",
"url": "http://www.ubc.ca",
"industry": "Higher Education",
"country": "Canada",
"location": "Vancouver, British Columbia, Canada",
"specializations": [
"Aboriginal Engagement",
"Alumni Engagement",
"Community Engagement",
"Intercultural Understanding",
"International Engagement",
"Outstanding Work Environment",
"Research Excellence",
"Student Learning",
"sustainability"
]
}
]
}
},
{
"url": "https://www.linkedin.com/in/john-doe-474006162/",
"result": []
}
],
"meta": {
"urls": [
"https://www.linkedin.com/in/john-doe-32a416248/",
"https://www.linkedin.com/in/john-doe-04bb56b1/",
"https://www.linkedin.com/in/john-jungwoo-do/",
"https://www.linkedin.com/in/john-doe-474006162/"
],
"task_hash": "8a60c72133d0ea94767e4a978355c630"
}
}
status | 请求的状态。可能是completed或in_progress。 |
url | 领英个人资料的 URL。 |
name | 潜在客户的全名。 |
first_name | 潜在客户的名字。 |
last_name | 潜在客户的姓氏。 |
industry | 潜在客户的工作领域。 |
location | 潜在客户的位置。 |
country | 根据领英个人资料显示的潜在客户所在国家/地区。 |
skills | 潜在客户的技能。 |
positions | 潜在客户当前担任的职位数组。 |
name | 潜在客户所在公司的名称。 |
title | 潜在客户的职位。 |
linkedin_url | 公司领英页面的链接。 |
url | 公司的网站地址。 |
industry | 公司所在行业。 |
country | 公司总部所在的国家/地区。 |
location | 公司的位置。 |
specializations | 公司的专业或重点领域。 |
urls | 您提供的领英个人资料 URL 数组。 |
task_hash | 此搜索任务的唯一 ID。 |
POST通过邮箱地址丰富个人资料
每个请求 1 个信用点数提供一个邮箱地址,Snov.io 将从数据库中返回连接到提供的邮箱地址所有者的所有配置文件信息。
如果我们在数据库中找不到有关邮箱地址所有者的信息,则不会向您收取该请求的费用。
| POST | https://api.snov.io/v1/get-profile-by-email |
email | 您想要查找其他信息的人的邮箱地址。 |
<?php function getProfileByEmail() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-profile-by-email', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def get_profile_by_email(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com' } res = requests.post('https://api.snov.io/v1/get-profile-by-email', data=params) return json.loads(res.text)
{
"success": true,
"id": 301592,
"source": "linkedIn",
"name": "Lizi Hamer",
"firstName": "Lizi",
"lastName": "Hamer",
"logo": "https://app.snov.io/img/peoples/010fcf23c70dfa68d880545ec89a9215.jpg",
"industry": null,
"country": "Singapore",
"locality": "Singapore",
"social": [
{
"link": "https://www.linkedin.com/in/lizihamer/",
"type": "linkedIn"
},
{
"link": "https://twitter.com/LiziHamer",
"type": "twitter"
}
],
"currentJobs": [
{
"companyName": "Octagon",
"position": "Regional Creative Director",
"socialLink": "https://www.linkedin.com/company/165282",
"site": "www.octagon.com",
"locality": "Greater New York City Area",
"state": "Connecticut",
"city": "Stamford",
"street": "290 Harbor Dr",
"street2": "2nd Floor",
"postal": "06902",
"founded": "1983",
"startDate": "2016-01-31",
"endDate": null,
"size": "1-10",
"industry": "Marketing and Advertising",
"companyType": "Public Company",
"country": "United States"
},
{
"companyName": "SisuGirls",
"position": "Co Founder",
"socialLink": "https://www.linkedin.com/company/3841118",
"site": "http://www.sisugirls.org",
"locality": null,
"state": "SG",
"city": "Singapore",
"street": "33-03 Hong Leong Building",
"street2": null,
"postal": null,
"founded": "2014",
"startDate": "2015-07-31",
"endDate": null,
"size": "1-10",
"industry": "Health, Wellness and Fitness",
"companyType": null,
"country": "Singapore"
}
],
"previousJobs": [
{
"companyName": "Fusion Co-innovation Labs",
"position": "Creative Entrepreneur",
"socialLink": null,
"site": null,
"locality": null,
"state": null,
"city": null,
"street": null,
"street2": null,
"postal": null,
"founded": null,
"startDate": "2013-05-31",
"endDate": "2013-10-31",
"size": null,
"industry": null,
"companyType": null,
"country": null
},
{
"companyName": "Russell Commission",
"position": "Youth Advisory Board Member",
"socialLink": null,
"site": null,
"locality": null,
"state": null,
"city": null,
"street": null,
"street2": null,
"postal": null,
"founded": null,
"startDate": "2004-06-30",
"endDate": "2006-06-30",
"size": null,
"industry": null,
"companyType": null,
"country": null
}
],
"lastUpdateDate": "2018-02-07 10:12:28"
}id | 唯一的配置文件标识符。 |
source | 检索到的个人数据的来源。 |
name | 邮箱地址所有者的全名。 |
firstName | 此人的名字。 |
lastName | 此人的姓氏。 |
logo | 此人的资料照片。 |
industry | 来源中显示的此人所在行业。 |
country | 来源中显示的此人所在国家/地区。 |
locality | 来源中显示的此人所在地点。 |
social | 到此人社交资料链接。 |
currentJobs | 包含有关此人当前工作职位信息的数组。 |
previousJobs | 一个包含有关此人以前工作职位信息的数组。 |
lastUpdateDate | 数据库中最后一份资料的更新日期。 |
POST邮箱地址验证工具
输入邮箱地址,Snov.io 将运行完整的验证检查。您最多可以同时验证 10 个邮箱地址。提供邮箱地址
| POST | https://api.snov.io/v2/email-verification/start |
emails[] | 您要验证的邮箱地址。 要同时验证多个邮箱地址,请将每个邮箱地址作为单独参数添加。例如: emails[] | help@snov.io emails[] | partnerships@snov.io 您最多可以同时验证10 个邮箱地址。 |
webhook_url | 输入您的 Webhook URL,以便即时接收结果,而无需查询任务队列(不依赖 hash task)。 |
<?php function emailVerificationStart() { $token = getAccessToken(); $params = [ 'emails' => ['gavin.vanrooyen@octagon.com','lizi.hamer@octagon.com','admin@snov.io','test@snov.io','ivalid_format_snov.io'], 'webhook_url' => 'https://hooks.yourdomain.com', ]; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/email-verification/start', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($params), CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def email_verification_start(): token = get_access_token() headers = {'authorization': f'Bearer {token}'} params = { 'emails[]': ['gavin.vanrooyen@octagon.com', 'lizi.hamer@octagon.com', 'admin@snov.io', 'test@snov.io', 'ivalid_format_snov.io'], 'webhook_url': 'https://hooks.yourdomain.com', } res = requests.post('https://api.snov.io/v2/email-verification/start', params=params, headers=headers) return json.loads(res.text)
{
"data": {
"task_hash": "0110437df6811068197577a538849a4b"
},
"meta": {
"emails": [
"gavin.vanrooyen@octagon.com",
"lizi.hamer@octagon.com",
"admin@snov.io",
"test@snov.io",
"ivalid_format_snov.io"
]
}
}
task_hash | 您启动搜索任务的唯一 ID。 |
emails | 您提供的用于验证的邮箱地址数组。 |
| GET | https://api.snov.io/v2/email-verification/result |
task_hash | 您从上一个请求中收到的唯一请求 ID。 |
<?php function emailVerificationResult() { $token = getAccessToken(); $task_hash = '0110437df6811068197577a538849a4b'; $headers = [ 'Authorization: Bearer ' . $token, ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v2/email-verification/result?task_hash=$task_hash', CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); curl_close($ch); return $response; } ?>
def email_verification_result(): token = get_access_token() task_hash = 'b55b28d5419a1c3ec310f21916e4e271' headers = {'authorization': f'Bearer {token}'} params = { 'task_hash': task_hash } res = requests.get(f'https://api.snov.io/v2/email-verification/result', params=params, headers=headers) return json.loads(res.text)
{
"status": "completed",
"data": [
{
"email": "gavin.vanrooyen@octagon.com",
"result": {
"is_webmail": false,
"smtp_status": "unknown",
"is_gibberish": false,
"is_disposable": false,
"is_valid_format": true,
"unknown_status_reason": "catchall"
}
},
{
"email": "admin@snov.io",
"result": {
"is_webmail": false,
"smtp_status": "valid",
"is_gibberish": false,
"is_disposable": false,
"is_valid_format": true
}
},
{
"email": "ivalid_format_snov.io",
"result": {
"is_webmail": false,
"smtp_status": "not_valid",
"is_gibberish": false,
"is_disposable": false,
"is_valid_format": false
}
},
{
"email": "lizi.hamer@octagon.com",
"result": {
"is_webmail": false,
"smtp_status": "unknown",
"is_gibberish": false,
"is_disposable": false,
"is_valid_format": true,
"unknown_status_reason": "catchall"
}
},
{
"email": "test@snov.io",
"result": {
"smtp_status": "unknown",
"is_valid_format": true,
"is_disposable": false,
"is_webmail": false,
"is_gibberish": true,
"unknown_status_reason": "banned"
}
}
],
"meta": {
"emails": [
"gavin.vanrooyen@octagon.com",
"lizi.hamer@octagon.com",
"admin@snov.io",
"test@snov.io",
"ivalid_format_snov.io"
],
"task_hash": "0110437df6811068197577a538849a4b"
}
}
status | 请求的状态。可能是completed或in_progress。 |
email | 您正在验证的电子邮箱地址。 |
smtp_status | 可能返回valid、not_valid或unknown(即无法验证)。 要了解未知状态的原因,请检查unknown_status_reason参数。 |
is_valid_format | 显示邮箱格式是否有效。可能的值为 false 或 true。 |
is_disposable | 指示邮箱是否为临时或一次性,返回值为false或true。 |
is_webmail | 如果返回值为true,则表示您正在搜索的邮箱是 Webmail。 |
is_gibberish | 显示所提供的邮箱地址是否包含随机或无意义的字符。可能返回的值为 false 或 true。 |
unknown_status_reason | 如果经过验证的邮箱具有未知的 smtp_status,您可以在此找到更详细的原因。 Banned:高送达风险 —— 此邮箱地址无法 100% 确认其有效性。 Catchall:发件人声誉风险 —— 该邮箱为全接收邮箱。 Connection_error:可能存在退信风险 —— 收件方存在技术问题。 Greylist: 送达风险 —— 该邮件服务器使用灰名单过滤器。 Hidden_by_owner: 邮箱所有者或拥有该域名的公司要求其从 Snov.io 结果中删除。 |
emails | 您正在验证的邮箱数组。 |
task_hash | 该验证任务的唯一请求 ID。 |
GET获取营销分析
免费此方法根据应用的筛选条件显示营销统计信息。
| GET | https://api.snov.io/v2/statistics/campaign-analytics |
campaign_id | 营销 ID。在查看营销信息时,您可以在 URL 中找到该 ID (示例).
如果将此字段留空,系统将提供在指定时间段内所有活动营销的数据。 要获取多个营销的数据,请用逗号分隔 ID。 |
sender_email | 邮箱发件人账户 ID。在查看或编辑邮箱账户信息时,您可以在 URL 中找到该 ID (示例).
要查看多个邮箱账户的分析,请用逗号分隔 ID。 或者,如果您不想应用邮箱账户筛选器,可以将此参数留空。 |
sender_linkedin | 领英发件人账户 ID。在查看或编辑领英账户信息时,您可以在 URL 中找到该 ID。要查看多个账户的分析,请用逗号分隔 ID。 如果不想应用领英账户筛选器,可以将此参数留空。 |
campaign_owner | 要查看特定团队成员的营销数据,请输入其邮箱地址。要按多个营销所有者进行过滤,请列出用逗号 (无空格) 分隔的邮箱地址。 示例:example1@gmail.com,example2@gmail.com 请注意,要使用此筛选条件,您的账户必须启用“查看团队记录 ”权限,并且您需要使用 Pro 套餐或更高级别的套餐。 |
date_from | 您希望接收统计信息的时间段的开始日期。格式:yyyy-mm-dd。留空表示接收所有时间段的统计信息。 |
date_to | 您希望接收统计信息的时间段的结束日期。格式:yyyy-mm-dd。留空表示接收所有时间段的统计信息。 |
<?php
function getCampaignAnalytics()
{
$token = getAccessToken();
$campaignIds = [1, 2];
$senderEmailIds = [21, 22];
$senderLinkedInIds = [31, 32, 33];
$ownerEmails = ['owner1@email.loc', 'owner2@email.loc'];
$params = [
'access_token' => $token,
'campaign_id' => implode(',', $campaignIds),
'sender_email' => implode(',', $senderEmailIds),
'sender_linkedin' => implode(',', $senderLinkedInIds),
'campaign_owner' => implode(',', $ownerEmails),
'date_from' => '2024-06-15',
'date_to' => '2024-09-15',
];
$params = http_build_query($params);
$options = [
CURLOPT_URL => 'https://api.snov.io/v2/statistics/campaign-analytics?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true
];
$ch = curl_init();
curl_setopt_array($ch, $options);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
return $res;
}
?>
def get_campaign_analytics():
token = get_access_token()
campaign_ids = [1, 2]
sender_email_ids = [21, 22]
sender_linkedin_ids = [31, 32, 33]
owner_emails = ['owner1@email.loc', 'owner2@email.loc']
params = {
'access_token': token,
'campaign_id': ','.join(map(str, campaign_ids)),
'sender_email': ','.join(map(str, sender_email_ids)),
'sender_linkedin': ','.join(map(str, sender_linkedin_ids)),
'campaign_owner': ','.join(owner_emails),
'date_from': '2024-06-15',
'date_to': '2024-09-15',
}
res = requests.get('https://api.snov.io/v2/statistics/campaign-analytics', params=params)
return json.loads(res.text)
{
"total_contacted": 32,
"emails_sent": 31,
"first_emails": 24,
"first_emails_rate": "77%",
"follow_ups": 7,
"follow_ups_rate": "23%",
"delivered": 30,
"delivered_rate": "97%",
"bounced": 1,
"bounced_rate": "3%",
"contacted_by_email": 23,
"email_opens": 16,
"email_opens_rate": "70%",
"link_clicks": 0,
"link_clicks_rate": "0%",
"email_replies": 16,
"email_replies_rate": "70%",
"unsubscribed": 0,
"unsubscribed_rate": "0%",
"auto_replied": 0,
"auto_replied_rate": "0%",
"contacted_by_linkedin": 10,
"linkedin_total_replies": 9,
"linkedin_total_replies_rate": "90%",
"connection_request_replies": 2,
"connection_request_replies_rate": "22%",
"message_replies": 7,
"message_replies_rate": "78%",
"in_mail_replies": 0,
"in_mail_replies_rate": "0%",
"connection_requests": 2,
"accepted_requests": 2,
"accepted_requests_rate": "100%",
"failed_connection_requests": 0,
"messages_sent": 9,
"linkedin_views": 9,
"linkedin_likes": 0,
"linkedin_follows": 0,
"in_mail_sent": 0,
"interested": 8,
"interested_rate": "32%",
"maybe": 8,
"maybe_rate": "32%",
"not_interested": 4,
"not_interested_rate": "16%"
}
total_contacted | 通过邮件或领英 (连接请求、消息或站内信) 联系的收件人总数。 |
emails_sent | 通过营销发送的邮件总数。 请注意,这不包括在营销之外发送的邮件。 |
first_emails | 在指定时间段内发送的营销邮件序列中的首封邮件的数量。 |
first_emails_rate | 首封邮件占已发送邮件总数的百分比。 |
follow_ups | 在指定时间段内发送的营销邮件序列中的跟进邮件的数量。 |
follow_ups_rate | 跟进邮件占已发送邮件总数的百分比。 |
delivered | 未退回的已发送邮件的数量。 |
delivered_rate | 未退回邮件占已发送邮件总数的百分比。 |
bounced | 退回的邮件数量。 |
bounced_rate | 退回邮件占已发送邮件总数的百分比。 |
contacted_by_email | 至少收到一封未被退回的邮件的收件人数量。 |
email_opens | 至少打开过一次邮件的收件人数量。 |
email_opens_rate | 在所有联系的收件人中,至少打开过您的邮件一次的收件人百分比。 |
link_clicks | 在您的营销中至少点击过一个链接的收件人数量。 |
link_clicks_rate | 在所有联系的收件人中,至少点击过营销中一个链接的收件人百分比。 |
email_replies | 至少回复过一次的收件人数量。 |
email_replies_rate | 在所有联系的收件人中,至少回复过一次的收件人百分比。 |
unsubscribed | 点击了营销中的“退订”链接并选择不再接收邮件的收件人数量。 |
unsubscribed_rate | 在所有联系的收件人中,点击了营销中的“退订”链接的收件人百分比。 |
auto_replied | 自动回复营销邮件的收件人数量。 |
auto_replied_rate | 在所有联系的收件人中,自动回复的收件人百分比。 |
contacted_by_linkedin | 您在领英上向其发送了至少一条消息或一次连接请求的收件人数量。 |
linkedin_total_replies | 对领英上发送的任何消息 (领英消息、连接请求消息和站内信) 至少回复过一次的收件人数量。 |
linkedin_total_replies_rate | 对领英上发送的任何消息 (领英消息、连接请求消息和站内信) 至少回复过一次的收件人百分比。 |
connection_request_replies | 回复连接请求消息的收件人数量。 |
connection_request_replies_rate | 在所有联系的收件人中,回复连接请求消息的收件人百分比。 |
message_replies | 回复常规领英消息的收件人数量。 |
message_replies_rate | 在所有联系的收件人中,回复常规领英消息的收件人百分比。 |
in_mail_replies | 回复领英站内信消息的收件人数量。 |
in_mail_replies_rate | 回复领英站内信消息的收件人百分比。 |
connection_requests | 通过 Snov.io 营销发送给潜在客户的连接请求数量。 |
accepted_requests | 领英会员接受的连接请求数量。 |
accepted_requests_rate | 在所有发送的请求中,被接受的连接请求百分比。 |
failed_connection_requests | 由于以下原因未发送的领英连接请求数:
|
messages_sent | 发送的领英信息数量。 |
linkedin_views | 浏览的潜在客户个人资料数量。 |
linkedin_likes | 在领英上点赞的潜在客户帖子数量。 |
linkedin_follows | 关注的潜在客户个人资料数量。 |
in_mail_sent | 发送的领英站内信消息总数。 |
interested | 在回复中表现出感兴趣的收件人数量。 |
interested_rate | 在回复中表现出感兴趣的收件人百分比。 |
maybe | 在回复中没有直接表现出感兴趣或不感兴趣的收件人数量。 |
maybe_rate | 在回复中没有直接表现出感兴趣或不感兴趣的收件人百分比。 |
not_interested | 在回复中表现出不感兴趣的收件人数量。 |
not_interested_rate | 在回复中表现出不感兴趣的收件人百分比。 |
GET查看营销进度
免费通过这样的方式您可以了解到营销进度和状态。
| GET | https://api.snov.io/v2/campaigns/[campaign_id]/progress |
campaign_id *必需 | 营销 ID。在查看营销信息时,您可以在 URL 中找到该 ID (示例). |
<?php
function getCampaignProgress()
{
$token = getAccessToken();
$campaignId = 1;
$params = [
'access_token' => $token,
];
$params = http_build_query($params);
$options = [
CURLOPT_URL => "https://api.snov.io/v2/campaigns/$campaignId/progress?" . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true
];
$ch = curl_init();
curl_setopt_array($ch, $options);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
return $res;
}
?>
def get_campaign_progress():
token = get_access_token()
campaign_id = 1
params = {
'access_token': token,
}
res = requests.get(f"https://api.snov.io/v2/campaigns/{campaign_id}/progress", params=params)
return json.loads(res.text)
{
"status":"Active",
"unfinished":1,
"progress":"90%"
}
progress | 以下情况的收件人百分比:
|
unfinished | 营销中未到达序列末尾或未停止序列的收件人数量。 |
status | 营销状态。了解更多 |
POST更改收件人状态
免费更改特定营销邮件中收件人的状态。
| POST | https://api.snov.io/v1/change-recipient-status |
email *必需 | 潜在客户邮箱地址。 |
campaign_id *必需 | 营销邮件 id。查看营销信息时可以在网址里找到(显示一个示例). |
status *必需 | 可以包含“活动”、“已暂停”或“已取消订阅”。如果收件人的状态为“已完成”或“已移除”,则您无法更改其状态。 |
<?php function changeRecipientStatus() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com', 'campaign_id' => '179025', 'status' => 'Paused' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/change-recipient-status', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def change_recipient_status(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com', 'campaign_id': '179025', 'status':'Paused' } res = requests.post('https://api.snov.io/v1/change-recipient-status', data=params) return json.loads(res.text)
{
"success": true
}方法返回 success: true如果潜在客户的状态已成功更改。如果发生任何错误,方法将返回success: false连同一个错误描述。
GET查看已完成潜在客户列表
免费此方法返回已完成营销的潜在客户。
| GET | https://api.snov.io/v1/prospect-finished |
campaignId *必需 | 用于检索潜在客户列表的营销的唯一标识符。 |
<?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 | 请求的唯一标识符。 |
prospectId | 潜在客户的唯一标识符。 |
userName | 潜在客户全名。 |
userEmail | 潜在客户邮箱地址。 |
campaign | 营销名称。 |
GET查看营销邮件回复数
免费此方法返回营销邮件的回复数以及所有信息,包括潜在客户姓名、ID、营销邮件等。
| GET | https://api.snov.io/v1/get-emails-replies |
campaignId *必需 | 您想要查看邮件回复情况的营销的唯一标识符。 |
offset | 每次请求最多可收集 10,000 条回复。如果您的营销有更多回复,请使用偏移量来表示您要跳过的先前回复的数量。 例如,如果您的营销有 20,000 条回复,而您希望请求第 10,001 条到第 20,000 条回复,则将偏移量设为 10,000。 如果未指定偏移量,您将获得最近收到的 10,000 条回复。 |
<?php function campaignReplies() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-replies?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-replies', data=params) return json.loads(res.text)
[
{
"visitedAt": {
"date": "2020-07-14 13:10:46.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"campaignId": 1234567,
"campaign": "My top campaign",
"prospectId": "7a941739b09f1187532d52a684df545f3a223e432c7f53662264db8d33db80ee5fc19e573416a",
"prospectFirstName": "John",
"prospectLastName": "Doe",
"prospectName": "John Doe",
"sourcePage": null,
"source": "copy",
"locality": null,
"industry": "Airlines/Aviation",
"country": null,
"prospectEmail": "Johndoe@snov.io",
"hash": "6745f8162ecadbe325693345d1a53976",
"emailSubject": "\"Special content for you\"",
"emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
"skills": "",
"links": null,
"customFields": null,
"id": "f676edc5de58f341dc7bf4e75c0c8580",
"customField_Phone": "",
"customField_Birthday": ""
}
]
campaignId | 营销的唯一标识符。 |
campaign | 营销名称。 |
prospectName | 潜在客户全名。 |
emailSubject | 收到回复的电子邮件的标题。 |
emailBody | 收到回复的电子邮件的内容。 |
GET获取营销邮件打开数信息
免费此方法显示有关营销中已打开电子邮件的信息。
| GET | https://api.snov.io/v1/get-emails-opened |
campaignId *必需 | 您想要查看邮件打开信息的营销的唯一标识符。 |
offset | 每次请求最多可收集 10,000 次打开。 如果您的营销有更多的邮件打开次数,请使用偏移量来表示您要跳过的先前打开的次数。 例如,如果您的营销有 20,000 次打开,而您希望请求第 10,001 次到第 20,000 次打开,请将偏移量设置为 10,000。 如果未指定偏移量,您将获得最近 10,000 封被打开的邮件。 |
<?php function emailsOpen() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-opened?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-opened', data=params) return json.loads(res.text)
[
{
"visitedAt": {
"date": "2020-01-08 21:48:14.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"campaignId": 1234567
"campaign": "My top campaign",
"prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3",
"prospectFirstName": "John",
"prospectLastName": "Doe",
"prospectName": "John Doe",
"sourcePage": null,
"source": "copy",
"locality": null,
"industry": null,
"country": null,
"prospectEmail": "Johndoe@snov.io",
"hash": "20b1aeb0e2949fdf7e58363f84b7aff1",
"emailSubject": "\"Special content for you\"",
"emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
"skills": "",
"links": null,
"customFields": null,
"id": "c2a67a47d59745f548ea7b0213c3a81d",
"customField_Phone": ""
}
]
campaignId | 营销的唯一标识符。 |
campaign | 营销名称。 |
prospectName | 打开电子邮件的潜在客户的全名。 |
emailSubject | 被打开的电子邮件的邮件标题。 |
visitedAt | 潜在客户打开电子邮件的确切时间。 |
GET检查链接点击数
免费此方法返回所有点击过营销邮件中链接的营销收件人的信息。
| GET | https://api.snov.io/v1/get-emails-clicked |
campaignId *必需 | 您要查看其链接点击情况的营销的唯一标识符。 |
offset | 每次请求最多可收集 10,000 次点击。 如果您的营销有更多点击次数,请使用偏移量来表示您要跳过的先前点击的次数。 例如,如果您的营销有 20,000 次点击,而您希望请求第10,001次到第 20,000 次点击,请将偏移量设置为 10,000。 如果未指定偏移量,您将获得营销中的点击链接的最后 10,000 封邮件。 |
<?php function emailsClicked() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-emails-clicked?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/get-emails-clicked', data=params) return json.loads(res.text)
[
{
"visitedAt": {
"date": "2020-01-08 21:48:14.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"campaignId": 1234567
"campaign": "My top campaign",
"prospectId": "a9e58c3eecff94e617815a90ca412c4c305045102be1312b41fd0073c9c9f3eee30e090bbc3e3",
"prospectFirstName": "John",
"prospectLastName": "Doe",
"prospectName": "John Doe",
"sourcePage": null,
"source": "copy",
"locality": null,
"industry": null,
"country": null,
"prospectEmail": "Johndoe@snov.io",
"hash": "20b1aeb0e2949fdf7e58363f84b7aff1",
"emailSubject": "\"Special content for you\"",
"emailBody": "\"<\p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<\/p>\"",
"skills": "",
"links": null,
"customFields": null,
"id": "c2a67a47d59745f548ea7b0213c3a81d",
"customField_Phone": ""
}
]
campaignId | 营销的唯一标识符。 |
campaign | 营销名称。 |
prospectName | 在营销中点击电子邮件链接的潜在客户的全名。 |
prospectEmail | 潜在客户邮箱地址。 |
emailSubject | 包含被点击链接的邮件的邮件标题。 |
emailBody | 邮件内容。 |
visitedAt | 潜在客户点击电子邮件中链接的确切时间。 |
GET查看已发送电子邮件
免费此方法显示有关营销中已发送电子邮件的信息。
| GET | https://api.snov.io/v1/emails-sent |
campaignId *必需 | 您要查看其已发送电子邮件的营销的唯一标识符。 |
offset | 每次请求最多可收集 10,000 封已发送的邮件。 如果您的营销发送了更多邮件,请使用偏移量来表示您要跳过的先前邮件的数量。 例如,如果您的营销已发送 20,000 封邮件,而您希望请求第 10,001封到第 20,000 封邮件,请将偏移量设置为 10,000。 如果未指定偏移量,您将获得营销中发送的最后 10,000 封邮件。 |
<?php function emailsSended() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'campaignId' => 1234567 ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/emails-sent?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token, 'campaignId':1234567 } res = requests.get('https://api.snov.io/v1/emails-sent', data=params) return json.loads(res.text)
[
{
"sentDate": {
"date": "2020-07-06 06:58:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"userName": "John Doe",
"userEmail": "johndoe@snov.io",
"campaign": "Test",
"hash": "be8fd412b793c15ccab9f1a6573d6595",
"id": "010f091d81860753a19867ba1dd805d1"
},
{
"sentDate": {
"date": "2020-07-06 06:56:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"userName": "Mister Smith",
"userEmail": "mistersmith@snov.io",
"campaign": "Test",
"hash": "55bb20def471e630c539935cb0efcbf8",
"id": "00e3df8427477a21d64bbe959ff95471"
}
]
sentDate | 电子邮件发送的确切时间。 |
userName | 向其发送邮件的潜在客户的全名。 |
userEmail | 潜在客户邮箱地址。 |
campaign | 营销名称。 |
GET查看所有营销
免费此方法显示所有用户营销的列表。如果用户属于某个团队并拥有查看团队记录的权限,则该方法也会返回在该团队中创建的所有营销。
| GET | https://api.snov.io/v1/get-user-campaigns |
| 这个方法没有输入参数 |
<?php function userCampaigns() { $token = getAccessToken(); $params = [ 'access_token' => $token ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-user-campaigns?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() headers = {'Authorization': token} url = 'https://api.snov.io/v1/get-user-campaigns' response = requests.request('GET', url, headers=headers) return json.loads(res.text)
[
{
"id": 237945,
"campaign": "New Campaign",
"list_id": 8512947,
"status": "Paused",
"created_at": 1639469976,
"updated_at": 1639470026,
"started_at": 1639470021,
"hash": "e272be8f9a6894f5b5894fe2ef77095e"
},
{
"id": 237956,
"campaign": "Test campaign",
"list_id": 7654321,
"status": "Draft",
"created_at": 1638808262,
"updated_at": 1638808262,
"started_at": null,
"hash": "f97fce248b77e9a1ae770b21c7bd783d"
}
]
id | 用户营销的唯一标识符。 |
campaign | 营销名称。 |
list_id | 营销中使用的潜在客户列表唯一标识符。 |
status | 营销状态。 |
created_at | Unix 时间戳格式的营销创建日期和时间。 |
updated_at | Unix 时间戳格式的最近营销更新日期和时间。 |
started_at | Unix 时间戳格式的营销启动日期和时间。 |
POST添加到免发送邮箱列表
免费使用该方法,您可将邮箱地址或域名,添加到免发送邮箱列表中。在列表中添加此邮箱地址/域名后,您将无法向其发送邮件。
| POST | https://api.snov.io/v1/do-not-email-list |
items | 您想要添加到免发送邮箱列表中的邮箱地址或域名。 |
listId *必需 | 邮箱和域名归属的免发送邮件列表标识符。 |
<?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 | 该参数显示了之前被添加到免发送邮箱列表中的邮箱地址/域名。 |
POST将潜在客户添加到列表
免费将潜在客户添加到特定列表。对于希望将潜在客户自动添加到列表中以进行邮件自动化营销的人士,这种方法非常实用。在将潜在客户自动添加到所选列表之后,便会自动开始邮件自动化营销。
| POST | https://api.snov.io/v1/add-prospect-to-list |
email | 潜在客户邮箱地址。 |
fullName | 潜在客户全名。 |
firstName | 潜在客户名字。 |
lastName | 潜在客户姓氏。 |
phones | 包含潜在客户电话号码的数组。 |
country | 潜在客户国家。国家名称定义此处。请仅使用此列表中的国家 |
locality | 潜在客户所在地点。 |
position | 潜在客户职务。 |
companyName | 潜在客户公司名称。 |
companySite | 潜在客户公司网站。请使用 http://example.com 格式。 |
updateContact | 更新现有的潜在客户。可能包含 true
, 或 false
. 如果 true 并且其中一个列表中已经存在具有此邮箱地址的潜在客户,系统将更新现有的配置文件。如果 false ,系统将不会更新现有的配置文件。 |
customFields[specialization] | 您可以在先前创建的自定义字段中添加自定义值。 为此,请在[brackets]中指定自定义字段的名称。 |
socialLinks[linkedIn] *Required if email is null | 潜在客户社交媒体资料的链接。 在 [括号] 中指定社交网络的名称 (领英、Facebook 或 X) 。 |
listId *必需 | 潜在客户所属列表的标识符。 |
<?php function addProspectToList() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'john.doe@example.com', 'fullName' => 'John Doe', 'firstName' => 'John', 'lastName' => 'Doe', 'phones' => ['+18882073333', '+18882074444'], 'country' => 'United States', 'locality' => 'Woodbridge, New Jersey', 'socialLinks' => [ 'linkedIn' => 'https://www.linkedin.com/in/johndoe/&social', 'twiiter' => 'https://twitter.com/johndoe&social', ], 'customFields[specialization]'=> 'Software Engineering', 'position' => 'Vice President of Sales', 'companyName' => 'GoldenRule', 'companySite' => 'https://goldenrule.com', 'updateContact' => true, 'listId' => '12345', ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/add-prospect-to-list', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def add_prospect_to_list(): token = get_access_token() params = {'access_token':token, 'email':'john.doe@example.com', 'fullName': 'John Doe', 'firstName':'John', 'lastName':'Doe', 'phones':['+18882073333', '+18882074444'], 'country':'United States', 'locality':'Woodbridge, New Jersey', 'socialLinks[linkedIn]':'https://www.linkedin.com/in/johndoe/&social', 'social[twiiter]':'https://twitter.com/johndoe&social', 'customFields[specialization]':'Software Engineering', 'position':'Vice President of Sales', 'companyName':'GoldenRule', 'companySite':'https://goldenrule.com', 'updateContact':1, 'listId':'12345' } res = requests.post('https://api.snov.io/v1/add-prospect-to-list', data=params) return json.loads(res.text)
{
"success": true,
"id": "0Y2QzowWL1rHpIptwaRp0Q==",
"added": true,
"updated": false
}success | 是 true 如果潜在客户已成功添加到列表中。 |
id | 添加潜在客户标识符。 |
added | 是 true 如果潜在客户已添加到列表中。 |
updated | 是 true 如果现有潜在客户的数据已更新。 |
errors | 将潜在客户添加到列表中时出错。 |
POST通过 ID 查找潜在客户
免费根据 ID 从您的列表中找到潜在客户。了解特定潜在客户的 ID 之后,您可以获得有关该潜在客户的完整信息,包括已添加到这些潜在客户的列表和营销邮件。
| POST | https://api.snov.io/v1/get-prospect-by-id |
id *必需 | 潜在客户的 ID。您可以在回执中看到它当您添加一个潜在客户通过将潜在客户添加到列表API 方法或网址当您查看潜在客户页面时(参见一个示例). |
<?php function getProspectById() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'id' => 'xusD3-T_K5IktGoaa8Jc8A==' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-prospect-by-id', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def getProspectById(): token = get_access_token() params = {'access_token':token, 'id':'xusD3-T_K5IktGoaa8Jc8A==' } res = requests.post('https://api.snov.io/v1/get-prospect-by-id', data=params) return json.loads(res.text)
{
"success": true,
"data": {
"id": "xusD3-T_K5IktGoaa8Jc8A==",
"name": "Gavin Vanrooyen",
"firstName": "Gavin",
"lastName": "Vanrooyen",
"industry": "Entertainment",
"country": "United States",
"locality": "Greater Atlanta Area",
"social": [
{
"link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-8090738\/",
"type": "linkedIn"
}
],
"lastUpdateDate": {
"date": "2019-09-11 12:37:58.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"currentJob": [
{
"companyName": "Octagon",
"position": "Senior Brand Director",
"socialLink": "https:\/\/www.linkedin.com\/company\/659312",
"site": "http:\/\/octagon.com",
"locality": "United States",
"state": null,
"city": null,
"street": null,
"street2": null,
"postal": null,
"founded": null,
"startDate": "2018-07-31",
"endDate": null,
"size": "1-10",
"industry": "Entertainment",
"companyType": "Public Company",
"country": "United States"
}
],
"previousJob": [
{
"companyName": "UPS",
"position": "Manager, Sponsorships and Events",
"socialLink": "https:\/\/www.linkedin.com\/company\/152322",
"site": "http:\/\/www.ups.com\/",
"locality": "United States",
"state": "GA",
"city": "Atlanta",
"street": "55 Glenlake Parkway, NE",
"street2": null,
"postal": "30328",
"founded": "1907",
"startDate": null,
"endDate": null,
"size": "10001+",
"industry": "Logistics and Supply Chain",
"companyType": "Public Company",
"country": "United States"
}
],
"lists": [
{
"id": 1250344,
"name": "People List"
}
],
"campaigns": []
}
}success | 是 true 如果已经找到潜在客户 |
id | 唯一的配置文件标识符 |
name | 潜在客户全名 |
firstName | 潜在客户名字 |
lastName | 潜在客户姓氏 |
industry | 潜在客户资料中显示的行业 |
country | 潜在客户所在国家 |
locality | 潜在客户所在地点 |
social | 潜在客户的社交资料链接 |
currentJobs | 数组包含有关潜在客户当前职务的信息 |
previousJobs | 数组包含有关潜在客户以前职务的信息 |
lastUpdateDate | 上次资料更新日期 |
lists | 已添加潜在客户的列表 |
campaigns | 此潜在客户已作为收件人添加到的营销列表。包含简短的统计信息,如状态、发出的邮件数量、打开数和回复数。 |
POST通过邮箱地址查找潜在客户
免费通过邮箱地址从您的列表中查找潜在客户。当您通过邮箱地址搜索时,您会收到与此邮箱地址关联的所有潜在客户列表。列表中的每个元素都包含潜在客户的完整信息,包括他们添加到的列表和营销邮件。
| POST | https://api.snov.io/v1/get-prospects-by-email |
email *必需 | 潜在客户邮箱地址。 |
<?php function getProspectsByEmail() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'email' => 'gavin.vanrooyen@octagon.com' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-prospects-by-email', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def getProspectsByEmail(): token = get_access_token() params = {'access_token':token, 'email':'gavin.vanrooyen@octagon.com' } res = requests.post('https://api.snov.io/v1/get-prospects-by-email', data=params) return json.loads(res.text)
{
"success": true,
"data": [
{
"id": "xusD3-T_K5IktGoaa8Jc8A==",
"name": "Gavin Vanrooyen",
"firstName": "Gavin",
"lastName": "Vanrooyen",
"industry": "Entertainment",
"country": "United States",
"locality": "Greater Atlanta Area",
"social": [
{
"link": "https:\/\/www.linkedin.com\/in\/gavin-vanrooyen-809073755\/",
"type": "linkedIn"
}
],
"lastUpdateDate": {
"date": "2019-09-11 12:37:58.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"currentJob": [
{
"companyName": "Octagon",
"position": "Senior Brand Director",
"socialLink": "https:\/\/www.linkedin.com\/company\/659333",
"site": "http:\/\/octagon.com",
"locality": "United States",
"state": null,
"city": null,
"street": null,
"street2": null,
"postal": null,
"founded": null,
"startDate": "2018-07-31",
"endDate": null,
"size": "1-10",
"industry": "Entertainment",
"companyType": "Public Company",
"country": "United States"
}
],
"previousJob": [
{
"companyName": "UPS",
"position": "Manager, Sponsorships and Events",
"socialLink": "https:\/\/www.linkedin.com\/company\/1523574",
"site": "http:\/\/www.ups.com\/",
"locality": "United States",
"state": "GA",
"city": "Atlanta",
"street": "55 Glenlake Parkway, NE",
"street2": null,
"postal": "30328",
"founded": "1907",
"startDate": null,
"endDate": null,
"size": "10001+",
"industry": "Logistics and Supply Chain",
"companyType": "Public Company",
"country": "United States"
}
],
"lists": [
{
"id": 1250344,
"name": "People List"
}
],
"campaigns": []
}
]
}success | 是 true 如果已经找到潜在客户 |
id | 唯一的配置文件标识符 |
name | 潜在客户全名 |
firstName | 潜在客户名字 |
lastName | 潜在客户姓氏 |
industry | 潜在客户资料中显示的行业 |
country | 潜在客户所在国家 |
locality | 潜在客户所在地点 |
social | 潜在客户的社交资料链接 |
currentJobs | 数组包含有关潜在客户当前职务的信息 |
previousJobs | 数组包含有关潜在客户以前职务的信息 |
lastUpdateDate | 上次资料更新日期 |
lists | 已添加潜在客户的列表 |
campaigns | 此潜在客户已作为收件人添加到的营销邮件列表。包含简短的统计信息,如状态、发出的邮件数量、打开数和回复数。 |
GET查找潜在客户的自定义字段
免费此方法返回用户创建的所有自定义字段的列表,包括字段的名称、字段为可选或必填,以及字段的数据类型。
| GET | https://api.snov.io/v1/prospect-custom-fields |
| 这个方法没有输入参数 |
<?php function customFields() { $token = getAccessToken(); $params = [ 'access_token' => $token, ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/prospect-custom-fields?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def custom_fields(): token = get_access_token() params = {'access_token':token } res = requests.get('https://api.snov.io/v1/prospect-custom-fields', data=params) return json.loads(res.text)
[
{
"key": "customFields['company']",
"label": "company",
"required": false,
"type": "string"
},
{
"key": "customFields['Project name']",
"label": "Project name",
"required": false,
"type": "string"
},
{
"key": "customFields['SEO']",
"label": "SEO",
"required": false,
"type": "string"
}
]
key | customFields 数组中的字段关键字。 |
label | 字段名称。 |
required | 是 true 如果自定义字段为必填项。 |
type | 自定义字段的数据类型(字符串、数字或日期)。 |
GET查看用户列表
免费此方法返回用户创建的所有列表。您可以使用此方法来查看可用于邮件自动化营销的列表。
| GET | https://api.snov.io/v1/get-user-lists |
| 这个方法没有输入参数 |
<?php function getUserLists() { $token = getAccessToken(); $params = [ 'access_token' => $token, ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-user-lists?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def user_lists(): token = get_access_token() params = {'access_token':token } res = requests.get('https://api.snov.io/v1/get-user-lists', params=params) return json.loads(res.text)
[
{
"id": 1818597,
"name": "FirstSend",
"contacts": 1,
"isDeleted": false,
"creationDate": {
"date": "2020-04-07 08:25:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"deletionDate": null
},
{
"id": 1505383,
"name": "All prospects",
"contacts": 10,
"isDeleted": true,
"creationDate": {
"date": "2019-12-17 15:07:30.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"deletionDate": {
"date": "2020-02-17 14:05:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": 1479070,
"name": "EMAIL",
"contacts": 13,
"isDeleted": true,
"creationDate": {
"date": "2019-12-06 10:51:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"deletionDate": {
"date": "2020-02-17 14:05:48.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
id | 用户列表的唯一标识符。 |
name | 列表名称 |
contacts | 列表中的潜在客户数目。 |
isDeleted | 列表状态。为 true 如果列表已被删除。 |
creationDate | 列表创建的日期和时间(包括日期、时间和时区信息)。 |
deleteDate | 如果列表已被删除,则包含列表删除的日期和时间(包括日期、时间和时区信息)。 |
POST在列表中查看潜在客户
免费此方法返回特定列表中的潜在客户的所有数据,包括潜在客户的电子邮件地址和状态等数据。
| POST | https://api.snov.io/v1/prospect-list |
listId *必需 | 列表的唯一标识符。 |
page | 您可以选择在列表中的哪一页开始搜索。该字段为可选项。 |
perPage | 设置单次请求中返回的潜在客户数量上限。最大值为5000。 |
<?php function prospectsInList() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'listId' => '1234567', 'page' => '1', 'perPage' => '2' ]; $options = [ CURLOPT_URL => ' https://api.snov.io/v1/prospect-list', CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def prospect_in_list(): token = get_access_token() params = {'access_token':token, 'listId':'1234567', 'page':'1', 'perPage':'2' } res = requests.post('https://api.snov.io/v1/prospect-list', params=params) return json.loads(res.text)
请注意,潜在客户结果是按照从最后一位到第一位的倒序显示。
{
"success": true,
"list": {
"name": "Lead LIST",
"contacts": 3,
"creationDate": {
"date": "2020-05-19 17:34:39.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"emailsCount": []
},
"prospects": [
{
"id": "226db935fc93422496fda5d5209e8cbf77cc77ec685891706028009b86608f7ce5877a3faf",
"name": "Andrew Garfiled",
"firstName": "Andrew",
"lastName": "Garfiled",
"emails": [
{
"email": "andrewexp@exp.com",
"probability": 99,
"isVerified": null,
"jobStatus": "any",
"domainType": "linkedin_email",
"isValidFormat": null,
"isDisposable": null,
"isWebmail": null,
"isGibberish": null,
"smtpStatus": null
}
]
},
{
"id": "f20d30219b039d1408d837a748a1e2ab843c97e65080f6cf8fa7d948477d9093d87413f05f",
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"emails": [
{
"email": "johndoe@gmail.com",
"probability": 99,
"isVerified": null,
"jobStatus": "any",
"domainType": "linkedin_email",
"isValidFormat": true,
"isDisposable": false,
"isWebmail": true,
"isGibberish": false,
"smtpStatus": 3
}
]
}
]
}
list | 一个包含有关列表及潜在客户信息的数组。 |
name | 列表名称。 |
contacts | 列表中的潜在客户数目。 |
creation_date | 列表创建的日期(包括日期、时间和时区信息)。 |
emailsCount | 列表中的电子邮件数目。 |
prospects | 列表中的潜在客户列表。 |
id | 一个潜在客户的唯一标识符。 |
name | 一个潜在客户的全名。 |
emails | 一个属于潜在客户的电子邮件列表。 |
POST创建新的潜在用户列表
免费使用该方法,在您的账户中创建新的潜在用户列表。
| POST | https://api.snov.io/v1/lists |
name | 新潜在用户列表名称。 |
<?php function createNewList() { $token = getAccessToken(); $params = [ 'access_token' => $token, 'name' => 'New list' ]; $options = [ CURLOPT_URL => 'https://api.snov.io/v1/lists', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); } ?>
def add_prospect_list(): token = get_access_token() params = { 'access_token':token, 'name':'New list' } res = requests.post('https://api.snov.io/v1/lists', data=params) return json.loads(res.text)
[
{
"success": true,
"data": {
"id": 1234567
}
}
]
id | 已创建的潜在用户列表ID。 |
GET查看用户余额
免费用此方法查看您的信用点数余额。
| GET | https://api.snov.io/v1/get-balance |
| 这个方法没有输入参数 |
<?php function getBalance() { $token = getAccessToken(); $params = [ 'access_token' => $token, ]; $params = http_build_query($params); $options = [ CURLOPT_URL => 'https://api.snov.io/v1/get-balance?'.$params, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } ?>
def get_balance(): token = get_access_token() headers = {'authorization':token } res = requests.get('https://api.snov.io/v1/get-balance', headers=headers) return json.loads(res.text)
{
"success": true,
"data": {
"balance": "25000.00",
"teamwork": false,
"unique_recipients_used": 0,
"limit_resets_in": 29,
"expires_in": 359
}
}
balance | 用户当前的信用点数余额。 |
teamwork | 若您目前是团队成员或领导,则为“true”,若您不属于任何团队,则为“false”。 |
recipients_used | 本月已使用的唯一收件人数量。 |
limit_resets_in | 距离限额重置的天数。 |
expires_in | 距离订阅结束的天数。 |
Webhook
Webhook 可让您收到 Snov.io 账户中的事件通知。
每当 Snov.io 中有新的订阅事件时,您都可以使用 webhook 调用服务器上的端点 (URL),并将实时数据发送到您的应用程序。
事件发生时,Snov.io 会向指定的 URL 端点发送一个带有 JSON 内容的 HTTP 请求。
您可以通过一组 API 调用来订阅和管理 webhook。
目前支持的 webhook 对象和操作如下:
| Webhook 对象 | 操作 | 触发后 |
|---|---|---|
campaign_email | sent | 在任何自动化营销中向收件人发送任何邮件时 |
| first_sent | 在任何自动化营销中向收件人发送第一封邮件时 | |
| opened | 当收件人打开任何自动化营销中的任何邮件时 | |
campaign_reply | received | 当收件人回复任何营销中的任何邮件时 |
| first_received | 当收件人在任何营销中首次回复邮件时 | |
company | found_domains_by_names | 当您根据公司名称请求其域名时。 |
prospect | found_by_li_url | 当您根据潜在客户的 领英 URL 请求其个人资料信息时。 |
| found_emails_by_name_by_domain | 当您搜索潜在客户的邮箱地址时。 | |
email_verification | verified | 当您请求邮箱验证时。 |
限制: 高级套餐用户最多可以创建 50 个 webhook。
重试策略:如果系统在 3 秒内收到 200-299 范围内的 HTTP 状态 作为响应,则 webhook 成功。
如果出现了任何其他的HTTP状态或者超时错误,我们将在事件触发了webhook之后尝试7次,每次间隔高达38小时:
如果所有重试均不成功,webhook 将会停用。
- 第 1 次:事件发生后第一时间
- 第 2 次:最近一次尝试后 20 分钟(事件发生后 20 分钟)
- 第 3 次:最近一次尝试后 40 分钟(事件发生后 1 小时)
- 第 4 次:最近一次尝试后 60 分钟(事件发生后 2 小时)
- 第 5 次:最近一次尝试后 4 小时(事件发生后 6 小时)
- 第 6 次:最近一次尝试后 8 分钟(事件发生后 14 小时)
- 第 7 次:最近一次尝试后 24 分钟(事件发生后 38 小时)
GET列出所有 webhook
| GET | https://api.snov.io/v2/webhooks |
内容- 类型:application/json |
| 此方法没有输入参数。 |
{
"data": [
{
"data": {
"id": 8,
"end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/awwwcz/",
"event_object": "campaign_email",
"event_action": "sent",
"status": "active",
"created_at": 1655847444
}
},
{
"data": {
"id": 14,
"end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abqqqpcz/",
"event_object": "campaign_email",
"event_action": "sent",
"status": "deactivated",
"created_at": 1655890563
}
},
{
"data": {
"id": 17,
"end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/",
"event_object": "campaign_email",
"event_action": "sent",
"status": "active",
"created_at": 1656057947
}
}
],
"meta": {
"webhooks_count": 3,
"user_id": 1313777
}
}
| 参数 | 数据类型 | 数据类型 |
|---|---|---|
data | array | webhook 模型集合 |
id | int | Webhook ID |
end_point | string | 您在添加 webhook 时提供的实际 URL 地址及其发送位置 |
event_object | string | 执行操作的对象 |
event_action | string | 对象的操作 |
created_at | int | Unix Timestamp 格式的 Webhook 创建日期 |
status | string | Webhook 状态:启用、停用 |
meta | object | 相关数据 |
webhooks_count | int | 您的账户中的 webhook 总数(最多 50 个) |
user_id | int | 用户 ID |
POST添加 webhook
| POST | https://api.snov.io/v2/webhooks |
内容- 类型:application/json |
event_object | 执行操作的对象(支持的对象列表) |
event_action | 对对象执行的操作(支持的操作列表) |
endpoint_url | 发送 Webhook 的 URL 地址 |
{
"event_object": "campaign_email",
"event_action": "sent",
"endpoint_url": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/"
}
{
"data": {
"id": 17,
"end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abwfpcz/",
"event_object": "campaign_email",
"event_action": "sent",
"created_at": 1656057947,
"status": "active"
},
"meta": {
"user_id": 1313777
}
}
| 参数 | 数据类型 | 数据类型 |
|---|---|---|
data | object | Webhook 数据 |
id | int | Webhook ID |
end_point | string | 您在添加 webhook 时提供的实际 URL 地址及其发送位置 |
event_object | string | 执行操作的对象 |
event_action | string | 对象的操作 |
created_at | int | Unix Timestamp 格式的 Webhook 创建日期 |
status | string | Webhook 状态:启用、停用 |
meta | object | 相关数据 |
user_id | int | 用户 ID |
PUT更改 webhook 状态
在请求 URL 地址的末尾包含所选 webhook 的唯一“id”值。
使用“列出所有 webhooks”的方法获取 webhooks 的 id 值。
| PUT | https://api.snov.io/v2/webhooks/webhook_id |
内容- 类型:application/json |
status | 启用或停用 |
{
https://api.snov.io/v2/webhooks/14
"status": "deactivated"
}
{
"data": {
"id": 14,
"end_point": "https://hooks.yourdomain.com/hooks/catch/1237321/abqqqpcz/",
"event_object": "campaign_email",
"event_action": "sent",
"created_at": 1655890563,
"status": "deactivated"
},
"meta": {
"user_id": 1313777
}
}
| 参数 | 数据类型 | 数据类型 |
|---|---|---|
data | object | Webhook 数据 |
id | int | Webhook ID |
end_point | string | 您在添加 webhook 时提供的实际 URL 地址及其发送位置 |
event_object | string | 执行操作的对象 |
event_action | string | 对象的操作 |
created_at | int | Unix Timestamp 格式的 Webhook 创建日期 |
status | string | Webhook 状态:启用、停用 |
meta | object | 相关数据 |
user_id | int | 用户 ID |
DELETE删除一个 webhook
在请求 URL 地址的末尾包含所选 webhook 的唯一“id”值。
使用“列出所有 webhooks”的方法获取 webhooks 的 id 值。
| DELETE | https://api.snov.io/v2/webhooks/webhook_id |
内容- 类型:application/json |
{
https://api.snov.io/v2/webhooks/8
}
{
"data": {
"success": true
}
}
| 参数 | 数据类型 | 数据类型 |
|---|---|---|
success | boolean | 显示是否删除了 webhook |
