// bulk operations
Bulk Company Enrichment
Upload a CSV of company domains and enrich them all with detailed company data at once.
- 01pending
POST /v1/bulk/company201 · { "data": { "id": 1042 } } - 02running
launch: trueprogress polled with GET /v1/bulk/company/1042/progress - 03completed
bulk.completedsigned webhook delivered to your webhook_url
GET /v1/bulk/company/1042/download?file=fullCharged at the first download · the job expires after 180 days// 01 · input
The input of a bulk Company Enrichment job
Upload a CSV of up to 4 MB in the app, or send a list, rows or a file to POST /v1/bulk/company. Columns are found from the header row; set a field index to choose one yourself.
/bulk/companyColumnsdomain_field_index- Domain
company_name_field_index- Company name
/bulk/companyOptionsinput_type- domain or company; company when the input has a company name column and no domain column
find_phones- true adds phone numbers, at an extra cost
// 02 · api
One request starts the job
Create and launch it in one call, then follow its progress or receive a signed bulk.completed event. Each result row is what GET /companies/find returns.
curl -X POST "https://api.tomba.io/v1/bulk/company" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Company Enrichment job","list":"piedpiper.com\nshopify.com","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/company", {
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": "Company Enrichment job",
"list": "piedpiper.com\nshopify.com",
"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/company",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Company Enrichment job",
"list": "piedpiper.com\nshopify.com",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]{
"data": {
"id": 1042
}
}{
"data": {
"name": "Pied Piper",
"legalName": "Pied Piper, Inc.",
"domain": "piedpiper.com",
"domainAliases": [],
"site": {
"phoneNumbers": [],
"emailAddresses": [
"hello@piedpiper.com"
]
},
"category": {
"sector": "Information Technology",
"industryGroup": "Software & Services",
"industry": "Internet Software & Services",
"subIndustry": "Internet Software & Services",
"sicCode": "73",
"sic4Codes": [
"7372"
],
"naicsCode": "51",
"naics6Codes": [
"511210"
],
"naics6Codes2022": [
"513210"
]
},
"tags": [
"Compression",
"Decentralized internet"
],
"description": "Pied Piper builds middle-out compression for files, video and a decentralized internet.",
"foundedYear": "2014",
"location": "5230 Newell Road, Palo Alto, CA 94303, United States",
"timeZone": "America/Los_Angeles",
"utcOffset": -8,
"geo": {
"streetNumber": "5230",
"streetName": "Newell Road",
"subPremise": null,
"streetAddress": "5230 Newell Road",
"city": "Palo Alto",
"postalCode": "94303",
"state": "California",
"stateCode": "CA",
"country": "United States",
"countryCode": "US",
"lat": 37.4419,
"lng": -122.143
},
"logo": "https://logo.tomba.io/piedpiper.com",
"facebook": {
"handle": null,
"likes": null
},
"linkedin": {
"handle": "company/pied-piper"
},
"twitter": {
"handle": null,
"id": null,
"bio": null,
"followers": null,
"following": null,
"location": null,
"site": null,
"avatar": null
},
"whois": {
"registrar_name": null,
"created_date": null,
"referral_url": null
},
"emailProvider": "Google",
"type": "private",
"ticker": null,
"identifiers": {
"usEIN": null
},
"metrics": {
"alexaUsRank": null,
"alexaGlobalRank": null,
"trafficRank": null,
"employees": "11-50",
"marketCap": null,
"raised": null,
"annualRevenue": null,
"estimatedAnnualRevenue": null,
"fiscalYearEnd": null
},
"indexedAt": "2025-01-15T10:32:00+01:00",
"tech": [
"google_apps",
"intercom"
],
"techCategories": [
"email_hosting_service",
"live_chat"
],
"parent": {
"domain": null
},
"ultimateParent": {
"domain": null
}
},
"meta": {
"domain": "piedpiper.com"
}
}// 03 · cost and limits
What a job costs
Nothing is charged to create or launch a job. Its cost is charged once, at the first download of its results.
// billing per row
1 search credit per company found. Plus 1 per company with phone data.
Bulk billing in the docs- Rows: up to 25,000 per job
- 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)
// 04 · use it anywhere
Run Company Enrichment jobs from the app or your code
The same job, the same credits: upload a file in the app, call the API, or work from a spreadsheet or a no-code tool.
- REST APIJSON over HTTPS, 13 SDKs, signed webhooks.
GET /v1/email-finder - Bulk CSVUpload a list in the app or POST it to /bulk; download when it's done.
POST /v1/bulk/{type} - Google Sheets and ExcelFormulas and a sidebar that call the same endpoints.
=TOMBA_VERIFY(A2) - Zapier, Make, n8nNo-code actions for the finder, verifier and enrichment.
Zapier · Make · n8n · Pipedream
The full request reference: /api/bulk/company-enrichment
// customers
Teams that run Company Enrichment jobs
We rely on Tomba to efficiently locate email addresses of key professionals. This allows us to connect directly and build meaningful relationships.
Josh LeierCreative Director, IceHound MarketingTomba finding the contacts for the perfect prospects at scale is game changing in helping us promote our data-based research studies.
Nicholas RizzoSenior Digital Manager, Vizme