// post /v1/bulk/search
批量域名搜索 API
通过一个异步 API 任务,在数百个域名中发现决策者邮箱,结果可直接导出。
Domains or company names最多 25,000 行
curl -X POST "https://api.tomba.io/v1/bulk/search" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Domain Search job","list":"piedpiper.com\nshopify.com\nnotion.so","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/search", {
method: "POST",
headers: {
"X-Tomba-Key": process.env.TOMBA_API_KEY,
"X-Tomba-Secret": process.env.TOMBA_SECRET_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Domain Search job",
"list": "piedpiper.com\nshopify.com\nnotion.so",
"launch": true,
"webhook_url": "https://hooks.example.com/tomba"
})
});
const { data } = await res.json(); // { id }import os, requests
res = requests.post(
"https://api.tomba.io/v1/bulk/search",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Domain Search job",
"list": "piedpiper.com\nshopify.com\nnotion.so",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]// 01 · 请求
批量Domain Search只需一个 HTTPS 请求
使用您的密钥和密钥密码发送参数。每个 SDK、CLI 和 MCP 服务器都发出相同的调用。
- type
- search
- list | data | file
- Domains or company names
- launch
- 设为 true 即立即启动任务
- webhook_url
- 任务结束时接收已签名的事件
- rows
- 每个任务最多 25,000 行
curl -X POST "https://api.tomba.io/v1/bulk/search" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Domain Search job","list":"piedpiper.com\nshopify.com\nnotion.so","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/search", {
method: "POST",
headers: {
"X-Tomba-Key": process.env.TOMBA_API_KEY,
"X-Tomba-Secret": process.env.TOMBA_SECRET_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Domain Search job",
"list": "piedpiper.com\nshopify.com\nnotion.so",
"launch": true,
"webhook_url": "https://hooks.example.com/tomba"
})
});
const { data } = await res.json(); // { id }import os, requests
res = requests.post(
"https://api.tomba.io/v1/bulk/search",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Domain Search job",
"list": "piedpiper.com\nshopify.com\nnotion.so",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]// 02 · 响应
返回的内容
JSON,在任何语言中都相同。Tomba 不知道的字段为 null,绝不猜测。
GET
/domain-searchdata.organizationobject- Company name, location, social links, industry, size, revenue, description, pattern
data.organization.accept_allboolean- The domain accepts mail for any address (catch-all)
data.emails[].emailstring- Each address found
data.emails[].full_name, data.emails[].position, data.emails[].departmentstring | null- Name, job title and team
data.emails[].senioritystring | null- junior, senior or executive
data.emails[].scoreinteger- Confidence from 0 to 100
data.emails[].verification.statusstring | null- valid, accept_all, invalid or unknown, with verification.date
data.emails[].sources[]array- Where each address was found
meta.total, meta.total_pagesinteger- Addresses that match, and pages at this pageSize
meta.current, meta.pageSizeinteger- This page and its size
meta.paramsobject- The parameters the search ran with
POST /bulk/search
201 Created
{
"data": {
"id": 1042
}
}每一行,与 GET /domain-search 返回的内容相同
200 OK
{
"data": {
"organization": {
"website_url": "piedpiper.com",
"organization": "Pied Piper",
"location": {
"country": "US",
"city": "Palo Alto",
"state": "CA",
"street_address": "5230 Newell Road",
"postal_code": "94303"
},
"social_links": {
"twitter_url": null,
"facebook_url": null,
"instagram_url": null,
"linkedin_url": "https://www.linkedin.com/company/pied-piper",
"github_url": null,
"youtube_url": null,
"pinterest_url": null,
"tiktok_url": null
},
"disposable": false,
"webmail": false,
"phone_number": false,
"industries": "computer software",
"founded": "2014",
"company_size": "11-50",
"company_type": "privately held",
"revenue": null,
"accept_all": false,
"description": "Middle-out compression for files and video.",
"pattern": "{first}",
"total_similar": 2,
"keywords": [
"compression",
"middle-out",
"decentralized internet"
],
"ranking": null,
"whois": {
"registrar_name": null,
"created_date": null,
"referral_url": null
},
"last_updated": "2025-01-15T10:32:00+01:00"
},
"emails": [
{
"email": "dinesh@piedpiper.com",
"first_name": "Dinesh",
"last_name": "Chugtai",
"full_name": "Dinesh Chugtai",
"gender": "male",
"phone_number": false,
"type": "personal",
"country": "US",
"position": "Software Engineer",
"department": "engineering",
"seniority": "senior",
"twitter": null,
"linkedin": null,
"score": 99,
"verification": {
"date": "2025-01-15T10:32:00+01:00",
"status": "valid"
},
"phone_data": [],
"sources": [
{
"uri": "https://piedpiper.com/blog/engineering",
"website_url": "piedpiper.com",
"extracted_on": "2024-06-01T09:14:07+01:00",
"last_seen_on": "2025-01-10T17:02:44+01:00",
"still_on_page": true
}
]
},
{
"email": "gilfoyle@piedpiper.com",
"first_name": "Bertram",
"last_name": "Gilfoyle",
"full_name": "Bertram Gilfoyle",
"gender": "male",
"phone_number": false,
"type": "personal",
"country": "US",
"position": "Systems Architect",
"department": "engineering",
"seniority": "senior",
"twitter": null,
"linkedin": null,
"score": 97,
"verification": {
"date": "2025-01-15T10:32:00+01:00",
"status": "valid"
},
"phone_data": [],
"sources": [
{
"uri": "https://piedpiper.com/blog/engineering",
"website_url": "piedpiper.com",
"extracted_on": "2024-06-01T09:14:07+01:00",
"last_seen_on": "2025-01-10T17:02:44+01:00",
"still_on_page": true
}
]
}
]
},
"meta": {
"total": 12,
"pageSize": 10,
"current": 1,
"total_pages": 2,
"params": {
"domain": "piedpiper.com",
"company": "",
"page": 1,
"limit": 10,
"department": "engineering",
"country": null,
"type": "all",
"live": false,
"enrich_mobile": false,
"webhook_url": null
}
}
}// 03 · 费用和限制
调用的费用
仅在满足以下条件时才对调用收费。速率限制取决于您的套餐。
// 费用
Per domain with at least one address: 1 search credit per 10 addresses returned, at most 10. Plus 5 per address with phone data.
Charged once, at the first download; later downloads are free
- Jobs created: 15 per day for each type
- Running jobs: 2 per type
- Downloads: 25 per day for each job
- Request size: 4 MB (CSV, list or rows)
上传公司域名列表创建批量操作,然后启动该操作。API 会异步搜索与每个域名关联的所有邮箱地址。
每个批量操作最多可处理 25,000 个域名。每个域名每次搜索最多返回 10 个邮箱。
可以。创建批量操作时,您可以指定部门筛选条件(高管、市场、人力资源、IT、销售等)和职级。
每个域名返回找到的邮箱地址,并附带全名、职位、部门、职级、LinkedIn 个人资料、置信度评分和来源。
处理时间取决于域名数量。通常每个域名需要 2 到 5 秒,25,000 个域名的批次一般在 1 到 2 小时内完成。
每次返回结果的域名搜索计为 1 个请求,最多包含 10 个邮箱。未找到结果的域名不计数。
支持。配置 webhook URL 后,当您的批量域名搜索完成时,您会收到包含 bulk_id 和状态的通知。
处理完成后,使用下载端点以 CSV 或 JSON 格式获取所有结果,包括每个域名找到的所有邮箱。
可以。您可以将返回的邮箱交给批量邮箱数据丰富或批量邮箱验证器处理,在外联前补充信息并提高送达率。
拥有活跃网站且员工信息公开的企业域名通常覆盖率更高。提交前请使用根域名并去除重复项。